ng-inail-common 1.0.428 → 1.0.430
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ng-inail-common.umd.js +4 -4
- package/bundles/ng-inail-common.umd.js.map +1 -1
- package/bundles/ng-inail-common.umd.min.js +1 -1
- package/bundles/ng-inail-common.umd.min.js.map +1 -1
- package/esm2015/lib/components/ux/accordion/accordion.component.js +3 -3
- package/esm2015/lib/components/ux/radio-select/radio-select.component.js +2 -2
- package/esm2015/lib/components/ux/select/select.component.js +2 -2
- package/esm5/lib/components/ux/accordion/accordion.component.js +3 -3
- package/esm5/lib/components/ux/radio-select/radio-select.component.js +2 -2
- package/esm5/lib/components/ux/select/select.component.js +2 -2
- package/fesm2015/ng-inail-common.js +4 -4
- package/fesm2015/ng-inail-common.js.map +1 -1
- package/fesm5/ng-inail-common.js +4 -4
- package/fesm5/ng-inail-common.js.map +1 -1
- package/ng-inail-common.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-inail-common.umd.js.map","sources":["ng://ng-inail-common/lib/ng-inail-common.service.ts","ng://ng-inail-common/lib/ng-inail-common.component.ts","node_modules/tslib/tslib.es6.js","ng://ng-inail-common/lib/components/base/base.component.ts","ng://ng-inail-common/lib/components/ux/basic-ux-element/basic-ux-element.component.ts","ng://ng-inail-common/lib/components/ux/accordion/accordion.component.ts","ng://ng-inail-common/utils/Util.ts","ng://ng-inail-common/lib/components/ux/responsive-element/responsive-element.component.ts","ng://ng-inail-common/lib/components/ux/form-element/form-element.component.ts","ng://ng-inail-common/lib/components/ux/checkbox/checkbox.component.ts","ng://ng-inail-common/lib/components/ux/confirm/confirm.component.ts","ng://ng-inail-common/utils/DateUtil.ts","ng://ng-inail-common/lib/components/ux/date-picker/date-picker.component.ts","ng://ng-inail-common/lib/components/ux/feedback/feedback.component.ts","ng://ng-inail-common/lib/components/ux/input-text/input-text.component.ts","ng://ng-inail-common/lib/components/ux/select/select.component.ts","ng://ng-inail-common/lib/components/ux/textarea/textarea.component.ts","ng://ng-inail-common/lib/components/ux/th-label/th-label.component.ts","ng://ng-inail-common/lib/components/ux/table-page-length-selector/table-page-length-selector.component.ts","ng://ng-inail-common/lib/components/ux/table-page-selector/table-page-selector.component.ts","ng://ng-inail-common/lib/components/ux/paged-table-renderer/paged-table-renderer.component.ts","ng://ng-inail-common/lib/components/ux/input-date-range/input-date-range.component.ts","ng://ng-inail-common/lib/components/ux/tab-pane/tab-pane.component.ts","ng://ng-inail-common/lib/components/ux/tab-group/tab-group.component.ts","ng://ng-inail-common/lib/components/ux/content/content.component.ts","ng://ng-inail-common/lib/components/ux/inail-wizard/inail-wizard.component.ts","ng://ng-inail-common/lib/components/ux/text-editor/text-editor.component.ts","ng://ng-inail-common/lib/components/ux/form-grey/form-grey.component.ts","ng://ng-inail-common/lib/components/ux/selector/selector.component.ts","ng://ng-inail-common/lib/components/ux/modal/modal.component.ts","ng://ng-inail-common/lib/components/ux/alert/alert.component.ts","ng://ng-inail-common/lib/components/ux/input-number/input-number.component.ts","ng://ng-inail-common/lib/components/ux/menu/menu.component.ts","ng://ng-inail-common/webkit-resources.ts","ng://ng-inail-common/lib/components/ux/layout/layout-common-config.ts","ng://ng-inail-common/lib/components/ux/button/button.component.ts","ng://ng-inail-common/lib/components/ux/layout/inail-layout/inail-layout.component.ts","ng://ng-inail-common/lib/components/ux/layout/loader/loader.component.ts","ng://ng-inail-common/lib/components/ux/layout/header/header.component.ts","ng://ng-inail-common/lib/components/ux/layout/navigazione-interna/navigazione-interna.component.ts","ng://ng-inail-common/lib/components/ux/layout/trigger-slider-menu-button/trigger-slider-menu-button.component.ts","ng://ng-inail-common/lib/components/ux/layout/footer/footer.component.ts","ng://ng-inail-common/lib/components/ux/layout/navigazione-principale/navigazione-principale.component.ts","ng://ng-inail-common/lib/components/ux/layout/navigazione-utente/navigazione-utente.component.ts","ng://ng-inail-common/lib/components/ux/layout/menu-intranet/menu-intranet.component.ts","ng://ng-inail-common/lib/components/ux/layout/navigazione-secondaria/navigazione-secondaria.component.ts","ng://ng-inail-common/lib/components/ux/paged-table/paged-table.component.ts","ng://ng-inail-common/lib/components/ux/inail-file-upload-component/inail-file-upload.component.ts","ng://ng-inail-common/lib/components/ux/breadcrumb/breadcrumb.component.ts","ng://ng-inail-common/lib/components/ux/input-date/input-date.component.ts","ng://ng-inail-common/lib/components/ux/page-title/page-title.component.ts","ng://ng-inail-common/lib/directives/comment.directive.ts","ng://ng-inail-common/lib/components/ux/radio-select/radio-select.component.ts","ng://ng-inail-common/lib/components/ux/input-money/input-money.component.ts","ng://ng-inail-common/lib/ng-inail-common.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgInailCommonService {\n\n constructor() { }\n}\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-ng-inail-common',\n template: `\n <p>\n ng-inail-common works!\n </p>\n `,\n styles: [],\n encapsulation: ViewEncapsulation.None\n})\nexport class NgInailCommonComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\n\nexport enum LogLevel {\n\n LOG = 'log',\n DEBUG = 'debug',\n INFO = 'info',\n WARN = 'warn',\n ERROR = 'error'\n}\n\n@Component({\n selector: 'inail-base',\n templateUrl: './base.component.html',\n styleUrls: ['./base.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaseComponent implements OnInit {\n\n /**\n * Log del componente\n */\n @Output()\n log: EventEmitter<LogEvent>;\n\n /**\n * Se true effettua il log direttamente nella console.\n * Altrimenti emette l'evento log\n */\n @Input()\n logOnConsole: boolean;\n\n constructor() {\n this.log = new EventEmitter<LogEvent>();\n }\n\n ngOnInit() {\n }\n\n emitLog(message: any) {\n this.emit({message: message, level: LogLevel.LOG});\n }\n\n emitInfo(message: any) {\n this.emit({message: message, level: LogLevel.INFO});\n }\n\n emitDebug(message: any) {\n this.emit({message: message, level: LogLevel.DEBUG});\n }\n\n emitWarn(message: any) {\n this.emit({message: message, level: LogLevel.WARN});\n }\n\n emitError(message: any) {\n\n this.emit({message: message, level: LogLevel.ERROR});\n }\n\n emit(event: LogEvent) {\n\n if (event) {\n\n if (this.logOnConsole === true) {\n\n console[event.level].apply(this, [event.message]);\n } else {\n\n this.log.emit(event);\n }\n }\n }\n}\n\nexport class LogEvent {\n\n message: any;\n level: LogLevel;\n}\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport {BaseComponent} from \"../../base/base.component\";\n\n@Component({\n selector: 'inail-basic-ux-element',\n templateUrl: './basic-ux-element.component.html',\n styleUrls: ['./basic-ux-element.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BasicUxElementComponent extends BaseComponent{\n\n @Input()\n id: NonNullable<string>;\n @Input()\n class: string;\n\n constructor() {\n\n super();\n this.id = uuid();\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\nconst DEFAULT_TT_OPENED = \"Riduce l\\'accordion\";\nconst DEFAULT_TT_CLOSED = \"Espande l\\'accordion\";\n\n@Component({\n selector: 'inail-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AccordionComponent extends BasicUxElementComponent implements OnInit {\n\n @Input()\n titolo: string;\n @Input()\n toggleTitle: string;\n @Input()\n toggleTitleOpened: string;\n @Input()\n toggleTitleClosed: string;\n @Input()\n collapsed: boolean;\n @Input()\n hasError: boolean;\n @Input()\n required: boolean;\n @Output()\n toggle = new EventEmitter<boolean>();\n\n mostra: boolean;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n\n this.mostra = !this.collapsed;\n }\n\n onToggle() {\n this.mostra = !this.mostra;\n this.toggle.emit(this.mostra);\n }\n\n getTitolo(): string {\n\n return this.titolo ? (this.required ? this.titolo.concat(' *') : this.titolo) : '';\n }\n\n get toggleTitleText() {\n\n return this.mostra == true\n ? this.toggleTitleOpened || this.toggleTitle || DEFAULT_TT_OPENED\n : this.toggleTitleClosed || this.toggleTitle || DEFAULT_TT_CLOSED;\n }\n}\n","import {isFunction} from \"rxjs/internal-compatibility\";\r\n\r\nexport const isBlank = (s: string) => s!=undefined && (String(s)).trim().length == 0;\r\n\r\nexport const isEmptyOrNull = (s: string): boolean => {\r\n\r\n return !s || !((String(s)).trim().length > 0);\r\n};\r\n\r\nexport const isListEmptyOrNull = (s: any[]): boolean => {\r\n\r\n return !s || !(s.length > 0);\r\n};\r\n\r\nexport const isNotEmptyOrNull = (s: string): boolean => {\r\n\r\n return !isEmptyOrNull(s);\r\n};\r\n\r\nexport const isListNotEmptyOrNull = (s: any[]): boolean => {\r\n\r\n return !isListEmptyOrNull(s);\r\n};\r\n\r\nexport const isSameOrNullIgnoreCase = (toCompare: string, target: string) => {\r\n\r\n return !toCompare || (target && toCompare.toUpperCase() === target.toUpperCase());\r\n};\r\n\r\nexport const isUndefined = (obj: any) => {\r\n\r\n return typeof obj == 'undefined';\r\n};\r\n\r\nexport const trim = (s: string) => {\r\n\r\n if (s) {\r\n\r\n s = s.trim();\r\n }\r\n};\r\n\r\nexport const isAbsolute = (url: String): boolean => {\r\n\r\n return url != undefined\r\n && url['startsWith'] != undefined\r\n && url.startsWith('http');\r\n}\r\n\r\nexport const jquery = (q: string) => {\r\n\r\n // @ts-ignore\r\n return $ && $ != undefined && $ != null ? $(q) : undefined\r\n}\r\n\r\nexport const call = (e: any, f: string, a?: any) => {\r\n\r\n let el = e && e[f] != undefined && isFunction(e[f]) ? e[f](a) : undefined;\r\n\r\n return {\r\n data: el,\r\n call: (fname: string, arg?: any) => call(el, fname, arg)\r\n }\r\n}\r\n\r\nexport const abilitaScrollPagina = (scroll: boolean) => document.getElementsByTagName('html')[0].style['overflow-y'] = scroll ? 'scroll' : 'hidden';\r\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\nimport {ColumnDimension} from \"../../../types/types\";\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\n@Component({\n selector: 'inail-responsive-element',\n templateUrl: './responsive-element.component.html',\n styleUrls: ['./responsive-element.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ResponsiveElementComponent extends BasicUxElementComponent {\n\n @Input()\n lg: ColumnDimension;\n @Input()\n md: ColumnDimension;\n @Input()\n sm: ColumnDimension;\n @Input()\n xs: ColumnDimension;\n\n constructor() {\n super();\n }\n}\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from '@angular/core';\nimport {ResponsiveElementComponent} from \"../responsive-element/responsive-element.component\";\n\n@Component({\n selector: 'inail-form-element',\n templateUrl: './form-element.component.html',\n styleUrls: ['./form-element.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormElementComponent extends ResponsiveElementComponent {\n\n @Input()\n label: NonNullable<string>;\n @Input()\n title: string;\n @Input()\n name: string;\n @Input()\n labelTitle: string;\n @Input()\n labelClass: string;\n @Input()\n inputClass: string;\n @Input()\n required: boolean;\n @Input()\n requiredSimbol: string;\n @Input()\n disabled: boolean;\n @Input()\n readonly: boolean;\n @Input()\n hasError: boolean;\n @Input()\n hiddenLabel: boolean;\n @Input()\n descError: string;\n @Output()\n enterUp = new EventEmitter();\n @Input()\n errorPrefix: boolean;\n @Input()\n popover: boolean = false;\n @Input()\n popoverButtonIcon: string;\n @Input()\n popoverButtonTitle: string;\n @Input()\n popoverTitle: string;\n @Input()\n popoverContent: string;\n @Input()\n cleanErrorOnChange: boolean = true;\n\n showPopover = (): boolean => this.popover === true;\n hasFocus = (): boolean => document.activeElement && document.activeElement.id == this.id;\n\n constructor() {\n super();\n }\n\n cleanError() {\n\n setTimeout(() => {\n\n if (this.hasError) {\n\n this.hasError = false;\n }\n\n if (this.descError) {\n\n this.descError = undefined;\n }\n })\n }\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {FormElementComponent} from \"../form-element/form-element.component\";\n\n@Component({\n selector: 'inail-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CheckboxComponent extends FormElementComponent implements OnInit, OnChanges {\n\n checkedValue: boolean;\n\n @Output()\n checkedChange = new EventEmitter();\n\n @Output()\n clickCheckBox = new EventEmitter();\n\n @Output()\n click = new EventEmitter<Event>();\n\n ngOnChanges(changes: CheckboxChanges): void {\n\n if (changes.checked && !changes.checked.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.title)) {\n this.title = this.label;\n }\n }\n\n @Input()\n get checked() {\n return this.checkedValue;\n }\n\n set checked(val) {\n this.checkedValue = val;\n this.checkedChange.emit(this.checkedValue);\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n cbOnEnter() {\n this.checked = !this.checked;\n this.enterUp.emit()\n }\n\n onClick($event: Event) {\n\n $event.stopPropagation();\n this.click.emit($event);\n }\n}\n\ninterface CheckboxChanges extends SimpleChanges {\n\n checked: SimpleChange;\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {abilitaScrollPagina, isEmptyOrNull} from \"../../../../utils/Util\";\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {Observable} from \"rxjs\";\n\nconst KEYCODE_TAB = 9;\n\nexport const MODAL_CONFIRM_CLASS: string = 'modal-confirm'\n\n@Component({\n selector: 'inail-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ConfirmComponent extends BasicUxElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n modalConfirmClass: string = MODAL_CONFIRM_CLASS;\n\n @Input()\n titolo: string;\n @Input()\n testo: string;\n @Input()\n confirmButtonLabel: string;\n @Input()\n declineButtonLabel: string;\n @Input()\n show: EventEmitter<any>;\n // show: Observable<boolean>;\n @Output()\n confirm: EventEmitter<any> = new EventEmitter();\n @Output()\n decline: EventEmitter<any> = new EventEmitter();\n @Output()\n close: EventEmitter<any> = new EventEmitter();\n @Input()\n isValidationConfirm: boolean;\n\n @ViewChild('modalContent')\n modalContent: ElementRef;\n visualizzaContent: boolean = true;\n\n pageActiveElement: any;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // if (changes.show) {\n //\n // changes.show.currentValue.subscribe((show: boolean) => {\n //\n // if (show == undefined) {\n //\n // show = true;\n // }\n //\n // if (show === true) {\n //\n // this.pageActiveElement = document.activeElement;\n // // console.info('pageActiveElement', this.pageActiveElement)\n // }\n //\n // // @ts-ignore\n // jQuery(\"#\" + this.id).modal(show ? 'show' : 'hide');\n //\n // if (show) {\n //\n // setTimeout(() => {\n // this.trapFocus()\n // }, 500);\n // abilitaScrollPagina(false);\n // }\n // else {\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n // }\n // })\n // }\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.titolo)) {\n\n this.titolo = 'Conferma operazione';\n }\n\n if (isEmptyOrNull(this.testo)) {\n\n this.testo = 'Si richiede la conferma dell\\'operazione';\n }\n\n if (isEmptyOrNull(this.confirmButtonLabel)) {\n\n this.confirmButtonLabel = 'Si';\n }\n\n if (isEmptyOrNull(this.declineButtonLabel)) {\n\n this.declineButtonLabel = 'No';\n }\n\n if(this.show == undefined) {\n\n this.show = new EventEmitter<any>();\n }\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {\n this.visualizzaContent = this.modalContent.nativeElement.firstChild.childNodes.length > 0;\n });\n }\n\n // trapFocus() {\n //\n // // @ts-ignore\n // let thisModal = jQuery(\"#\" + this.id);\n //\n // let focusableEls = thisModal.find(\".modal-content\").find(':focusable');\n // let firstFocusableEl = focusableEls[0];\n // let lastFocusableEl = focusableEls[focusableEls.length - 1];\n //\n // firstFocusableEl.focus();\n //\n // // @ts-ignore\n // thisModal[0].addEventListener('keydown', (e) => {\n // if (e.key === 'Tab' || e.keyCode === KEYCODE_TAB) {\n //\n // if (e.shiftKey) /* shift + tab */ {\n // if (document.activeElement === firstFocusableEl) {\n // lastFocusableEl.focus();\n // e.preventDefault();\n // }\n // } else /* tab */ {\n // if (document.activeElement === lastFocusableEl) {\n // firstFocusableEl.focus();\n // e.preventDefault();\n // }\n // }\n // }\n // });\n // }\n\n confirmOnClick() {\n\n this.closeModal();\n this.confirm.emit();\n }\n\n declineOnClick() {\n this.closeModal();\n this.decline.emit();\n }\n\n cancelOnClick() {\n this.close.emit();\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n }\n\n closeModal() {\n // @ts-ignore\n // jQuery(\"#\" + this.id).modal('hide');\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n\n this.show.emit(false);\n }\n\n // setFocusOnLastPageActiveElement = () => {\n //\n // if (this.pageActiveElement != undefined) {\n //\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // console.info('loader-overlay = 0') // todo togliere\n // this.pageActiveElement.focus()\n // clearInterval(checkLoading);\n // }\n // }, 50);\n // }\n // }\n}\n","import * as moment_ from 'moment';\nimport {isNotEmptyOrNull} from \"./Util\";\n\nconst moment = moment_;\n\nexport class DateUtil {\n\n public static readonly MOMENT_SHORT_DATE_FORMAT = 'DD/MM/YYYY';\n public static readonly FORMATO_DATA: string = 'dd/MM/yyyy';\n\n /**\n * Verifica che una stringa rappresenti una data.\n * Nello specifico verifica che dalla stringa possa essere\n * creato un oggetto Date valido.\n */\n static isDate(s: string): boolean {\n\n let dateObj = DateUtil.toDateObject(s);\n return DateUtil.isValidDateObject(dateObj);\n }\n\n /**\n * Verifica se la stringa rappresenta\n * una data inferiore a quella odierna.\n */\n static isPastDate(s: string): boolean {\n\n let d = DateUtil.toDateObject(s);\n\n if (DateUtil.isValidDateObject(d)) {\n\n return DateUtil.isPastDateObject(d);\n } else {\n throw new Error('La stringa in input non rappresenta una data');\n }\n }\n\n /**\n * Verifica se la stringa rappresenta\n * una data superiore a quella odierna.\n */\n static isFutureDate(s: string): boolean {\n\n let d = DateUtil.toDateObject(s);\n\n if (DateUtil.isValidDateObject(d)) {\n\n return DateUtil.isFutureDateObject(d);\n } else {\n throw new Error('La stringa in input non rappresenta una data');\n }\n }\n\n /**\n * Verifica se la data e' inferiore\n * a quella odierna.\n */\n static isPastDateObject(d: Date): boolean {\n\n // let inputDate = DateUtil.toShortString(d);\n // let today = DateUtil.toShortString(new Date());\n // return moment(inputDate, DateUtil.MOMENT_SHORT_DATE_FORMAT) < moment(today, DateUtil.MOMENT_SHORT_DATE_FORMAT);\n return DateUtil.compareDateObject(d, new Date()) < 0;\n }\n\n static isFutureDateObject(d: Date) {\n // let inputDate = DateUtil.toShortString(d);\n // let today = DateUtil.toShortString(new Date());\n // return moment(today, DateUtil.MOMENT_SHORT_DATE_FORMAT) < moment(inputDate, DateUtil.MOMENT_SHORT_DATE_FORMAT);\n\n return DateUtil.compareDateObject(d, new Date()) > 0;\n }\n\n /**\n * @returns un numero intero negativo, zero o un numero intero positivo rispettivamente\n * se il primo argomento e' minore, uguale o maggiore del secondo.\n * Nel caso in cui le date non siano comparabili restituisce null.\n */\n static compareDateObject(d1: Date, d2: Date): number {\n\n let result: number = null;\n\n if (DateUtil.isValidDateObject(d1) && DateUtil.isValidDateObject(d1)) {\n\n let d1String = DateUtil.toShortString(d1);\n let d2String = DateUtil.toShortString(d2);\n\n if (moment(d1String, DateUtil.MOMENT_SHORT_DATE_FORMAT) < moment(d2String, DateUtil.MOMENT_SHORT_DATE_FORMAT)) {\n\n result = -1;\n } else if (moment(d1String, DateUtil.MOMENT_SHORT_DATE_FORMAT) > moment(d2String, DateUtil.MOMENT_SHORT_DATE_FORMAT)) {\n\n result = 1;\n } else {\n\n result = 0;\n }\n }\n\n return result;\n }\n\n /**\n * Verifica che l'oggetto Date sia valido.\n */\n static isValidDateObject(s: Date): boolean {\n\n return s && (s.getFullYear() ? true : false);\n }\n\n /**\n * Converte una stringa in un oggetto Date.\n *\n * @returns Oggetto Date se la stringa e' definita, null altrimenti.\n */\n static toDateObject(s: string): Date {\n\n let dateObj: Date = null;\n\n if (s) {\n // Se la data e' in formato italiano\n // riformatto la stringa in un formato\n // compatibile con Date\n if (DateUtil.isInItalianFormat(s)) {\n\n let a = s.split('/');\n s = a[1].concat('/').concat(a[0]).concat('/').concat(a[2]);\n }\n\n dateObj = new Date(s);\n }\n\n return dateObj;\n }\n\n /**\n * Verifica se la stringa e' una data\n * in formato italiano gg/mm/aaaa\n *\n * @returns\n */\n static isInItalianFormat(s: string): boolean {\n\n return isNotEmptyOrNull(s)\n && new RegExp(/^[0-3][0-9][\\/][0-1][0-9][\\/][1-9][0-9]{3}$/).test(s);\n }\n\n /**\n * Verifica se la stringa e' una data\n * in formato italiano aaaa-mm-gg\n *\n * @returns\n */\n static isInRFC3339Format(s: string): boolean {\n\n return isNotEmptyOrNull(s)\n && new RegExp(/^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}/).test(s)\n }\n\n /**\n * Verifica che la stringa sia formatta secondo lo standard ISO 8601\n *\n * E.g.\n * 2016-04-06\n * 2016-04-06T10:10:09Z\n * 2003-05-11T15:30:00.45Z\n * 1997-07-16T19:20+01:00\n * 1997-07-16T19:20:30+01:00\n * 1997-07-16T19:20:30.45+01:00\n * 1997-07-16T19:20-01:00\n * 1997-07-16T19:20:30-01:00\n * 1997-07-16T19:20:30.45-01:00\n *\n * https://rgxdb.com/r/526K7G5W\n *\n * @param s\n */\n static isInISO8601Format(s: string): boolean {\n return isNotEmptyOrNull(s)\n && new RegExp(/^[1-9][0-9]{3}-[0-1][0-9]-[0-3][0-9](T[0-9]{2}:[0-9]{2}(:[0-9]{2}(\\.[0-9]{2})?)?(([+-][0-9]{2}:[0-9]{2})|(Z)))?$/).test(s);\n }\n\n /**\n * Verifica che la stringa rappresenti una data valida.\n */\n static isValidDate(s: string): boolean {\n\n return DateUtil.isInItalianFormat(s) ? moment(s, DateUtil.MOMENT_SHORT_DATE_FORMAT).isValid() : moment(s).isValid();\n }\n\n /**\n * Riformatta la data in formato italiano short: gg/mm/yyyy\n *\n * @param s Stringa che rappresetna una data\n * @returns Data in formato italiano se la stringa rappresenta una data, null altrimenti.\n */\n static toItalianFormat(s: string): string {\n\n return DateUtil.isInItalianFormat(s) ? s : DateUtil.toShortString(new Date(s));\n }\n\n /**\n * Converte l'oggetto Date in stringa\n * omettendo il timestamp.\n *\n * @param d\n * @returns\n */\n static toShortString(d: Date): string {\n\n return DateUtil.toString(d, DateUtil.FORMATO_DATA);\n }\n\n /**\n * Converte l'oggetto Date in stringa.\n *\n * @param d\n * @param format\n */\n static toString(d: Date, format?: string): string {\n\n let dateString = null;\n\n if (DateUtil.isValidDateObject(d)) {\n\n dateString = moment(d).format(format.toUpperCase());\n }\n return dateString;\n }\n\n /**\n *\n * @param date\n * @param format\n */\n static reformat(date: string, format: string): string {\n\n let d: Date = this.toDateObject(date);\n return this.toString(d, format);\n }\n}\n","import {Component, ElementRef, EventEmitter, Injectable, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {NgbDateAdapter, NgbDateParserFormatter, NgbDatepickerConfig, NgbDatepickerI18n, NgbDateStruct} from \"@ng-bootstrap/ng-bootstrap\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {DateUtil} from \"../../../../utils/DateUtil\";\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {DateFormat} from \"../input-date/input-date.component\";\n\nconst I18N_VALUES = {\n 'it': {\n weekdays: ['Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa', 'Do'],\n months: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',\n 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],\n }\n};\n\n// export type DateFormat = 'RFC3339' | 'IT';\n\n@Injectable()\nexport class I18n {\n language = 'it';\n}\n\n@Injectable()\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\n\n constructor(private _i18n: I18n) {\n super();\n }\n\n getWeekdayShortName(weekday: number): string {\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\n }\n\n getMonthShortName(month: number): string {\n return I18N_VALUES[this._i18n.language].months[month - 1];\n }\n\n getMonthFullName(month: number): string {\n return this.getMonthShortName(month);\n }\n\n getDayAriaLabel(date: NgbDateStruct): string {\n return `${date.day}-${date.month}-${date.year}`;\n }\n}\n\n/**\n * Questa classe serve per la definizione dell'oggetto\n * che rappresenta la data selezionata dal calendario\n */\n@Injectable()\nexport class NgbDateNativeAdapter extends NgbDateAdapter<string> {\n\n private _italianFormat: DateFormat;\n\n fromModel(date: string): NgbDateStruct {\n\n // console.warn('fromModel', date)\n\n return DatePickerUtil.toNgbDateStruct(date);\n }\n\n toModel(date: NgbDateStruct): string {\n\n // console.warn('toModel', date)\n\n return this._italianFormat && this._italianFormat == \"IT\" ? DatePickerUtil.toItalianFormatString(date) : DatePickerUtil.toRFC3339FormatString(date);\n }\n\n set italianFormat(format: DateFormat) {\n this._italianFormat = format;\n }\n}\n\n/**\n * Questa classe serve per la formattazione della data nella textarea\n */\n@Injectable()\nexport class NgbDateCustomParserFormatter extends NgbDateParserFormatter {\n\n format(date: NgbDateStruct): string {\n\n // console.warn('format', date)\n\n return DatePickerUtil.toItalianFormatString(date);\n }\n\n parse(value: string): NgbDateStruct {\n\n // console.warn('parse', value)\n\n return DatePickerUtil.toNgbDateStruct(value);\n }\n}\n\n@Component({\n selector: 'inail-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [I18n,\n {provide: NgbDateAdapter, useClass: NgbDateNativeAdapter},\n {provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n},\n {provide: NgbDateParserFormatter, useClass: NgbDateCustomParserFormatter}\n ]\n})\nexport class DatePickerComponent extends FormElementComponent implements OnInit, OnChanges {\n\n protected options = {\n autoclose: true,\n format: 'dd/mm/yyyy',\n weekStart: 1,\n todayBtn: 'linked',\n language: 'it',\n todayHighlight: true,\n orientation: 'auto top',\n enableOnReadonly: false,\n };\n\n @ViewChild('input')\n protected input: ElementRef;\n\n dataValue: string;\n\n changed: boolean;\n\n @Output()\n dataChange = new EventEmitter<string>();\n\n @Input()\n modelFormat: DateFormat;\n\n constructor(config: NgbDatepickerConfig,\n private ngbDateParserFormatter: NgbDateParserFormatter,\n private ngbDateAdapter: NgbDateAdapter<string>) {\n super();\n }\n\n ngOnChanges(changes: DatePickerChanges) {\n\n if (changes.data && !changes.data.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n ngOnInit() {\n\n if (!this.modelFormat) {\n\n this.modelFormat = \"RFC3339\";\n }\n\n (this.ngbDateAdapter as NgbDateNativeAdapter).italianFormat = this.modelFormat;\n\n this.dataValue = DatePickerUtil.reformat(this.dataValue, this.modelFormat);\n setTimeout(() => {\n this.dataChange.emit(this.dataValue);\n });\n }\n\n ngAfterViewInit(): void {\n\n // console.warn('ngAfterViewInit', this.dataValue)\n\n window['$'](this.input.nativeElement).datepicker(this.options);\n\n if(this.dataValue && DateUtil.isDate(this.dataValue)){\n\n let data = this.ngbDateParserFormatter.format(this.ngbDateAdapter.fromModel(this.dataValue));\n\n // console.warn('data from model', this.dataValue)\n // console.warn('data riformattata', data)\n\n window['$'](this.input.nativeElement).datepicker('setDate', data);\n }\n }\n\n @Input()\n get data() {\n\n // console.warn('get data', this.dataValue)\n\n return this.dataValue;\n }\n\n set data(val) {\n\n // console.warn('set data', val)\n\n this.dataValue = val;\n this.dataChange.emit(this.dataValue);\n }\n\n get isValid(): boolean {\n\n let visibleValue: string = DatePickerUtil.reformat(this.dataValue, \"IT\");\n\n return isEmptyOrNull(this.dataValue) || DateUtil.isInItalianFormat(visibleValue);\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n checkError(): boolean {\n\n return !this.isValid || this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n getDescError(): string {\n\n return (isEmptyOrNull(this.descError) && !this.isValid)\n ? 'La data inserita non è valida'\n : this.descError;\n }\n\n onChange($event: any) {\n\n // console.warn('onChange', $event.target.value)\n\n setTimeout(() => {\n this.data = DateUtil.isDate($event.target.value)\n ? this.ngbDateAdapter.toModel(this.ngbDateParserFormatter.parse($event.target.value))\n : $event.target.value;\n }, 200);\n }\n}\n\n// Implementazione della classe senza ngbDatepicker\n// @Component({\n// selector: 'inail-input-date',\n// templateUrl: './date-picker.component.html',\n// styleUrls: ['./date-picker.component.scss']\n// })\n// export class DatePickerComponent extends FormElementComponent implements OnInit, OnChanges {\n//\n// protected options = {\n// autoclose: true,\n// format: 'dd/mm/yyyy',\n// weekStart: 1,\n// todayBtn: 'linked',\n// language: 'it',\n// todayHighlight: true,\n// orientation: 'auto top',\n// enableOnReadonly: false,\n// };\n//\n// @ViewChild('input')\n// protected input: ElementRef;\n//\n// dataValue: string;\n//\n// changed: boolean;\n//\n// @Output()\n// dataChange = new EventEmitter<string>();\n//\n// @Input()\n// modelFormat: DateFormat;\n//\n// // constructor(config: NgbDatepickerConfig,\n// // private ngbDateParserFormatter: NgbDateParserFormatter,\n// // private ngbDateAdapter: NgbDateAdapter<string>) {\n// // super();\n// // }\n//\n// constructor() {\n// super();\n// }\n//\n// ngOnChanges(changes: DatePickerChanges) {\n//\n// // console.warn('changes', changes)\n//\n// if (changes.data && !changes.data.firstChange) {\n//\n// this.hasError = false;\n// this.descError = undefined;\n// }\n// }\n//\n// // ngOnInit() {\n// //\n// // if (!this.modelFormat) {\n// //\n// // this.modelFormat = \"RFC3339\";\n// // }\n// //\n// // (this.ngbDateAdapter as NgbDateNativeAdapter).italianFormat = this.modelFormat;\n// //\n// // this.dataValue = DatePickerUtil.reformat(this.dataValue, this.modelFormat);\n// // setTimeout(() => {\n// // this.dataChange.emit(this.dataValue);\n// // });\n// // }\n//\n// ngOnInit() {\n//\n// // if (!this.modelFormat) {\n// //\n// // this.modelFormat = \"RFC3339\";\n// // }\n// //\n// // (this.ngbDateAdapter as NgbDateNativeAdapter).italianFormat = this.modelFormat;\n// //\n// // this.dataValue = DatePickerUtil.reformat(this.dataValue, this.modelFormat);\n// // setTimeout(() => {\n// // this.dataChange.emit(this.dataValue);\n// // });\n// }\n//\n// // ngAfterViewInit(): void {\n// //\n// // console.warn('ngAfterViewInit', this.dataValue)\n// //\n// // window['$'](this.input.nativeElement).datepicker(this.options);\n// //\n// // if(this.dataValue && DateUtil.isDate(this.dataValue)){\n// //\n// // let data = this.ngbDateParserFormatter.format(this.ngbDateAdapter.fromModel(this.dataValue));\n// //\n// // console.warn('data from model', this.dataValue)\n// // console.warn('data riformattata', data)\n// //\n// // window['$'](this.input.nativeElement).datepicker('setDate', data);\n// // }\n// // }\n//\n// ngAfterViewInit(): void {\n//\n// // console.warn('ngAfterViewInit', this.dataValue)\n//\n// window['$'](this.input.nativeElement).datepicker(this.options);\n//\n// if(this.dataValue && DateUtil.isDate(this.dataValue)){\n//\n// window['$'](this.input.nativeElement).datepicker('setDate', this.dataValue);\n// }\n// }\n//\n// @Input()\n// get data() {\n//\n// // console.warn('get data', this.dataValue)\n//\n// return this.dataValue;\n// }\n//\n// set data(val) {\n//\n// // console.warn('set data', val)\n//\n// this.dataValue = val;\n// this.dataChange.emit(this.dataValue);\n// }\n//\n// get isValid(): boolean {\n//\n// let visibleValue: string = DatePickerUtil.reformat(this.dataValue, \"IT\");\n//\n// // return isEmptyOrNull(this.dataValue) || DateUtil.isInItalianFormat(visibleValue);\n// return isEmptyOrNull(this.dataValue) || DateUtil.isInItalianFormat(this.dataValue);\n// }\n//\n// checkDescError(): boolean {\n//\n// let descError: string = this.getDescError();\n// return this.checkError() && isNotEmptyOrNull(descError);\n// }\n//\n// checkError(): boolean {\n//\n// return !this.isValid || this.hasError || isNotEmptyOrNull(this.descError);\n// }\n//\n// getDescError(): string {\n//\n// return (isEmptyOrNull(this.descError) && !this.isValid)\n// ? 'La data inserita non è valida'\n// : this.descError;\n// }\n//\n// // onChange($event: any) {\n// //\n// // console.warn('onChange', $event.target.value)\n// //\n// // setTimeout(() => {\n// // this.data = DateUtil.isDate($event.target.value)\n// // ? this.ngbDateAdapter.toModel(this.ngbDateParserFormatter.parse($event.target.value))\n// // : $event.target.value;\n// // }, 200);\n// // }\n//\n// onChange($event: any) {\n//\n// // console.warn('onChange', $event.target.value)\n//\n// setTimeout(() => {\n// this.data = $event.target.value;\n// }, 200);\n// }\n// }\n\nclass DatePickerUtil {\n\n static toNgbDateStruct(s: string): NgbDateStruct {\n\n let date: NgbDateStruct = null;\n\n if (s) {\n\n let dateObj = DateUtil.toDateObject(s.trim ? s.trim() : s);\n\n date = {year: dateObj.getFullYear(), month: dateObj.getMonth() + 1, day: dateObj.getDate()};\n }\n\n return date;\n }\n\n static reformat(s: string, dateFormat?: DateFormat): string {\n\n let data: string = null;\n let dateObj: NgbDateStruct = DatePickerUtil.toNgbDateStruct(s);\n\n if (dateObj) {\n\n data = dateFormat && dateFormat == \"IT\" ? DatePickerUtil.toItalianFormatString(dateObj) : DatePickerUtil.toRFC3339FormatString(dateObj);\n }\n\n return data;\n }\n\n static toItalianFormatString(date: NgbDateStruct): string {\n\n let s: string = null;\n\n if (date) {\n s = DatePickerUtil.pad(date.day) + '/' + DatePickerUtil.pad(date.month) + '/' + date.year;\n }\n\n return s;\n }\n\n static toRFC3339FormatString(date: NgbDateStruct): string {\n\n let s: string = null;\n\n if (date) {\n s = DatePickerUtil.pad(date.year) + '-' + DatePickerUtil.pad(date.month) + '-' + DatePickerUtil.pad(date.day);\n }\n\n return s;\n }\n\n static pad(n: number): string {\n\n return n ? ((n < 10 ? '0' : '') + n) : '';\n }\n}\n\ninterface DatePickerChanges extends SimpleChanges {\n\n data: SimpleChange;\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\nexport type FeedbackTypes = 'ERROR' | 'SUCCESS';\n\n@Component({\n selector: 'inail-feedback',\n templateUrl: './feedback.component.html',\n styleUrls: ['./feedback.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FeedbackComponent extends BasicUxElementComponent implements OnInit, OnChanges {\n\n // Queste inizializzazioni servono per essere usate nel template\n errorType: FeedbackTypes = 'ERROR';\n successType: FeedbackTypes = 'SUCCESS';\n\n @Input()\n message: NonNullable<string>;\n @Input()\n type: FeedbackTypes;\n @Input()\n gobalFeedback: boolean;\n @Input()\n enableIcon: boolean;\n @Input()\n contentTitle: string;\n @Input()\n details: string[];\n @Input()\n detailsAsList: boolean;\n @Input()\n orderedList: boolean;\n\n constructor() {\n super();\n this.enableIcon = true;\n }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes.details && changes.details.currentValue) {\n\n this.details = (changes.details.currentValue as string[]).filter(value => value != undefined)\n }\n }\n}\n\nexport class Feedback {\n\n type: FeedbackTypes;\n message: string;\n contentTitle: string;\n details?: string[];\n\n constructor(type: FeedbackTypes, msg: string, details?: string[], contentTitle?: string) {\n\n this.message = msg;\n this.type = type;\n\n if (details) {\n\n this.details = [].concat(details);\n this.contentTitle = contentTitle;\n }\n }\n}\n","import {AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {DateUtil} from \"../../../../utils/DateUtil\";\n\n@Component({\n selector: 'inail-input-text',\n templateUrl: './input-text.component.html',\n styleUrls: ['./input-text.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputTextComponent extends FormElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n placeholder: string;\n @Input()\n maxlength: any;\n @Input()\n isDate: boolean;\n\n valueValue: string;\n\n @Output()\n valueChange = new EventEmitter();\n\n ngOnChanges(changes: InputTextChanges): void {\n\n if (changes.value && !changes.value.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n @Input()\n get value() {\n return this.isDate && this.valueValue ? DateUtil.toItalianFormat(this.valueValue) : this.valueValue;\n }\n\n set value(val) {\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n ngAfterViewInit(): void {\n\n if(this.showPopover()) {\n\n // @ts-ignore\n $(`#${this.id}-popover`).popover();\n }\n }\n}\n\ninterface InputTextChanges extends SimpleChanges {\n\n value: SimpleChange;\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {isEmptyOrNull, isListNotEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {FormElementComponent} from \"../form-element/form-element.component\";\n\n@Component({\n selector: 'inail-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SelectComponent extends FormElementComponent implements OnInit, OnChanges {\n\n @Input()\n options: SelectOption[];\n @Input()\n blankOption: boolean;\n @Input()\n blankOptionText: string;\n @Input()\n sort: \"ASC\" | \"DESC\";\n @Input()\n valueLabel: string;\n @Input()\n disabledAsInputText: boolean;\n\n valueValue: string;\n\n @Output()\n valueChange = new EventEmitter();\n\n @Output()\n select: EventEmitter<SelectOption> = new EventEmitter<SelectOption>();\n\n constructor() {\n super();\n this.options = new Array(0);\n this.blankOption = true;\n }\n\n ngOnChanges(changes: SelectChanges) {\n\n if (this.sort) {\n\n let direction: number = \"ASC\" == this.sort.toUpperCase() ? 1 : \"DESC\" == this.sort.toUpperCase() ? -1 : 0;\n\n if (direction != 0 && this.options != undefined) {\n\n this.options.sort((a: SelectOption, b: SelectOption) => {\n return a.label < b.label ? -direction : a.label > b.label ? direction : 0\n });\n }\n }\n\n if (changes.value && !changes.value.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.valueValue)) {\n\n setTimeout(() => {\n this.valueValue = '';\n this.valueChange.emit(this.valueValue);\n });\n\n // this.valueValue = '';\n // this.valueChange.emit(this.valueValue);\n }\n }\n\n // @Input()\n // get value() {\n // return this.valueValue;\n // }\n //\n // set value(val) {\n //\n // setTimeout(() => {\n // this.valueValue = val || '';\n // this.valueChange.emit(this.valueValue);\n // });\n // }\n\n @Input()\n get value() {\n return this.valueValue;\n }\n\n set value(val) {\n\n // console.warn('val', val)\n\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n\n let optionSelected: SelectOption;\n\n if(this.options) {\n\n optionSelected = this.options.find(opt => opt != undefined && opt.value === this.valueValue);\n }\n\n if(optionSelected != undefined || isEmptyOrNull(val)) {\n\n this.select.emit(optionSelected);\n }\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n static isValidOption(opzioniValide: SelectOption[], opzioneScelta: string, blankOption?: boolean): boolean {\n\n return (blankOption && (!opzioneScelta || opzioneScelta.length == 0)) || (isListNotEmptyOrNull(opzioniValide) &&\n\n opzioniValide.findIndex(element => {\n return element.value == opzioneScelta;\n }) >= 0);\n }\n\n getValueLabel(): string {\n\n let option: SelectOption;\n\n if (this.options) {\n option = this.options.find((opt: SelectOption) => {\n return opt.value == this.value\n });\n }\n\n return option ? option.label : this.valueLabel || this.value;\n }\n}\n\nexport class SelectOption {\n label: string;\n value: string;\n}\n\n// export function isValidOption(opzioniValide: SelectOption[], opzioneScelta: string, blankOption?: boolean): boolean {\n//\n// return (blankOption && (!opzioneScelta || opzioneScelta.length == 0)) || (isListNotEmptyOrNull(opzioniValide) &&\n//\n// opzioniValide.findIndex(element => {\n// return element.value == opzioneScelta;\n// }) >= 0);\n// }\n//\n// export function findSelectOptionFromValue(value: string, options: SelectOption[]): SelectOption {\n//\n// return options && options.find((obj: SelectOption) => {\n//\n// return obj && obj.value == value;\n// })\n// }\n//\n// export function findSelectOptionLabel(value: string, options: SelectOption[]): string {\n//\n// let opt = findSelectOptionFromValue(value, options);\n// return opt && opt.label;\n// }\n\ninterface SelectChanges extends SimpleChanges {\n\n value: SimpleChange;\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\n\n@Component({\n selector: 'inail-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TextareaComponent extends FormElementComponent implements OnInit, OnChanges {\n\n valueValue: string;\n\n @Input()\n placeholder: string;\n @Output()\n valueChange = new EventEmitter();\n\n @Input()\n maxlength: number;\n @Input()\n rows: number;\n @Input()\n cols: number;\n @Input()\n preventPasting: boolean;\n\n ngOnChanges(changes: TextAreaChanges): void {\n\n if (changes.value && !changes.value.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n\n this.initAttributes();\n }\n\n private initAttributes() {\n\n if (!this.rows) {\n this.rows = 10;\n }\n\n if (!this.cols) {\n this.cols = 50;\n }\n\n if (!this.maxlength) {\n this.maxlength = 300;\n }\n }\n\n @Input()\n get value() {\n return this.valueValue;\n }\n\n set value(val) {\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n\n checkError(): boolean {\n\n return (this.hasError || isNotEmptyOrNull(this.descError) || this.isTextTooLong()) === true;\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n getNumeroCaratteriDisponibili(): number {\n\n let l = this.valueValue ? this.valueValue.length : 0;\n\n return this.maxlength - l;\n }\n\n getDescError(): string {\n\n return (isEmptyOrNull(this.descError) && this.isTextTooLong())\n ? \"Il testo non può essere lungo di \" + this.maxlength + \" caratteri\"\n : this.descError;\n }\n\n isTextTooLong(): boolean {\n\n return this.valueValue && this.valueValue.length > this.maxlength;\n }\n\n onPaste($event: ClipboardEvent) {\n\n if (this.preventPasting === true) {\n\n $event.preventDefault();\n }\n }\n}\n\ninterface TextAreaChanges extends SimpleChanges {\n\n value: SimpleChange;\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-th-label',\n templateUrl: './th-label.component.html',\n styleUrls: ['./th-label.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ThLabelComponent implements OnInit, AfterViewInit {\n\n public static readonly ASC: number = 1;\n public static readonly DESC: number = -1;\n public static readonly UNSORTED: number = 0;\n\n ASC = ThLabelComponent.ASC;\n DESC = ThLabelComponent.DESC;\n UNSORTED = ThLabelComponent.UNSORTED;\n\n // externalSorting: boolean;\n direction: number;\n elementRef: ElementRef;\n\n // Obbligatorio\n @Input()\n label: string;\n\n // Deprecato!\n // Obbligatorio se paginazione interna: Passandolo effetua l'ordinamento in locale\n @Input()\n elements: any[];\n\n // Deprecato!\n // Obbligatorio se paginazione interna: Da usare in 2-way-data-binding\n @Output()\n elementsChange = new EventEmitter<any[]>();\n\n // Obbligatorio\n @Input()\n property: string;\n\n @Input()\n title: string;\n\n @Input()\n sortable: boolean;\n\n @Output()\n click = new EventEmitter<SortingInfo>();\n\n constructor(element: ElementRef) {\n\n this.direction = ThLabelComponent.UNSORTED;\n this.elementRef = element;\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n\n }\n\n getAriaSortValue(direction: number): string {\n\n let value: string\n\n switch (direction) {\n\n case ThLabelComponent.ASC:\n value = 'ascending';\n break\n case ThLabelComponent.DESC:\n value = 'descending';\n break\n case ThLabelComponent.UNSORTED:\n value = 'none';\n break\n }\n\n return value;\n }\n\n onClick(event) {\n\n // todo\n // console.warn('th-label-click')\n\n event.stopPropagation();\n this.emettiEventoOrdinamento();\n }\n\n private emettiEventoOrdinamento() {\n\n // todo\n // console.warn('th-label emettiEventoOrdinamento', this.sortable, this.property)\n\n if (this.sortable && this.property) {\n\n this.direction = this.direction * -1;\n\n if (this.direction == ThLabelComponent.UNSORTED) {\n\n this.direction = ThLabelComponent.ASC;\n }\n\n let info: SortingInfo = {\n direction: this.direction,\n property: this.property\n };\n\n // todo\n // console.warn('th-label emettiEventoOrdinamento', info)\n\n this.click.emit(info);\n }\n }\n\n public setAsUnsorted() {\n\n this.direction = ThLabelComponent.UNSORTED;\n }\n}\n\nexport class SortingInfo {\n\n property: string;\n direction: number;\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-table-page-length-selector',\n templateUrl: './table-page-length-selector.component.html',\n styleUrls: ['./table-page-length-selector.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TablePageLengthSelectorComponent implements OnInit, OnChanges {\n\n valueValue: number;\n\n @Input()\n tableId: string;\n\n @Output()\n valueChange: EventEmitter<number> = new EventEmitter();\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n }\n\n ngOnInit() {\n }\n\n @Input()\n get value(): number {\n return this.valueValue;\n }\n\n set value(val: number) {\n\n // console.warn('set value', val, this.valueValue)\n\n if(val != this.valueValue) {\n\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n }\n}\n","import {ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-table-page-selector',\n templateUrl: './table-page-selector.component.html',\n styleUrls: ['./table-page-selector.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TablePageSelectorComponent implements OnInit {\n\n public static readonly DEFAULT_TABLE_LENGTH: number = 10;\n\n @Input()\n tableId: string;\n\n // Obbligatorio\n @Input()\n listSize: number;\n\n // Obbligatorio\n @Input()\n pageSize: number;\n\n // Obbligatorio se paginazione esterna\n @Input()\n currentPage: number;\n\n @Output()\n select = new EventEmitter();\n\n length: number;\n externalPagination: boolean;\n\n constructor(private cd: ChangeDetectorRef) {\n\n this.currentPage = 1;\n this.pageSize = 10;\n this.listSize = 0;\n this.externalPagination = false;\n }\n\n ngOnChanges(changes: PaginateChanges): void {\n\n // Se si sta impostando il numero di pagina dall'esterno\n // vuol dire che si sta effettuando la paginazione dall'esterno\n if (!this.externalPagination\n && changes.currentPage\n && changes.currentPage.firstChange\n && changes.currentPage.currentValue != undefined) {\n\n this.externalPagination = true;\n }\n\n if (changes && (changes.pageSize || changes.listSize)) {\n\n this.calcolaNumeroPagine();\n\n if (!this.externalPagination) {\n\n this.currentPage = 1;\n }\n }\n\n if (changes && changes.currentPage && changes.currentPage.currentValue != undefined) {\n\n if (changes.currentPage.currentValue > this.length) {\n\n this.currentPage = this.length;\n this.emit(this.currentPage);\n } else if (changes.currentPage.currentValue < 1) {\n\n this.currentPage = 1;\n this.emit(this.currentPage);\n }\n }\n\n this.cd.detectChanges();\n }\n\n ngOnInit() {\n\n if (!this.pageSize) {\n\n this.pageSize = TablePageSelectorComponent.DEFAULT_TABLE_LENGTH;\n }\n }\n\n calcolaNumeroPagine() {\n\n this.length = Math.floor(this.listSize / this.pageSize);\n\n if ((this.listSize % this.pageSize) > 0) {\n\n this.length++;\n }\n\n if (this.length == 0 || this.length == undefined) {\n\n this.length = 1;\n }\n }\n\n get pages(): any[] {\n\n return new Array(this.length);\n }\n\n set(n: number) {\n\n if (n > 0 && n <= this.length) {\n\n if (!this.externalPagination) {\n\n this.currentPage = n;\n }\n\n this.emit(n);\n }\n }\n\n prev() {\n\n this.set(this.currentPage - 1);\n }\n\n next() {\n\n this.set(this.currentPage + 1);\n }\n\n emit(page: number) {\n // console.warn('length emit', page)\n this.select.emit(page);\n }\n}\n\nexport interface PaginateChanges extends SimpleChanges {\n\n listSize?: ElementsChange,\n pageSize?: PageSizeChange,\n currentPage?: CurrentPageChange\n}\n\nexport interface ElementsChange extends SimpleChange {\n\n currentValue: number\n}\n\nexport interface PageSizeChange extends SimpleChange {\n\n currentValue: number\n}\n\nexport interface CurrentPageChange extends SimpleChange {\n\n currentValue: number\n}\n","import {AfterViewInit, Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, Renderer2, SimpleChange, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {SortingInfo, ThLabelComponent} from \"../th-label/th-label.component\";\nimport {TablePageSelectorComponent} from \"../table-page-selector/table-page-selector.component\";\nimport {Observable} from \"rxjs\";\n\n@Component({\n selector: 'inail-paged-table-renderer',\n templateUrl: './paged-table-renderer.component.html',\n styleUrls: ['./paged-table-renderer.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PagedTableRendererComponent implements OnInit, AfterViewInit {\n\n public static readonly DEFAULT_TABLE_LENGTH: number = 10;\n\n tableLength: number;\n currentPage: number;\n externalPaginationSorting: boolean;\n\n // Necessario per l'inserimento dell'attributo aria-controls negli elementi di\n // visualizzazione e paginazione della tabella\n @Input()\n tableId: string;\n\n // Obbligatorio se paginazione INTERNA\n @Input()\n elements: any[];\n\n // Obbligatorio se paginazione INTERNA\n @Input()\n subset: any[];\n\n // Obbligatorio se paginazione INTERNA: Da usare in 2-way-data-binding\n @Output()\n subsetChange = new EventEmitter<any[]>();\n\n // Obbligatorio se paginazione ESTERNA\n @Input()\n paginationInfo: Pagination;\n\n // Da usare solamente in caso di paginazione INTERNA\n @Input()\n doPagination: Observable<Pagination>;\n\n @Input()\n pageSize: number\n\n @Input()\n recuperoInCorso: boolean;\n\n @Input()\n disabilitaPaginazione: boolean;\n\n @Input()\n testoRecuperoInCorso: string;\n\n @Output()\n pagination = new EventEmitter<Pagination>();\n\n @ContentChildren(ThLabelComponent, {descendants: true})\n thLabelComponents: QueryList<ThLabelComponent>;\n\n @ViewChild(TablePageSelectorComponent)\n tablePageSelectorComponent: TablePageSelectorComponent;\n\n constructor(private renderer: Renderer2) {\n\n this.externalPaginationSorting = false;\n }\n\n ngOnChanges(changes: PagedTableRendererChanges): void {\n\n // console.warn('changes', changes)\n\n // Controllo se la pagina richiesta e' interna o esterna\n if (!this.externalPaginationSorting\n && changes.paginationInfo\n && changes.paginationInfo.firstChange\n && changes.paginationInfo.currentValue != undefined) {\n\n this.externalPaginationSorting = true;\n }\n\n // Se nella paginazione esterna viene specificata una proprieta di sorting\n // modifico il componente thLabel associato\n if (this.externalPaginationSorting && this.paginationInfo && this.paginationInfo.sortProperty) {\n\n if (this.thLabelComponents) {\n\n let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == this.paginationInfo.sortProperty);\n this.setSortDirection(thLabel, this.paginationInfo.sortDirection as ('asc' | 'desc'));\n }\n }\n\n // Verifico se e' cambiata la lista degli elementi in input.\n // Nel caso in cui si stia effettuando una paginazione interna\n // emetto il sottoinsieme inerente la prima pagina\n if (changes.elements && !changes.elements.firstChange && !this.externalPaginationSorting) {\n\n if (this.tablePageSelectorComponent) {\n\n this.tablePageSelectorComponent.currentPage = 1;\n }\n\n // todo comment\n // console.info('changes.elements')\n this.emitSubset(1);\n }\n\n if (!this.externalPaginationSorting\n && changes.doPagination\n && changes.doPagination.currentValue) {\n\n changes.doPagination.currentValue.subscribe((info: Pagination) => {\n\n // console.warn('ngOnChanges', info)\n this.lengthOnChange(info.pageSize);\n setTimeout(() => this.doSorting(info.sortProperty, info.sortDirection), 100);\n setTimeout(() => this.pageOnChange(info.pageNumber), 200);\n })\n }\n }\n\n ngOnInit() {\n\n this.tableLength = this.externalPaginationSorting ? this.paginationInfo.pageSize : this.pageSize || PagedTableRendererComponent.DEFAULT_TABLE_LENGTH;\n\n if (!this.externalPaginationSorting) {\n\n setTimeout(() => {\n // todo comment\n // console.info('ngOnInit---', this.currentPage)\n this.emitSubset(this.currentPage || 1);\n });\n }\n }\n\n ngAfterViewInit(): void {\n\n // console.warn('thLabelComponents PTR', this.thLabelComponents)\n\n this.inizializzaTabella(this.thLabelComponents);\n this.lookAtThLabel(this.thLabelComponents);\n\n // console.warn('>>>>>', this.paginationInfo, this.thLabelComponents)\n //\n // // Se nella paginazione esterna viene specificata una proprieta di sorting\n // // modifico il componente thLabel associato\n // if (this.externalPaginationSorting && this.paginationInfo && this.paginationInfo.sortProperty) {\n //\n // if (this.thLabelComponents) {\n //\n //\n //\n // let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == this.paginationInfo.sortProperty);\n // this.setSortDirection(thLabel, this.paginationInfo.sortDirection as ('asc' | 'desc'));\n //\n // console.warn('XXXXXXXXXXXXXXXX', thLabel)\n // }\n // }\n }\n\n /**\n * Effettua varie operazioni di inizializzazione della tabella\n */\n public inizializzaTabella(thLabelComponents: QueryList<ThLabelComponent>) {\n\n if (thLabelComponents) {\n\n // Inizializzo tutti i th della tabella\n thLabelComponents.forEach(\n (thLabel: ThLabelComponent) => {\n\n this.modificaTh(thLabel);\n })\n }\n }\n\n /**\n *\n * @param sortProperty\n * @param sortDirection\n */\n public doSorting(sortProperty: string, sortDirection: string) {\n\n // todo commento\n // console.info('doSorting: ', sortProperty, sortDirection)\n // console.info('thLabelComponents', this.thLabelComponents)\n\n let info: SortingInfo = {\n property: sortProperty,\n direction: sortDirection == Pagination.ASC ? ThLabelComponent.ASC : sortDirection == Pagination.DESC ? ThLabelComponent.DESC : undefined\n }\n\n let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == sortProperty);\n\n // todo commento\n // console.info('thLabelComponent trovato', thLabel)\n\n this.performSorting(info, thLabel)\n }\n\n /**\n * Si mette in ascolto sugli eventi emessi dai thLabelComponents dati in input\n * per poter eseguire le opportune azioni\n *\n * @param thLabelComponents\n */\n public lookAtThLabel(thLabelComponents: QueryList<ThLabelComponent>) {\n\n // console.warn('lookAtThLabel', thLabelComponents)\n\n if (thLabelComponents) {\n\n this.thLabelComponents = thLabelComponents;\n\n thLabelComponents.forEach(\n (thLabel: ThLabelComponent) => {\n\n // console.warn('thLabel', thLabel)\n\n if (thLabel) {\n\n // Meccanismo deprecato\n // thLabel.elementsChange.subscribe(\n // () => {\n // this.resetDirectionSorting(thLabel, thLabelComponents);\n // }\n // );\n\n // Subscribe al click del th label\n thLabel.click.subscribe(\n (info: SortingInfo) => {\n\n // todo\n // console.warn('table eventoOrdinamento', info)\n\n this.performSorting(info, thLabel);\n }\n );\n }\n }\n )\n }\n }\n\n /**\n *\n * @param info\n * @param thLabel\n */\n performSorting(info: SortingInfo, thLabel: ThLabelComponent) {\n\n // todo comment\n // console.info('performSorting', info, thLabel)\n\n if (thLabel != undefined && info != undefined && info.property != undefined) {\n\n let eventoPaginazione: Pagination = {};\n\n eventoPaginazione.sortProperty = info.property;\n eventoPaginazione.sortDirection = info.direction == ThLabelComponent.ASC ? Pagination.ASC : info.direction == ThLabelComponent.DESC ? Pagination.DESC : undefined;\n eventoPaginazione.pageNumber = 1;\n\n this.resetDirectionSorting(thLabel, this.thLabelComponents);\n this.modificaTh(thLabel);\n\n if (this.externalPaginationSorting) {\n\n // console.warn('ext', eventoPaginazione, this.paginationInfo)\n\n eventoPaginazione.fullListSize = this.paginationInfo.fullListSize;\n eventoPaginazione.pageSize = this.paginationInfo.pageSize;\n\n // console.warn('ext 2', eventoPaginazione, this.paginationInfo)\n } else {\n\n // console.warn('inn')\n\n // eventoPaginazione = {};\n this.ordina(info);\n\n // todo comment\n // console.info('performSorting')\n this.emitSubset(1);\n }\n\n // todo comment\n // console.info('eventoPaginazione', eventoPaginazione)\n\n // console.warn('performSorting: ', eventoPaginazione)\n this.pagination.emit(eventoPaginazione);\n }\n }\n\n /**\n * Reimposta ad unsorted tutti i th label ad eccezione\n * di quelli dato in input\n *\n * @param thLabel\n * @param thLabelComponents\n */\n private resetDirectionSorting(thLabel: ThLabelComponent, thLabelComponents: QueryList<ThLabelComponent>) {\n\n if (thLabelComponents) {\n\n thLabelComponents.forEach((item: ThLabelComponent) => {\n\n if (item && item.property != thLabel.property) {\n\n item.setAsUnsorted();\n this.modificaTh(item);\n }\n })\n }\n }\n\n /**\n * Modifica opportunamente tutti i th della tabella\n * in base alle informazioni di paginazione ricevute\n *\n * @param info\n */\n private reimpostaThs(info: Pagination, thLabelComponents: QueryList<ThLabelComponent>) {\n\n if (info) {\n\n let thLabelComponent = this.getThLabelComponentBySortProperty(info.sortProperty, thLabelComponents);\n\n this.resetDirectionSorting(thLabelComponent, thLabelComponents);\n }\n }\n\n /**\n * Restituisce il ThLabelComponent associato alla proprieta di ordinamento.\n *\n * @param sortProperty\n * @param thLabelComponents\n */\n private getThLabelComponentBySortProperty(sortProperty: string, thLabelComponents: QueryList<ThLabelComponent>): ThLabelComponent {\n\n return undefined != thLabelComponents\n ? thLabelComponents.find((thLabelComponent: ThLabelComponent) => thLabelComponent && thLabelComponent.property == sortProperty)\n : undefined;\n }\n\n /**\n * Modifica l'elemento th che contiene il ThLabelComponent\n */\n private modificaTh(thLabelComponent: ThLabelComponent) {\n\n if (thLabelComponent && thLabelComponent.sortable === true) {\n\n let th: HTMLElement = thLabelComponent.elementRef.nativeElement.parentNode;\n\n if (th) {\n\n this.removeSortClass(th);\n this.renderer.addClass(th, this.getThSortClass(thLabelComponent.direction));\n\n // Spostato in th-label\n // th.setAttribute('aria-label', thLabelComponent.label + \": attiva per ordinare la colonna in ordine \" + (thLabelComponent.direction == ThLabelComponent.ASC ? 'decrescente' : 'crescente'));\n\n th.setAttribute('aria-sort', this.getAriaSortValue(thLabelComponent.direction));\n\n if (thLabelComponent.direction == ThLabelComponent.UNSORTED) {\n\n th.removeAttribute('aria-sort');\n }\n }\n }\n }\n\n /**\n *\n * @param element\n */\n private removeSortClass(element: HTMLElement) {\n\n // console.warn('removeSortClass', element)\n\n this.renderer.removeClass(element, 'sorting_asc');\n this.renderer.removeClass(element, 'sorting_desc');\n this.renderer.removeClass(element, 'sorting');\n }\n\n /**\n *\n * @param direction\n */\n private getThSortClass(direction: number) {\n\n let value: string\n\n switch (direction) {\n\n case ThLabelComponent.ASC:\n value = 'sorting_asc';\n break\n case ThLabelComponent.DESC:\n value = 'sorting_desc';\n break\n case ThLabelComponent.UNSORTED:\n value = 'sorting';\n break\n }\n\n return value;\n }\n\n /**\n *\n * @param direction\n */\n private getAriaSortValue(direction: number): string {\n\n let value: string\n\n switch (direction) {\n\n case ThLabelComponent.ASC:\n value = 'ascending';\n break\n case ThLabelComponent.DESC:\n value = 'descending';\n break\n case ThLabelComponent.UNSORTED:\n value = 'none';\n break\n }\n\n return value;\n }\n\n private ordina(info: SortingInfo) {\n\n // todo\n // console.info('ordina', info)\n\n if (info && this.elements && info.property) {\n\n info.direction = info.direction * -1;\n\n if (info.direction == ThLabelComponent.UNSORTED) {\n\n info.direction = ThLabelComponent.ASC;\n }\n\n this.elements.sort(this.propertyComparator(info.property, info.direction));\n this.elements = [].concat(this.elements);\n }\n }\n\n private propertyComparator(property: string, direction: number) {\n\n let pList = property ? property.split('.') : undefined;\n\n function estraiValore(e: any, pList: string[]): any {\n\n if (e && pList) {\n\n if (pList.length > 1) {\n\n return estraiValore(e[pList[0]], pList.slice(1, pList.length));\n } else {\n\n return e[pList[0]];\n }\n }\n }\n\n return function (e1, e2) {\n\n return (estraiValore(e1, pList) > estraiValore(e2, pList) ? ThLabelComponent.DESC : ThLabelComponent.ASC) * direction;\n }\n }\n\n lengthOnChange(value: number) {\n\n // todo commento\n // console.warn('lengthOnChange: ', value, this.paginationInfo)\n\n if (value != undefined && (!this.paginationInfo || value != this.paginationInfo.pageSize)) {\n\n let eventoPaginazione: Pagination = {};\n\n if (this.externalPaginationSorting) {\n\n eventoPaginazione = {...this.paginationInfo};\n\n } else if (this.tableLength != value) {\n\n this.tableLength = value;\n eventoPaginazione = {};\n\n // todo comment\n // console.info('lengthOnChange')\n this.emitSubset(1);\n }\n\n eventoPaginazione.pageSize = value;\n eventoPaginazione.pageNumber = 1;\n // console.warn('lengthOnChange emit: ', eventoPaginazione)\n this.pagination.emit(eventoPaginazione);\n }\n }\n\n pageOnChange(page: number) {\n\n // todo commento\n // console.warn('pageOnChange: ', page)\n\n if (page != undefined) {\n\n let eventoPaginazione: Pagination;\n\n if (this.externalPaginationSorting) {\n\n eventoPaginazione = {...this.paginationInfo};\n\n } else {\n\n eventoPaginazione = {};\n this.emitSubset(page);\n }\n\n eventoPaginazione.pageNumber = page;\n // console.warn('pageOnChange', eventoPaginazione)\n this.pagination.emit(eventoPaginazione);\n }\n }\n\n emitSubset(page: number) {\n // todo\n // console.info('emitSubset', page, this.externalPaginationSorting, this.elements)\n\n if (page && !this.externalPaginationSorting && this.elements != undefined) {\n\n // console.info('xxx')\n\n let a: any[];\n\n let firstElementIndex = this.tableLength * (page - 1);\n\n let lastIndex: number = Number(firstElementIndex) + Number(this.tableLength);\n\n a = this.elements.slice(firstElementIndex, lastIndex);\n\n this.currentPage = page;\n this.subsetChange.emit(a);\n }\n }\n\n visualizzaPaginazione(): boolean {\n\n return !this.disabilitaPaginazione\n && (this.elements != undefined || (this.externalPaginationSorting != undefined && this.paginationInfo != undefined));\n }\n\n setSortDirection(thLabel: ThLabelComponent, direction: 'asc' | 'desc') {\n\n if (thLabel) {\n\n switch (direction) {\n\n case \"asc\":\n thLabel.direction = ThLabelComponent.ASC;\n break;\n\n case \"desc\":\n thLabel.direction = ThLabelComponent.DESC;\n break;\n\n default:\n thLabel.direction = ThLabelComponent.UNSORTED;\n break\n }\n\n this.modificaTh(thLabel);\n }\n }\n}\n\nexport class Pagination {\n\n static readonly ASC: string = 'asc';\n static readonly DESC: string = 'desc';\n\n fullListSize?: number;\n pageNumber?: number;\n pageSize?: number;\n sortProperty?: string;\n sortDirection?: string;\n}\n\nexport interface ElementsChange extends SimpleChange {\n\n}\n\nexport interface PaginationChange extends SimpleChange {\n\n}\n\nexport interface PagedTableRendererChanges extends SimpleChanges {\n\n elements?: ElementsChange,\n paginationInfo?: PaginationChange\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {DateFormat} from \"../input-date/input-date.component\";\n\n@Component({\n selector: 'inail-date-range',\n templateUrl: './input-date-range.component.html',\n styleUrls: ['./input-date-range.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputDateRangeComponent extends FormElementComponent implements OnInit, OnChanges {\n\n dataDalValue: string;\n dataAlValue: string;\n\n @Input()\n hasErrorDal: boolean;\n @Input()\n descErrorDal: string;\n @Input()\n hasErrorAl: boolean;\n @Input()\n descErrorAl: string;\n @Input()\n modelFormat: DateFormat;\n\n @Output()\n dataDalChange = new EventEmitter<string>();\n\n @Output()\n dataAlChange = new EventEmitter<string>();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: DateRangeChanges) {\n\n if ((changes.dataAl && !changes.dataAl.firstChange) || (changes.dataDal && !changes.dataDal.firstChange)) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n @Input()\n get dataDal() {\n return this.dataDalValue;\n }\n\n set dataDal(val) {\n this.dataDalValue = val;\n this.dataDalChange.emit(this.dataDalValue);\n }\n\n @Input()\n get dataAl() {\n return this.dataAlValue;\n }\n\n set dataAl(val) {\n this.dataAlValue = val;\n this.dataAlChange.emit(this.dataAlValue);\n }\n\n checkDescError(): boolean {\n\n return isNotEmptyOrNull(this.descError);\n }\n}\n\ninterface DateRangeChanges extends SimpleChanges{\n\n dataDal: SimpleChange;\n dataAl: SimpleChange;\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-tab-pane',\n templateUrl: './tab-pane.component.html',\n styleUrls: ['./tab-pane.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TabPaneComponent implements OnInit, OnChanges {\n\n @Input()\n id: string;\n\n @Input()\n title: string;\n\n @Input()\n active: boolean;\n\n @Input()\n required: boolean;\n\n @Output()\n selected: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes && changes.active) {\n\n this.selected.emit(changes.active.currentValue);\n }\n }\n}\n","import {AfterViewInit, Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, ViewEncapsulation} from '@angular/core';\nimport {TabPaneComponent} from \"../tab-pane/tab-pane.component\";\n\n@Component({\n selector: 'inail-tab-group',\n templateUrl: './tab-group.component.html',\n styleUrls: ['./tab-group.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TabGroupComponent implements OnInit, AfterViewInit {\n\n @ContentChildren(TabPaneComponent)\n panes: QueryList<TabPaneComponent>;\n\n @Input()\n id: string;\n\n @Output()\n selected: EventEmitter<string> = new EventEmitter<string>();\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n\n if(!this.panes.some((pane: TabPaneComponent) => pane.active)){\n\n setTimeout(() => {\n this.panes.toArray()[0].active = true;\n });\n }\n }\n\n isActive(id: string): boolean {\n\n return this.panes.some((pane: TabPaneComponent) => {\n\n return pane.id == id && pane.active\n });\n }\n\n active(id: string) {\n\n this.selected.emit(id);\n\n this.panes.forEach((pane: TabPaneComponent) => {\n\n pane.active = pane.id == id;\n })\n }\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\n@Component({\n selector: 'inail-content',\n templateUrl: './content.component.html',\n styleUrls: ['./content.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ContentComponent extends BasicUxElementComponent implements OnInit {\n\n @Input()\n hidden: boolean = false;\n\n @Input()\n rendered: boolean = true;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n}\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {Observable} from \"rxjs\";\nimport {ContentComponent} from \"../content/content.component\";\n\n@Component({\n selector: 'inail-wizard',\n templateUrl: './inail-wizard.component.html',\n styleUrls: ['./inail-wizard.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InailWizardComponent extends BasicUxElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n steps: WizardStep[];\n\n @Input()\n showNumber: boolean = true;\n\n @Input()\n showCarattereSeparatore: boolean = true;\n\n @Input()\n carattereSeparatore: string = '>';\n\n @Input()\n fullNavigation: boolean = false;\n\n @Input()\n contentsHidden: boolean = true;\n\n @Input()\n currentStep: number = 0;\n\n @Output()\n select = new EventEmitter<WizardStep>();\n\n @Input()\n switchToFirstError: Observable<any>;\n\n @Input()\n prevButtonTitle: string = 'scorri wizard a destra';\n\n @Input()\n nextButtonTitle: string = 'scorri wizard a sinistra';\n\n @ViewChild(\"prevButton\")\n prevButton: ElementRef<HTMLButtonElement>;\n\n @ViewChild(\"nextButton\")\n nextButton: ElementRef<HTMLButtonElement>;\n\n @ViewChild(\"slickTrack\")\n slickTrack: ElementRef<HTMLElement>\n\n @ViewChildren(\"slickSlide\")\n slickSlide: QueryList<ElementRef<HTMLElement>>\n\n @ContentChildren(ContentComponent)\n contenuti: QueryList<ContentComponent>;\n\n inizializzazioneContenutiCompletata: boolean = false;\n\n firstVisibleStep: number = 0;\n totalTranslate: number = 0;\n\n constructor(private re2: Renderer2) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n\n if (changes.switchToFirstError && changes.switchToFirstError.currentValue) {\n\n changes.switchToFirstError\n .currentValue.subscribe(\n () => {\n\n let firstErrorStep: WizardStep = this.steps.find((step: WizardStep) => step.error);\n\n if (firstErrorStep) {\n this.stepOnClick(firstErrorStep);\n }\n }\n )\n }\n\n if (changes.steps && !changes.steps.isFirstChange()) {\n\n this.inizializzaSteps();\n }\n }\n\n ngOnInit() {\n\n if (this.currentStep == undefined) {\n\n this.currentStep = 0;\n }\n\n this.inizializzaSteps();\n }\n\n ngAfterViewInit(): void {\n\n this.inizializzaContenuti(this.contenuti);\n }\n\n public inizializzaContenuti(contenuti: QueryList<ContentComponent>) {\n\n this.contenuti = contenuti;\n\n if (this.contenuti && this.contenuti.length > 0) {\n\n let step = this.steps.find(step => step.index == this.currentStep);\n this.showContent(step);\n setTimeout(() => this.inizializzazioneContenutiCompletata = true);\n }\n }\n\n private inizializzaSteps() {\n\n if (this.steps) {\n\n this.steps.forEach((step: WizardStep, index) => {\n\n if (step) {\n\n step.index = index\n }\n })\n }\n }\n\n // private inizializzaCourousel() {\n //\n // // console.warn('BBBBBBBBBBBBBBBBB')\n //\n // /* Initialize slick */\n // // @ts-ignore\n // $('.courousel-varible-width').slick({\n // dots: false,\n // infinite: false,\n // arrows: true,\n // speed: 300,\n // slidesToShow: 1,\n // centerMode: false,\n // variableWidth: true,\n // prevArrow: '<button type=\"button\" class=\"slick-prev fa fa-caret-left\"></button>',\n // nextArrow: '<button type=\"button\" class=\"slick-next fa fa-caret-right\"></button>'\n // });\n //\n // setTimeout(() => {\n // // @ts-ignore\n // $('#wizard .slick-slide').removeAttr('tabindex');\n //\n // // @ts-ignore\n // $('#wizard .slick-slide .item > a').removeAttr('tabindex');\n // }, 500)\n //\n // // TODO messo qui non funziona!\n // // setTimeout(() => {\n // // this.stepLinks.forEach((elem: ElementRef) => {\n // //\n // // elem.nativeElement.setAttribute('tabindex', '0');\n // // })\n // // })\n // }\n\n stepOnClick(step: WizardStep) {\n\n if (step.index < this.currentStep || (step.index > this.currentStep && this.fullNavigation)) {\n\n this.currentStep = step.index;\n this.select.emit(step);\n }\n\n if (this.contenuti && this.contenuti.length > 0) {\n\n this.showContent(step);\n }\n }\n\n isActive(stepIndex: number) {\n\n // return (this.fullNavigation && stepIndex != this.currentStep) || stepIndex < this.currentStep;\n return (this.fullNavigation) || stepIndex <= this.currentStep;\n }\n\n getAriaLabelValue(step: WizardStep) {\n\n if (step.index == this.currentStep) {\n\n return 'Step corrente';\n } else if (step.index < this.currentStep) {\n\n return 'Step precedente';\n } else {\n return 'Step successivo';\n }\n }\n\n getStepLabel(step: WizardStep, isLast) {\n\n return step.label\n .concat(step.required ? ' *' : '')\n .concat(this.showCarattereSeparatore ? ' ' : '')\n .concat(!isLast && this.showCarattereSeparatore ? this.carattereSeparatore : '');\n }\n\n showContent(step: WizardStep) {\n\n if (step) {\n\n let same: boolean = false;\n\n this.contenuti.forEach((item: ContentComponent, index: number) => setTimeout(() => {\n\n same = step.code ? item.id == step.code : index == step.index;\n\n if (this.contentsHidden) {\n\n item.hidden = !same;\n } else {\n\n item.rendered = same;\n }\n }));\n }\n }\n\n prevButtonOnClick() {\n\n\n this.translate(120);\n\n // if (this.firstVisibleStep > 0) {\n //\n // let width: number = this.slickSlide.toArray()[this.firstVisibleStep - 1].nativeElement.clientWidth;\n // this.translate(width);\n // this.firstVisibleStep--;\n // }\n }\n\n nextButtonOnClick() {\n\n this.translate(-120);\n\n // if (this.firstVisibleStep < (this.slickSlide.length - 1)) {\n //\n // let width: number = this.slickSlide.toArray()[this.firstVisibleStep].nativeElement.clientWidth;\n // this.translate(-width);\n // this.firstVisibleStep++;\n // }\n }\n\n translate = (px: number) => {\n\n this.totalTranslate += px;\n this.re2.setStyle(this.slickTrack.nativeElement, 'transform', `translate(${this.totalTranslate}px)`);\n };\n\n onFocus(step) {\n // console.warn(step)\n }\n}\n\nexport class WizardStep {\n\n label: string;\n code?: string;\n index?: number;\n title?: string;\n required?: boolean;\n error?: boolean;\n}\n","import {AfterViewChecked, AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\n// import '@ckeditor/ckeditor5-build-decoupled-document/build/translations/it';\n\nconst defaultConfig = {\n editable: true,\n spellcheck: false,\n toolbarHiddenButtons: [\n [\n 'strikethrough',\n 'subscript',\n 'superscript'\n ],\n [\n 'customClasses',\n 'link',\n 'unlink',\n 'insertImage',\n 'insertVideo',\n 'insertHorizontalRule',\n 'removeFormat',\n 'toggleEditorMode'\n ]\n ]\n}\n\n@Component({\n selector: 'inail-text-editor-old',\n templateUrl: './text-editor.component.html',\n styleUrls: ['./text-editor.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TextEditorComponent extends FormElementComponent implements OnInit, AfterViewInit, OnDestroy, AfterViewChecked {\n\n textValue: string;\n\n @Output()\n textChange = new EventEmitter();\n\n @Output()\n ready = new EventEmitter();\n\n // @Input()\n // config = {language: 'it'};\n\n @Input()\n config = {...defaultConfig};\n\n viewInit: boolean = false;\n editor;\n\n status: 'IN_CREATION' | 'READY' | 'NOT_CREATED' = \"NOT_CREATED\";\n\n constructor() {\n super()\n // viene fatta la concatenazione della lettera\n // xke document.querySelector va in errore se l'id inizia per un numero!!\n this.id = 'a' + this.id;\n }\n\n ngOnChanges(changes: TextAreaChanges): void {\n\n if (changes.text && !changes.text.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n\n if (this.viewInit && changes.disabled) {\n\n if (changes.disabled.currentValue === false || changes.disabled.currentValue == undefined) {\n\n // this.createEditor();\n\n } else if (changes.disabled.currentValue === true) {\n\n // this.destoryEditor();\n }\n }\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.label)) {\n\n this.label = 'Testo';\n this.hiddenLabel = true;\n }\n }\n\n @Input()\n get text() {\n\n return this.textValue\n }\n\n set text(val) {\n\n if (this.editor && val != undefined && val != this.textValue) {\n\n this.editor.setData(val);\n }\n\n this.textValue = val;\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n ngAfterViewInit(): void {\n\n // @ts-ignore\n $('style:contains(\"::ng-deep\")').each((index, element) => {\n element.innerHTML = element.innerHTML.replace(/::ng-deep/g, '');\n });\n\n if (!(this.disabled === true)) {\n\n // this.createEditor();\n }\n\n this.viewInit = true;\n\n // TODO: deve essere fatto al caricamento dello script ckeditor.js\n // fixCKEditorStyleSheet();\n }\n\n ngAfterViewChecked(): void {\n\n // Questa cosa viene fatta per permette all'editor\n // di renderizzarsi se inizialmente contenuto in un\n // elemento nascosto da un *ngIf = false\n\n // NOTA: ne il costruttore ne il metodo ngOnInit\n // vengono invovati quando il componente e'\n // contenuto in un elemento che utilizza *ngIf\n // nel momento in cui il suo valore commuta da false a true.\n // Questo sembrerebbe essere proprio un\n // comportamento di Angular\n\n let editorElement = document.getElementById(this.id);\n\n // console.info('ngAfterViewChecked:---------------------------')\n // console.info('status', this.status)\n // console.info('editor', this.editor)\n // console.info('editorElement', editorElement)\n\n if (editorElement) {\n\n this.createEditor();\n }\n }\n\n createEditor() {\n\n let editorElement = document.getElementById(this.id);\n\n // Innesco la creazione dell'editor solamente se\n // l'oggetto non e' stato gia creato\n // ed e' presente nel DOM l'elemento\n // in cui creare l'editor\n if (!this.editor && editorElement && this.isNotCreated()) {\n\n this.status = \"IN_CREATION\";\n\n setTimeout(() => {\n\n // @ts-ignore\n DecoupledEditor\n .create(document.querySelector('#' + this.id), this.config)\n .then(editor => {\n\n this.status = \"READY\";\n\n this.emitDebug('Text editor creato:')\n this.emitDebug(editor)\n\n this.editor = editor;\n\n // Creazione della toolbar\n document.querySelector('#' + this.id + '-toolbar-container').appendChild(editor.ui.view.toolbar.element);\n\n this.onReady(editor);\n\n editor.model.document.on('change:data', () => {\n this.textValue = editor.getData();\n this.textChange.emit(this.textValue);\n });\n\n fixCKEditorW3CErrors();\n })\n .catch(error => {\n this.status = \"NOT_CREATED\";\n this.emitError(\"Errore inizializzazione CKEditor\");\n this.emitError(error);\n });\n });\n }\n }\n\n onReady(editor) {\n\n // Rende accessibli da tastiera i pulsanti\n // della toolbar del CKEditor\n // @ts-ignore\n $('.ck-toolbar__items button').attr(\"tabindex\", \"0\");\n this.ready.emit(editor);\n }\n\n ngOnDestroy(): void {\n this.destoryEditor();\n this.status = \"NOT_CREATED\";\n }\n\n destoryEditor() {\n\n if (this.editor != undefined) {\n\n this.editor.destroy();\n }\n }\n\n isReady() {\n\n return this.status === 'READY';\n }\n\n isInCreation() {\n\n return this.status === 'IN_CREATION';\n }\n\n isNotCreated() {\n\n return this.status === 'NOT_CREATED';\n }\n}\n\nexport const fixCKEditorW3CErrors = () => {\n\n // @ts-ignore\n let ckBalloons: any[] = $('.ck.ck-balloon-rotator');\n\n if (ckBalloons) {\n\n // @ts-ignore\n ckBalloons.each((index => {\n\n // @ts-ignore\n $(ckBalloons[index]).attr('data-z-index', '-1');\n\n // @ts-ignore\n $(ckBalloons[index]).removeAttr('z-index');\n }));\n }\n}\n\n/**\n * Modifica il contenuto dei fogli di stile iniettati nella pagina\n * dal componente CKEditor in modo da passare la validazione W3C\n */\nexport const fixCKEditorStyleSheet = () => {\n\n // @ts-ignore\n let ckStyleSheets: any[] = $('style[data-cke]');\n\n if (ckStyleSheets) {\n\n // @ts-ignore\n ckStyleSheets.each(index => {\n\n if (ckStyleSheets[index]) {\n ckStyleSheets[index].innerText = ckStyleSheets[index].innerText\n .replace(/min\\(10%,30px\\)/g, '30px')\n .replace(/var\\(--ck-font-size-base\\)/g, '13px')\n .replace(/var\\(--ck-line-height-base\\)/g, '1.84615')\n .replace(/var\\(--ck-font-face\\)/g, 'Helvetica,Arial,Tahoma,Verdana,Sans-Serif')\n .replace(/var\\(--ck-color-focus-border-coordinates\\)/g, '208,79%,51%')\n .replace(/var\\(--ck-switch-button-toggle-width\\)/g, '2.6153846154em')\n .replace(/var\\(--ck-switch-button-toggle-inner-size\\)/g, '1.0769230769em')\n .replace(/var\\(--ck-switch-button-toggle-spacing\\)/g, '1px')\n .replace(/var\\(--ck-spacing-unit\\)/g, '0.6em')\n .replace(/var\\(--ck-spacing-large\\)/g, 'calc(0.6em*1.5)')\n .replace(/var\\(--ck-border-radius\\)/g, '2px')\n .replace(/var\\(--ck-switch-button-translation\\)/g, '1px')\n .replace(/var\\(--ck-widget-outline-thickness\\)/g, '3px')\n .replace(/::ng-deep/g, '');\n }\n })\n }\n}\n\ninterface TextAreaChanges extends SimpleChanges {\n\n text: SimpleChange;\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\n@Component({\n selector: 'inail-form-grey',\n templateUrl: './form-grey.component.html',\n styleUrls: ['./form-grey.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormGreyComponent extends BasicUxElementComponent implements OnInit {\n\n @Input()\n titolo: string;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {AfterViewInit, Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {InailWizardComponent, WizardStep} from \"../inail-wizard/inail-wizard.component\";\nimport {Observable} from \"rxjs\";\nimport {ContentComponent} from \"../content/content.component\";\n\n@Component({\n selector: 'inail-selector',\n templateUrl: './selector.component.html',\n styleUrls: ['./selector.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SelectorComponent extends BasicUxElementComponent implements OnInit, AfterViewInit {\n\n @Input()\n steps: WizardStep[];\n\n @Input()\n currentStep: number;\n\n @Input()\n contentsHidden: boolean = true;\n\n @Output()\n select = new EventEmitter<WizardStep>();\n\n @Input()\n switchToFirstError: Observable<any>;\n\n @Input()\n prevButtonTitle: string = 'scorri selettore a destra';\n\n @Input()\n nextButtonTitle: string = 'scorri selettore a sinistra';\n\n @ContentChildren(ContentComponent)\n contenuti: QueryList<ContentComponent>;\n\n @ViewChild(InailWizardComponent)\n wizard: InailWizardComponent;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n stepOnClick(step: WizardStep) {\n\n this.select.emit(step);\n }\n\n ngAfterViewInit(): void {\n\n if(this.wizard) {\n\n this.wizard.inizializzaContenuti(this.contenuti);\n }\n }\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {Observable} from \"rxjs\";\nimport {abilitaScrollPagina} from \"../../../../utils/Util\";\n\nconst KEYCODE_TAB = 9;\n\n@Component({\n selector: 'inail-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ModalComponent extends BasicUxElementComponent implements OnInit, OnChanges {\n\n @Input()\n titolo: string;\n @Output()\n close: EventEmitter<void> = new EventEmitter();\n @Input()\n show: Observable<boolean>;\n @Input()\n width: 'M' | 'L' | 'XL';\n\n pageActiveElement: any;\n previusFocusableElements: any;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes.show) {\n\n changes.show.currentValue.subscribe((show: boolean) => {\n\n if (show == undefined) {\n\n show = true;\n }\n\n if (show === true) {\n\n this.pageActiveElement = document.activeElement;\n\n // @ts-ignore\n let focusbleElemets = $('body').find(':focusable');\n let i = focusbleElemets.index(this.pageActiveElement)\n this.previusFocusableElements = focusbleElemets.filter((index) => index < focusbleElemets.index(this.pageActiveElement));\n\n // console.warn('this.pageActiveElement', this.pageActiveElement)\n // console.warn('this.previusFocusableElement', this.previusFocusableElements)\n }\n\n this.showModal(show);\n })\n }\n }\n\n showModal(show: boolean) {\n\n // @ts-ignore\n jQuery(\"#\" + this.id).modal(show ? 'show' : 'hide');\n\n if (show) {\n\n setTimeout(() => {\n this.trapFocus()\n }, 500);\n\n abilitaScrollPagina(false);\n } else {\n this.close.emit();\n abilitaScrollPagina(true);\n setTimeout(() => this.setFocusOnLastPageActiveElement(), 500);\n }\n }\n\n trapFocus() {\n\n // @ts-ignore\n let thisModal = jQuery(\"#\" + this.id);\n\n let focusableEls = thisModal.find(\".modal-content\").find(':focusable');\n let firstFocusableEl = focusableEls[0];\n let lastFocusableEl = focusableEls[focusableEls.length - 1];\n\n firstFocusableEl.focus();\n\n // @ts-ignore\n thisModal[0].addEventListener('keydown', (e) => {\n if (e.key === 'Tab' || e.keyCode === KEYCODE_TAB) {\n\n if (e.shiftKey) /* shift + tab */ {\n if (document.activeElement === firstFocusableEl) {\n lastFocusableEl.focus();\n e.preventDefault();\n }\n } else /* tab */ {\n if (document.activeElement === lastFocusableEl) {\n firstFocusableEl.focus();\n e.preventDefault();\n }\n }\n }\n });\n }\n\n ngOnInit() {\n\n if (this.width == undefined) {\n\n this.width = 'L';\n }\n }\n\n closeOnClick() {\n\n this.showModal(false);\n }\n\n setFocusOnLastPageActiveElement = () => {\n\n if (this.pageActiveElement != undefined) {\n\n // @ts-ignore\n if ($(this.pageActiveElement).length > 0) {\n\n this.pageActiveElement.focus()\n } else {\n\n this.setFocusOnPreviusFocusableElement(this.previusFocusableElements.length - 1)\n }\n\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // @ts-ignore\n // if ($(this.pageActiveElement).length > 0) {\n //\n // this.pageActiveElement.focus()\n // } else {\n //\n // this.setFocusOnPreviusFocusableElement(this.previusFocusableElements.length - 1)\n // }\n //\n // clearInterval(checkLoading);\n // }\n // }, 50);\n }\n }\n\n setFocusOnPreviusFocusableElement(index: number) {\n\n if (index >= 0) {\n\n // @ts-ignore\n if ($(this.previusFocusableElements[index]).length > 0) {\n\n this.previusFocusableElements[index].focus();\n\n } else {\n\n this.setFocusOnPreviusFocusableElement(index - 1);\n }\n }\n }\n}\n\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {Observable} from \"rxjs\";\nimport {abilitaScrollPagina, isEmptyOrNull} from \"../../../../utils/Util\";\n\nconst KEYCODE_TAB = 9;\n\n@Component({\n selector: 'inail-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AlertComponent extends BasicUxElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n titolo: string;\n @Input()\n testo: string;\n @Input()\n show: EventEmitter<any>;\n // show: Observable<boolean>;\n @Output()\n close: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('modalContent')\n modalContent: ElementRef;\n visualizzaContent: boolean = true;\n\n // pageActiveElement: any;\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // if (changes.show) {\n //\n // changes.show.currentValue.subscribe((show: boolean) => {\n //\n // if (show == undefined) {\n //\n // show = true;\n // }\n //\n // if (show === true) {\n //\n // this.pageActiveElement = document.activeElement;\n // // console.info('pageActiveElement', this.pageActiveElement)\n // }\n //\n // // @ts-ignore\n // jQuery(\"#\" + this.id).modal(show ? 'show' : 'hide');\n //\n // if (show) {\n //\n // setTimeout(() => {\n // this.trapFocus()\n // }, 500);\n //\n // abilitaScrollPagina(false);\n // }\n // else {\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n // }\n // })\n // }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.titolo)) {\n\n this.titolo = 'Messaggio informativo';\n }\n\n if(this.show == undefined) {\n\n this.show = new EventEmitter<any>();\n }\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {\n this.visualizzaContent = this.modalContent.nativeElement.firstChild.childNodes.length > 0;\n });\n }\n\n // trapFocus() {\n //\n // // @ts-ignore\n // let thisModal = jQuery(\"#\" + this.id);\n //\n // let focusableEls = thisModal.find(\".modal-content\").find(':focusable');\n // let firstFocusableEl = focusableEls[0];\n // let lastFocusableEl = focusableEls[focusableEls.length - 1];\n //\n // firstFocusableEl.focus();\n //\n // // @ts-ignore\n // thisModal[0].addEventListener('keydown', (e) => {\n // if (e.key === 'Tab' || e.keyCode === KEYCODE_TAB) {\n //\n // if (e.shiftKey) /* shift + tab */ {\n // if (document.activeElement === firstFocusableEl) {\n // lastFocusableEl.focus();\n // e.preventDefault();\n // }\n // } else /* tab */ {\n // if (document.activeElement === lastFocusableEl) {\n // firstFocusableEl.focus();\n // e.preventDefault();\n // }\n // }\n // }\n // });\n // }\n\n // xOnClick() {\n // this.close.emit();\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n // }\n\n // closeAlert() {\n // // document.getElementById(this.id + '_close_button').click();\n // // @ts-ignore\n // jQuery(\"#\" + this.id).modal('hide');\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n // }\n\n okOnClick() {\n // this.closeAlert();\n // this.close.emit();\n\n this.show.emit(false);\n }\n\n // setFocusOnLastPageActiveElement = () => {\n //\n // if (this.pageActiveElement != undefined) {\n //\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // console.info('loader-overlay = 0') // todo togliere\n // this.pageActiveElement.focus()\n // clearInterval(checkLoading);\n // }\n // }, 50);\n // }\n // }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isNotEmptyOrNull} from \"../../../../utils/Util\";\n\n@Component({\n selector: 'inail-input-number',\n templateUrl: './input-number.component.html',\n styleUrls: ['./input-number.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputNumberComponent extends FormElementComponent implements OnInit, OnChanges {\n\n @Input()\n max: number;\n @Input()\n min: number;\n @Input()\n step: number;\n @Input()\n defaultValue: number;\n valueValue: number;\n previousValue: number;\n\n @Input()\n numberOfDecimals: number;\n\n @Output()\n valueChange = new EventEmitter<number>();\n\n @ViewChild(\"inputElement\")\n inputElement: ElementRef<HTMLInputElement>;\n\n ngOnChanges(changes: InputTextChanges): void {\n\n if (changes.value) {\n\n // console.info(changes.value.currentValue)\n\n this.previousValue = changes.value.previousValue;\n\n this.normalizzaValore();\n\n if (!changes.value.firstChange && this.cleanErrorOnChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n\n if(this.showPopover()) {\n\n // @ts-ignore\n $(`#${this.id}-popover`).popover();\n }\n }\n\n private normalizzaValore() {\n\n setTimeout(() => {\n\n if (!this.disabled) {\n\n if (this.min != undefined && this.valueValue < this.min) {\n\n this.value = this.previousValue != undefined ? this.previousValue : this.min;\n\n } else if (this.max != undefined && this.valueValue > this.max) {\n\n this.value = this.previousValue != undefined ? this.previousValue : this.max;\n }\n }\n })\n }\n\n @Input()\n get value() {\n\n return this.valueValue;\n }\n\n set value(val) {\n\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n onKeyUp() {\n\n // console.info('onKeyUp', )\n\n if(this.valueValue != undefined && !this.checkDecimal()) {\n\n // console.info('BAD')\n this.valueValue = this.previousValue;\n this.valueChange.emit(this.valueValue);\n }\n\n // Serve per fare in modo che non rimanga visualizzato\n // qualcosa di diverso da un numero.\n // Nativamente l'elemento html restituisce undefined\n // se si prova a scrivere qualcosa diverso da un numero\n // ma mantiene il valore non numerico visualizzato nell'input\n if(this.valueValue == undefined) {\n\n this.inputElement.nativeElement.value = undefined;\n }\n }\n\n checkDecimal() {\n\n // console.info('checkDecimal', this.valueValue)\n\n if (this.numberOfDecimals != undefined) {\n\n let a = (String(this.valueValue)).split('.');\n\n // console.info('a', a, a.length < 2, a[1].length)\n\n return (this.numberOfDecimals > 0 && (a.length == 1 || a[1].length <= this.numberOfDecimals)) || (this.numberOfDecimals == 0 && a.length == 1);\n }\n\n return true;\n }\n}\n\ninterface InputTextChanges extends SimpleChanges {\n\n value: SimpleChange;\n}\n","import {AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, QueryList, SimpleChanges, ViewChildren, ViewEncapsulation} from '@angular/core';\nimport {NavigationEnd, Router} from \"@angular/router\";\nimport {BaseComponent} from \"../../base/base.component\";\nimport {Observable} from \"rxjs\";\nimport {isFunction} from 'rxjs/internal-compatibility';\nimport {v4 as uuid} from 'uuid';\nimport {filter} from \"rxjs/operators\";\nimport {call} from \"../../../../utils/Util\";\n\nexport declare type CheckFn = () => boolean;\nexport declare type GetStringFn = () => string;\n\nconst FOCUSABLE_ITEMS_SELECTOR = 'ul.inail-menu-style-encapsulation > li > a:not([tabindex=\"-1\"])';\n\n// declare var $: any;\n\n@Component({\n selector: 'inail-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MenuComponent extends BaseComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n id: string;\n\n /**\n * id dell'elemento che si vuole attivare.\n * Se specificato fa diventare bold la voce di menu associata\n */\n @Input()\n activeElement: string;\n\n /**\n * Reimposta gli elementi del menu con quelli specificato in input.\n * Se non vengono specificati nuovi elementi ricarica quelli attuali.\n */\n @Input()\n reload: Observable<MenuElement[]>;\n\n /**\n * Emette l'elemento del menu\n * che corrisponde all'url corrente.\n */\n @Input()\n emitCurrent: Observable<any>;\n\n /**\n * Collassa il menu\n */\n @Input()\n collapse: Observable<string>;\n\n /**\n * Espande le voci di menu del livello principale.\n * Se specificato un id espande il ramo del menu\n * che porta all'elemento con l'id specificato.\n */\n @Input()\n show: Observable<string>;\n\n /**\n * Effettua il toggle sulle voci di menu del livello principale.\n * Se specificato un id effettua il toggle\n * dell'elemento con l'id specificato.\n */\n @Input()\n toggle: Observable<string>;\n\n /**\n * Espande tutte le voci del menu\n * comprese quelle dei livelli annidati\n */\n @Input()\n showAll: Observable<any>;\n\n /**\n * Effettua il toggle di tutte le voci di menu\n * comprese quelle dei livelli annidati\n */\n @Input()\n toggleAll: Observable<any>;\n\n /**\n * Elementi del menu\n */\n @Input()\n elements: MenuElement[];\n\n /**\n * Elemento parent del menu.\n * ( Questo input non dovrebbe essere dato se non per motivi particolari )\n */\n @Input()\n parent: MenuElement;\n\n /**\n * Se true disabilita il meccanismo che imposta in maniera automatica\n * i parent degli elementi\n */\n @Input()\n disabilitaImpostazioneParents: boolean;\n\n /**\n * Se true disabilita la sovrascrittura della proprieta\n * link negli elementi del menu\n * quando la proprieta linkRegex matcha\n * con l'url corrente\n */\n disabilitaOverrideLink: boolean;\n\n /**\n * Se true abilita l'effetto fisarmonica\n * sulle voci di menu espandibili.\n * Questa impostazione viene sovrascritta se specificato diversamente\n * negli elementi del menu\n */\n @Input()\n collapsOtherEffetc: boolean;\n\n /**\n * Se true indica che le voci del menu sono collassabili.\n * Questa impostazione viene sovrascritta se specificato diversamente\n * negli elementi del menu\n */\n @Input()\n collapsible: boolean;\n\n /**\n * Indica lo stato iniziale del menu, se colassato o espanso.\n * Questa impostazione viene sovrascritta se specificato diversamente\n * negli elementi del menu\n */\n @Input()\n collapsed: boolean;\n\n /**\n * Se true espande automaticamente il percorso\n * verso un elemento\n * quando questo si riferisce all'url corrente\n */\n @Input()\n espandiPercorsoAutomaticamente: boolean = true;\n\n @Input()\n menuClass: string;\n\n /**\n * Emette la voce di menu selezionata.\n */\n @Output()\n select: EventEmitter<MenuElement> = new EventEmitter<MenuElement>();\n\n /**\n * Emette la voce di menu che corrisponde\n * con l'url corrente\n * dopo un evento di routing\n */\n @Output()\n currentElement: EventEmitter<MenuElement> = new EventEmitter<MenuElement>();\n\n // @ContentChildren(MenuComponent)\n // sottoMenu: QueryList<MenuComponent>;\n\n @ViewChildren(MenuComponent)\n sottoMenu: QueryList<MenuComponent>;\n\n innerMenu: boolean = false;\n inizializzazioneCompletata: boolean = false;\n mostraElemento: EventEmitter<string> = new EventEmitter<string>();\n\n getPropertyValue = (property: string | GetStringFn) => isFunction(property) ? (property as GetStringFn)() : property;\n\n getItemTitle = (item: MenuElement): string => this.getPropertyValue(item.title);\n getItemAriaLabel = (item: MenuElement): string => this.getPropertyValue(item.ariaLabel);\n\n constructor(public router: Router, private cdr: ChangeDetectorRef) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n this.emitDebug('MenuComponent changes:')\n this.emitDebug(changes)\n\n if (changes.elements && changes.elements.currentValue) {\n\n this.setParents(changes.elements.currentValue, this.parent);\n this.impostaUrlEffettivi();\n this.emitCurrentElement();\n }\n\n if (changes.reload && changes.reload.currentValue) {\n\n changes.reload.currentValue.subscribe((elements: MenuElement[]) => {\n\n this.elements = [].concat(elements || this.elements);\n this.setParents(this.elements, this.parent);\n this.impostaUrlEffettivi();\n this.emitCurrentElement();\n })\n }\n\n if (changes.emitCurrent && changes.emitCurrent.currentValue) {\n\n changes.emitCurrent.currentValue.subscribe(() => {\n\n // console.warn('Emit current!!!!')\n // console.warn('this.router.url', this.router.url)\n // console.warn('this.elements', this.elements)\n // console.warn('this.elements.link', this.elements.map(value => this.getElementLink(value)))\n // console.warn('this.elements.linkRegex', this.elements.map(value => this.getElementLinkRegex(value)))\n\n this.emitCurrentElement()\n })\n }\n\n\n if (changes.collapse && changes.collapse.currentValue) {\n\n changes.collapse.currentValue.subscribe((id: string) => {\n\n id == undefined ? this.collassaLivello() : this.collassaElemento(id);\n })\n }\n\n if (changes.show && changes.show.currentValue) {\n\n changes.show.currentValue.subscribe((id: string) => {\n\n id == undefined ? this.espandiLivello() : this.espandiPercorso(id);\n })\n }\n\n if (changes.toggle && changes.toggle.currentValue) {\n\n changes.toggle.currentValue.subscribe((id: string) => {\n\n id == undefined ? this.toggleLivello() : this.toggleElemento(id);\n })\n }\n\n if (changes.showAll && changes.showAll.currentValue) {\n\n changes.showAll.currentValue.subscribe(() => this.espandiTutti());\n }\n\n if (changes.toggleAll && changes.toggleAll.currentValue) {\n\n changes.toggleAll.currentValue.subscribe(() => this.toggleTutti());\n }\n }\n\n ngOnInit() {\n\n // Impostazioni di default\n\n if (this.disabilitaImpostazioneParents == undefined) {\n\n this.disabilitaImpostazioneParents = false;\n }\n\n if (this.disabilitaOverrideLink == undefined) {\n\n this.disabilitaOverrideLink = false;\n }\n\n if (this.collapsible == undefined) {\n\n this.collapsible = false;\n }\n\n if (this.collapsible === false) {\n\n this.collapsed = false;\n }\n\n if (this.collapsed == undefined) {\n\n this.collapsed = this.collapsible === true;\n }\n\n if (this.collapsOtherEffetc == undefined) {\n\n this.collapsOtherEffetc = false;\n }\n\n if (this.elements != undefined && this.elements.length > 0) {\n\n // Impostazioni di default per gli elementi\n this.elements.forEach((elem: MenuElement) => {\n\n if (elem.id == undefined) {\n\n elem.id = uuid();\n }\n\n // if(elem.autoShow == undefined) {\n //\n // elem.autoShow = false;\n // }\n\n if (elem.show == undefined) {\n\n // elem.show = elem.autoShow !== true;\n elem.show = true;\n }\n\n if (elem.collapsible == undefined) {\n\n elem.collapsible = this.collapsible;\n }\n\n if (elem.collapsible === false) {\n\n elem.collapsed = false;\n }\n\n if (elem.collapsed == undefined) {\n\n elem.collapsed = elem.collapsible === true;\n }\n\n if (elem.collapseOther == undefined) {\n\n elem.collapseOther = this.collapsOtherEffetc;\n }\n })\n }\n\n this.inizializzazioneCompletata = true;\n\n this.impostaUrlEffettivi();\n this.emitCurrentElement();\n\n // Ricerca ed emissione della voce di menu\n // corrispondente all'elemento corrente.\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(() => {\n // console.warn(`[${this.id}] NavigationEnd`)\n this.impostaUrlEffettivi();\n this.emitCurrentElement();\n });\n }\n\n ngAfterViewInit(): void {\n\n this.sottoMenu.forEach((inner: MenuComponent) => inner.innerMenu = true);\n // this.removeAriaExpanded(this.id, 500);\n }\n\n /**\n * Serve per rimuovere l'attributo aria-expanded dagli elementi ul\n * perche da specifiche W3C dovrebbe trovarsi solo sull'elemento a\n *\n * @param id\n * @param ms\n */\n removeAriaExpanded(id: string, ms?: number) {\n\n let elem = document.getElementById(id)\n\n if (elem) {\n setTimeout(() => {\n elem.removeAttribute('aria-expanded');\n }, ms || 50);\n }\n }\n\n /**\n * Sovrascrive la proprieta link degli elementi del menu\n * se la proprieta linkRegex matcha con l'url corrente.\n */\n impostaUrlEffettivi() {\n\n if (this.elements && this.elements.length > 0) {\n\n this.elements.forEach(this.impostaUrlEffettivo);\n }\n }\n\n /**\n * Sovrascrive la proprieta link dell'elemento del menu\n * se la proprieta linkRegex matcha con l'url corrente.\n */\n impostaUrlEffettivo = (element: MenuElement) => {\n\n if (!this.disabilitaOverrideLink && element && this.isCurrentUrl(this.getElementLinkRegex(element))) {\n\n element.link = this.router.url;\n }\n }\n\n /**\n * Emette l'elemento\n * associato all'url corrente\n */\n emitCurrentElement() {\n\n // console.warn(`[${this.id}] emitCurrentElement`)\n\n let element: MenuElement = this.findCurrentElement(this.elements);\n\n // console.warn(`[${this.id}] elemento trovato`, element)\n\n if (element != undefined) {\n\n this.impostaUrlEffettivo(element);\n\n this.emitDebug(\"Emissione elemento menu url corrente:\");\n this.emitDebug(element);\n // console.warn('Elemento emesso: ', element)\n this.currentElement.emit(element);\n\n if (this.isEffettoFisarmonicaAbilitato(element)) {\n\n this.collapseOther(element);\n }\n }\n }\n\n /**\n * Ricerca l'elemento di menu inerente\n * l'url corrente\n *\n * @param elements\n */\n private findCurrentElement(elements: MenuElement[]): MenuElement {\n\n let element: MenuElement = undefined;\n\n if (elements != undefined && elements.length > 0) {\n\n elements.forEach((elem: MenuElement) => {\n\n if (element == undefined && elem != undefined && this.isCurrentPageElement(elem)) {\n\n element = elem;\n }\n })\n }\n\n return element;\n }\n\n /**\n *\n * @param id\n * @param elements\n */\n findElement(id: string, elements: MenuElement[]) {\n\n let element: MenuElement = undefined;\n\n if (elements != undefined && elements.length > 0) {\n\n elements.forEach((elem: MenuElement) => {\n\n if (element == undefined && elem != undefined) {\n\n element = elem.id == id ? elem : this.findElement(id, elem.subElements);\n }\n })\n }\n\n return element;\n }\n\n isCollapsed(element: MenuElement) {\n\n return element && element.collapsed === true;\n }\n\n /**\n *\n * @param element\n */\n isActive(element: MenuElement) {\n\n return this.activeElement\n ? (element.id == this.activeElement)\n : this.isCurrentPageElement(element);\n }\n\n /**\n * Verifica che l'elemento in input\n * sia associato all'url corrente\n *\n * @param element\n */\n isCurrentPageElement = (element: MenuElement): boolean => {\n\n if (element.debug === true) {\n // console.warn('isCurrentPageElement', element);\n // console.warn('getElementLinkRegex', this.getElementLinkRegex(element));\n // console.warn('isCurrentUrl', this.isCurrentUrl(this.getElementLinkRegex(element)));\n\n let result = this.isCurrentUrl(this.getElementLink(element))\n || this.isCurrentUrl(this.getElementLinkRegex(element))\n || (element.activeLinks != undefined\n && element.activeLinks.some(this.isCurrentUrl));\n\n // console.warn('result', result);\n }\n\n return this.isCurrentUrl(this.getElementLink(element))\n || this.isCurrentUrl(this.getElementLinkRegex(element))\n || (element.activeLinks != undefined\n && element.activeLinks.some(this.isCurrentUrl))\n }\n\n getElementLink(element: MenuElement): string {\n\n return isFunction(element.link) ? (element.link as GetStringFn)() : element.link\n }\n\n getElementLinkRegex(element: MenuElement): string {\n\n return isFunction(element.linkRegex) ? (element.linkRegex as GetStringFn)() : element.linkRegex;\n }\n\n getElementLabel(element: MenuElement): string {\n\n return isFunction(element.label) ? (element.label as GetStringFn)() : element.label\n }\n\n /**\n * Verifica che l'url dato in input\n * sia quello corrente\n *\n * @param url\n */\n isCurrentUrl = (url: string): boolean => {\n\n // console.warn('isCurrentUrl', url)\n // console.warn('url corrente', this.router.url)\n\n return url != undefined\n && this.router.url\n .split('?')[0]\n .match(new RegExp('^'.concat(url).concat('$'), 'i')) != null;\n // .match(new RegExp(url, 'i')) != null;\n };\n\n /**\n * Restituisce true se l'elemento\n * deve essere visualizzato\n *\n * @param element\n */\n showElement = (element: MenuElement): boolean => {\n\n return element.show === true\n || element.show == undefined\n || (isFunction(element.show) && (element.show as CheckFn)() === true)\n || this.isAutoShowElement(element);\n }\n\n /**\n * Restituisce true se l'elemento\n * deve essere visualizzato in automatico\n * quando corrisponde all'url corrente\n * o se uno dei suoi nodi figli\n * e' un elemento che deve essere visualizzato in automatico.\n *\n * @param element\n */\n isAutoShowElement = (element: MenuElement): boolean => {\n\n return element.show === AUTO_SHOW\n && (this.isCurrentPageElement(element)\n || (element.subElements && element.subElements.some(this.isAutoShowElement)));\n }\n\n hasSubElements(element: MenuElement): boolean {\n\n return element && element.subElements && element.subElements.length > 0\n }\n\n /**\n * Collassa gli elementi del livello corrente\n */\n public collassaLivello() {\n\n this.doCollapse(\"hide\");\n }\n\n public collassaElemento(id: string) {\n\n this.doCollapseElement(id, \"hide\");\n }\n\n public espandiLivello() {\n\n this.doCollapse(\"show\");\n }\n\n public espandiElemento(id: string) {\n\n // console.warn(`[${this.id}] espandiElemento`, id)\n\n this.doCollapseElement(id, \"show\");\n }\n\n /**\n *\n * @param id\n */\n public espandiPercorso(id: string) {\n\n // console.warn(`[${this.id}] espandiPercorso`, this.id, id)\n\n if (this.elements) {\n\n this.elements.forEach((elem: MenuElement) => {\n\n // console.warn(`[${this.id}] Elemento menu`, this.id, elem)\n\n let innerElem: MenuElement = this.findElement(id, elem.subElements);\n\n // console.warn(`[${this.id}] innerElem`, this.id, innerElem)\n\n if ((elem && elem.id == id) || innerElem != undefined) {\n\n this.espandiElemento(elem.id);\n\n if (innerElem) {\n\n this.mostraElemento.emit(id);\n }\n }\n })\n }\n }\n\n // TODO: Non toggla solo il livello ma toggla tutto!\n public toggleLivello() {\n\n this.doCollapse(\"toggle\");\n }\n\n public toggleElemento(id: string) {\n\n // // @ts-ignore\n // let ariaExpandedValue = $('#' + id).attr('aria-expanded') == 'true'\n //\n // if (ariaExpandedValue != undefined) {\n //\n // // Questo lo faccio per modificare il valore dell'attributo aria-expanded\n // // prima che Jaws catturi l'elemento\n // // in modo da evitare che, alla commutazione dello stato aperto/chiuso,\n // // Jaws legga l'opposto di quello che dovrebbe leggere.\n // // @ts-ignore\n // $('#' + id).attr('aria-expanded', (ariaExpandedValue == 'true' ? 'false' : 'true'));\n // }\n\n this.doCollapseElement(id, \"toggle\");\n }\n\n /**\n * Collassa tutti gli elementi, anche quelli dei livelli sottostanti\n */\n public collassaTutti() {\n\n this.doCollapseAll(\"hide\")\n }\n\n public espandiTutti() {\n\n this.doCollapseAll(\"show\")\n }\n\n public toggleTutti() {\n\n this.doCollapseAll(\"toggle\")\n }\n\n public doCollapse(mode: string) {\n\n // @ts-ignore\n // jQuery(`#${this.id} > li > inail-menu > ul.collapse`).collapse(mode);\n\n // @ts-ignore\n let e = $(`#${this.id} > li > inail-menu > ul.collapse`);\n call(e, 'collapse', mode)\n }\n\n public doCollapseElement(id: string, mode: string) {\n\n // @ts-ignore\n // jQuery(`#${this.id} > li > a#${id}`).next().find('>ul.collapse').collapse(mode);\n\n // @ts-ignore\n let e = $(`#${this.id} > li > a#${id}`);\n call(e, 'next').call('find', '>ul.collapse').call('collapse', mode);\n }\n\n public doCollapseAll(mode: string) {\n\n // @ts-ignore\n // jQuery(`#${this.id} .collapse`).collapse(mode);\n\n // @ts-ignore\n let e = $(`#${this.id} .collapse`);\n call(e, 'collapse', mode);\n }\n\n setParents(elements: MenuElement[], parent: MenuElement) {\n\n if (!this.disabilitaImpostazioneParents && elements != undefined && elements.length > 0) {\n\n elements.forEach((element: MenuElement) => {\n\n if (element != undefined) {\n\n if (parent) {\n\n element.parent = this.toLightElement(parent);\n }\n\n this.setParents(element.subElements, element);\n }\n })\n }\n }\n\n toLightElement(e: MenuElement): MenuElement {\n\n return e != undefined\n ? {\n id: e.id,\n label: e.label,\n link: e.link,\n parent: this.toLightElement(e.parent)\n }\n : undefined\n }\n\n elementOnClick(element: MenuElement) {\n\n if (element) {\n\n if (element.callback && isFunction(element.callback)) {\n\n element.callback();\n }\n\n if (this.isEffettoFisarmonicaAbilitato(element)) {\n\n this.collapseOther(element);\n }\n\n // this.removeAriaExpanded(element.id + '-items');\n }\n\n this.select.emit(element)\n }\n\n /**\n * Effetto fisarmonica\n *\n * @param element\n */\n collapseOther(element: MenuElement) {\n\n if (element) {\n\n this.elements.forEach((elem: MenuElement) => {\n\n if (elem && elem.id != element.id) {\n\n this.collassaElemento(elem.id);\n }\n })\n\n // this.sottoMenu.forEach((menu: MenuComponent) => {\n //\n // if (menu != undefined && menu.id != element.id + '-items') {\n //\n // // console.warn(`[${this.id}] menu`, menu.id)\n //\n // menu.collassaLivello();\n // }\n // })\n }\n }\n\n /**\n *\n * @param element\n */\n isEffettoFisarmonicaAbilitato(element: MenuElement): boolean {\n\n return element\n && element.collapseOther === true\n && element.subElements != undefined\n && element.subElements.length > 0\n }\n\n /**\n *\n * @param element\n */\n forwardCurrent(element: MenuElement) {\n\n if (element) {\n\n // console.warn(`[${this.id}] forwardCurrent`, element)\n\n this.currentElement.emit(element)\n\n // console.warn(`[${this.id}] Inner menu`, this.innerMenu)\n\n if (this.innerMenu === false && this.espandiPercorsoAutomaticamente === true) {\n\n this.espandiPercorso(element.id);\n }\n }\n }\n\n onKeyupSpace($event: Event) {\n\n // @ts-ignore\n $($event.target).click();\n }\n\n // @ts-ignore\n isExpanded = (element: MenuElement) => element && $('#' + element.id).attr('aria-expanded') == 'true';\n isCollapsible = (element: MenuElement) => element.collapsible && this.hasSubElements(element);\n\n itemOnArrowDown() {\n\n let focusableItems = this.focusableItems;\n let item = focusableItems.filter((index) => index > focusableItems.index(document.activeElement)).first();\n\n if(item) {\n\n item.focus();\n }\n }\n\n itemOnArrowUp() {\n\n let focusableItems = this.focusableItems;\n let item = focusableItems.filter((index) => index < focusableItems.index(document.activeElement)).last();\n\n if(item) {\n\n item.focus();\n }\n }\n\n get focusableItems() {\n\n return window['$']('body').find(FOCUSABLE_ITEMS_SELECTOR);\n }\n}\n\nconst AUTO_SHOW = 'auto'\n\nexport declare type MenuElementShowMode = 'auto'\n\nexport class MenuElement {\n\n id: string;\n label: string | GetStringFn;\n title?: string | GetStringFn;\n ariaLabel?: string | GetStringFn;\n link?: string | GetStringFn;\n linkRegex?: string | GetStringFn;\n queryParams?: {\n [k: string]: any;\n }\n callback?: Function;\n activeLinks?: string[];\n show?: boolean | CheckFn | MenuElementShowMode;\n collapsible?: boolean;\n collapsed?: boolean;\n collapseOther?: boolean\n subElements?: MenuElement[];\n parent?: MenuElement;\n debug?: boolean;\n}\n","import {ExternalResource, ExternalScript} from \"./static-resources\";\n\nconst REL_STYLESHEET = 'stylesheet';\nconst REL_ICON = 'icon';\nconst MEDIA_SCREEN = 'screen';\nconst MEDIA_PRINT = 'print';\nconst TYPE_CSS = 'text/css';\nconst TYPE_IMAGE_ICON = 'image/x-icon';\nconst TYPE_JAVASCRIPT = 'text/javascript';\n\n// const BASE_PATH = '/assets/app/ssi';\nconst BASE_PATH = '/assets/app/webkit-addon/1.0.0/static_Inail';\n\nexport const webkitExternalResources: ExternalResource[] = [\n\n // Favicon\n // {href: `/img/favicon.ico`, rel: REL_ICON, type: TYPE_IMAGE_ICON},\n\n // CSS Media screen\n // {href: `/css/bootstrap.min.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/bootstrap.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN, assetUrl: BASE_PATH},\n {href: `/css/foglia.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/custom.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN, assetUrl: BASE_PATH},\n {href: `/css/form.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/font-awesome.min.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN, assetUrl: `${BASE_PATH}/font-awesome-4.3.0`},\n {href: `/js/datepicker/bootstrap-datepicker3.standalone.min.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/home_sezione.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/servizi.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/intranet.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/jquery-ui.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN, assetUrl: BASE_PATH},\n\n // CSS Media print\n {href: `/css/print.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_PRINT}, // TODO inserire in cdn\n {href: `/css/print_intranet.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_PRINT}, // TODO inserire in cdn\n\n // Questo CSS e' del webkit. Da specifiche non andrebbe importato,\n // risulta pero' necessario per la corretta visualizzazione.\n {href: `/css/custom-webkit.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n\n // CSS Webkit v3.1.0\n {href: `/css/slick.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN} // TODO inserire in cdn\n]\n\nexport const webkitExternalScripts: ExternalScript[] = [\n\n // JS Head Intranet\n {src: `/js/modernizr.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n {src: `/js/jquery-1.11.1.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n // {src: `/js/jquery-ui.min.js`, type: TYPE_JAVASCRIPT}, // TODO inserire in cdn\n {src: `/js/jquery-ui.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n {src: `/js/bootstrap.min.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n\n // Inizializzazione date picker\n // {src: `/js/datepicker/bootstrap-datepicker.min.js`, type: TYPE_JAVASCRIPT}, // TODO inserire in cdn\n {src: `/js/datepicker/bootstrap-datepicker.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n {src: `/js/datepicker/bootstrap-datepicker.it.min.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n\n // SCRIPT per SLIDER MENU\n // {src: `/vendor/jquery-ui-1.11.4.custom/jquery-ui.min.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/main.js`, type: TYPE_JAVASCRIPT}, // TODO inserire in cdn\n\n // Altro // TODO inserire in cdn\n {src: `/js/print.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/spid-sp-access-button.min.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/jquery.rwdImageMaps.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/custom-webkit.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/combobox.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/slick.js`, type: TYPE_JAVASCRIPT}\n];\n\n","export const DEFAULT_ASSETS_URL = '/static';\nexport const DEFAULT_ASSETS_INTRA_URL = '/static_intra';\nexport const API_DEFAULT_URL = '/api';\n","import {AfterViewInit, Component, Directive, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\n\nexport const VALIDATION_BTN_CLASS: string = 'validation-btn'\n\n@Component({\n selector: 'inail-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonComponent extends FormElementComponent implements OnInit, AfterViewInit {\n\n validationBtnClass: string = VALIDATION_BTN_CLASS;\n\n @Input()\n btnSuccess: boolean;\n\n @Input()\n btnLink: boolean;\n\n @Input()\n submit: boolean;\n\n @Input()\n angleRight: boolean;\n\n @Input()\n angleLeft: boolean;\n\n @Input()\n iconLeft: string;\n\n @Input()\n iconRight: string;\n\n @Output()\n onclick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>()\n\n @ViewChild('buttonContent')\n buttonContent: ElementRef;\n visualizzaContent: boolean = true;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {\n this.visualizzaContent = this.buttonContent.nativeElement.childNodes.length > 0;\n });\n }\n\n onClick($event: MouseEvent) {\n\n this.onclick.emit($event)\n }\n}\n","import {AfterViewInit, Component, ContentChildren, ElementRef, HostListener, Input, OnInit, QueryList, Renderer2, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent, LogLevel} from \"../../../base/base.component\";\nimport {HeaderConfigurations} from \"../header/header.component\";\nimport {InfoDipendente} from \"../navigazione-utente/navigazione-utente.component\";\nimport {MODAL_CONFIRM_CLASS} from \"../../confirm/confirm.component\";\nimport {GetStringFn, MenuComponent, MenuElement} from \"../../menu/menu.component\";\nimport {PaginaApplicativa} from \"../../breadcrumb/breadcrumb.component\";\nimport {Router} from \"@angular/router\";\nimport {isFunction} from \"rxjs/internal-compatibility\";\nimport {ExternalResource, ExternalScript} from \"../../../../../static-resources\";\nimport {webkitExternalResources, webkitExternalScripts} from \"../../../../../webkit-resources\";\nimport {isAbsolute, isNotEmptyOrNull} from \"../../../../../utils/Util\";\nimport {API_DEFAULT_URL, DEFAULT_ASSETS_INTRA_URL, DEFAULT_ASSETS_URL} from \"../layout-common-config\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {VALIDATION_BTN_CLASS} from \"../../button/button.component\";\n\ntype ResourceType = 'script' | 'link';\n\ninterface LoadedResource {\n\n loaded: boolean,\n resource: ExternalResource | ExternalScript\n}\n\ninterface LoadedResourceResponse {\n\n resource: string\n loaded: boolean,\n status: string\n}\n\n/**\n * Il componente renderizza l'intero layout dell'applicazione.\n *\n * Comprende gli elementi comuni a tutte le applicazioni INAIL:\n * Header, footer, spazio per breadcrumb e menu laterale.\n *\n * Il componente implementa autonomamente il meccanismo per rendere responsive l'applicazione,\n * secondo quanto richiesto nelle linee guida INAIL.\n *\n * E' possibile iniettare nel layout renderizzato il contenuto principale delle pagine,\n * il breadcrumb, il menu applicativo ed il sottomenu.\n *\n * Inoltre e' possibile permettere al componente di recuperare in automatico le informazioni inerenti\n * l'utente loggato e gli html visulizzati nell'header e nel footer\n * oppure passare esplicitamente queste informazioni dall'esterno.\n *\n * Infine e' possibile far iniettare al componente le risorse statiche necessarie,\n * passandole in input e facendole recuperare in automatico\n * senza doverle specificare nell'index.html\n */\n@Component({\n selector: 'inail-layout',\n templateUrl: './inail-layout.component.html',\n styleUrls: ['./inail-layout.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InailLayoutComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n headerConfig: HeaderConfigurations;\n\n /**\n * Se true visualizza il loader\n */\n @Input()\n showLoader: boolean;\n\n @Input()\n config: InailLayoutConfigurations;\n\n @Input()\n infoDipendente: InfoDipendente;\n\n /**\n * Lista delle risorse esterne da utilizzare per la corretta visualizzazione del layout.\n * Vengono caricate automaticamente solo se il comportamento viene abilitato\n * tramite la proprieta di configrazione caricamentoDinamicoRisorseEsterne.\n * Se per le risorse non vengono specificati degli url assoluti\n * vegono recuperate in base a quanto specificato nelle proprita di configurazione\n * cdnEndpoint ed assetsUrl.\n */\n @Input()\n externalResources: ExternalResource[];\n\n /**\n * Lista degli scripts esterni da utilizzare per il corretto funzionamento del layout.\n * Vengono caricati automaticamente solo se il comportamento viene abilitato\n * tramite la proprieta di configrazione caricamentoDinamicoScriptEsterni.\n * Se per gli script non vengono specificati degli url assoluti\n * vegono recuperati in base a quanto specificato nelle proprita di configurazione\n * cdnEndpoint ed assetsUrl.\n */\n @Input()\n externalScripts: ExternalScript[];\n\n @ViewChild('breadcrumbContainer')\n breadcrumbContainer: ElementRef;\n\n @ContentChildren(MenuComponent)\n menuList: QueryList<MenuComponent>;\n\n paginaCorrente: PaginaApplicativa;\n\n breadcrumbEsterno: boolean = true;\n inizializzazioneTerminata: boolean = false;\n\n constructor(private renderer: Renderer2,\n private http: HttpClient,\n private _elementRef: ElementRef,\n private router: Router) {\n\n super()\n }\n\n @HostListener('click', ['$event.target'])\n onClick(elem: HTMLElement) {\n\n // console.warn('onClick', elem) // todo togliere\n\n // Controllo che il click sia stato fatto\n // su un pulsante submit\n if (this.config.focusOnFirstError && this.isSubmitButton(elem)) {\n\n this.log.emit({level: LogLevel.DEBUG, message: 'Submit button clicked'})\n // console.warn('Submit button clicked') // todo togliere\n\n setFocusOnFirstError(this.config.scrollToFirstError);\n }\n }\n\n private isSubmitButton(elem: HTMLElement): boolean {\n\n return elem\n && ((elem.nodeName == \"BUTTON\"\n && elem.attributes\n && elem.attributes.getNamedItem('type')\n && elem.attributes.getNamedItem('type').nodeValue === 'submit') || this.isSubmitButton(elem.parentElement));\n }\n\n /**\n * @Deprecato\n * Verifica se l'elemento e' un button di validazione\n *\n * @param elem\n */\n private isValidationButton(elem: HTMLElement): boolean {\n\n return elem && ((elem.nodeName == \"BUTTON\" && this.hasClassValidationBtn(elem)) || this.isValidationButton(elem.parentElement));\n }\n\n /**\n *\n * @param elem\n */\n hasClassValidationBtn(elem: HTMLElement): boolean {\n\n return elem && elem.classList && elem.classList.contains(VALIDATION_BTN_CLASS);\n }\n\n ngOnInit() {\n\n this.init();\n }\n\n private async init() {\n\n this.removeNgVersion(this._elementRef.nativeElement)\n\n this.gestioneEventiFineNavigazione();\n\n if (this.config) {\n\n this.emitDebug(\"Configurazioni InailLayoutComponent\");\n this.emitDebug(this.config);\n\n if (!this.config.cdnEndpoint && this.config.recuperoAutomaticoCdnEnpoint === true) {\n\n await this.recuperaCdnEnpoint();\n }\n\n this.headerConfig = {\n\n clientId: this.config.clientId,\n domainUrl: this.config.domainUrl,\n apiGatewayUrl: this.config.apiGatewayUrl,\n assetsUrl: this.config.assetsUrl,\n intranet: this.config.intranet,\n logoutUrl: this.config.logoutUrl,\n cdnEndpoint: this.config.cdnEndpoint,\n menuIntranetUrl: this.config.menuIntranetUrl,\n menuIntranetHtml: this.config.menuIntranetHtml,\n navigazionePrincipaleUrl: this.config.navigazionePrincipaleUrl,\n navigazionePrincipaleHtml: this.config.navigazionePrincipaleHtml,\n profiloUtenteUrl: this.config.profiloUtenteUrl,\n visualizzaNotificheUtente: this.config.visualizzaNotificheUtente,\n visualizzaMenuCercaUtente: this.config.visualizzaMenuCercaUtente,\n cercaPersonePageUrl: this.config.cercaPersonePageUrl,\n recuperoAutomaticoDatiUtente: this.config.recuperoAutomaticoDatiUtente\n }\n }\n\n if (this.config.caricamentoDinamicoRisorseEsterne === true) {\n\n await this.loadRisorseEsterne(this.externalResources || webkitExternalResources, 'link');\n }\n\n if (this.config.caricamentoDinamicoScriptEsterni === true) {\n\n await this.loadRisorseEsterne(this.externalScripts || webkitExternalScripts, 'script');\n }\n\n this.inizializzazioneTerminata = true;\n }\n\n private removeNgVersion(nativeElement) {\n\n if (nativeElement) {\n\n if (nativeElement.hasAttribute && nativeElement.hasAttribute('ng-version')) {\n\n nativeElement.removeAttribute(\"ng-version\");\n } else {\n this.removeNgVersion(nativeElement.parentElement);\n }\n }\n }\n\n /**\n *\n * @param risorseEsterne\n * @param type\n */\n private async loadRisorseEsterne(risorseEsterne: (ExternalResource | ExternalScript)[], type: ResourceType) {\n\n if (isNotEmptyOrNull(this.config.cdnEndpoint)) {\n\n risorseEsterne.forEach((resource: ExternalResource | ExternalScript) => this.impostaPathRisorsa2(resource, type));\n }\n\n let loadedResources: LoadedResource[] = [];\n risorseEsterne.forEach((risorsa: ExternalResource | ExternalScript) => loadedResources.push({loaded: false, resource: risorsa}));\n\n switch (type) {\n\n case \"link\":\n await this.caricaRisorseEsterne(loadedResources);\n break;\n case \"script\":\n await this.caricaScriptEsterni(loadedResources);\n break;\n }\n }\n\n /**\n *\n * @param risorsaEsterna\n * @param type\n */\n private impostaPathRisorsa(risorsaEsterna: ExternalResource | ExternalScript, type: ResourceType) {\n\n let url = '';\n\n if (!isAbsolute(risorsaEsterna.assetUrl)) {\n\n url = risorsaEsterna.cdnEndpoint || this.config.cdnEndpoint || '';\n }\n\n url = url.concat(risorsaEsterna.assetUrl || this.config.assetsUrl || (this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL));\n\n switch (type) {\n\n case \"link\":\n\n if (!isAbsolute((risorsaEsterna as ExternalResource).href)) {\n\n // (resourceEsterna as ExternalResource).href = `${this.config.cdnEndpoint}${(resourceEsterna as ExternalResource).href}`\n (risorsaEsterna as ExternalResource).href = `${url}${(risorsaEsterna as ExternalResource).href}`\n }\n break;\n\n case \"script\":\n\n if (!isAbsolute((risorsaEsterna as ExternalScript).src)) {\n\n // (resourceEsterna as ExternalScript).src = `${this.config.cdnEndpoint}${(resourceEsterna as ExternalScript).src}`\n (risorsaEsterna as ExternalScript).src = `${url}${(risorsaEsterna as ExternalScript).src}`\n }\n break;\n }\n }\n\n /**\n *\n * @param risorsaEsterna\n * @param type\n */\n private impostaPathRisorsa2(risorsaEsterna: ExternalResource | ExternalScript, type: ResourceType) {\n\n let urlProperty: string;\n\n switch (type) {\n\n case \"link\":\n urlProperty = 'href'\n break;\n\n case \"script\":\n urlProperty = 'src'\n break;\n }\n\n risorsaEsterna.assetUrl = !isAbsolute(risorsaEsterna[urlProperty])\n ? risorsaEsterna.assetUrl || this.config.assetsUrl || (this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL)\n : '';\n\n risorsaEsterna.cdnEndpoint = !isAbsolute(risorsaEsterna.assetUrl)\n ? risorsaEsterna.cdnEndpoint || this.config.cdnEndpoint || ''\n : '';\n }\n\n /**\n *\n * @param resources\n * @param index\n */\n private async caricaRisorseEsterne(resources: LoadedResource[], index: number = 0) {\n\n if (index < resources.length) {\n\n try {\n\n this.emitDebug('Caricamento risorsa esterna:');\n this.emitDebug(resources[index]);\n\n let response: LoadedResourceResponse = await this.creaElementoRisorsaEsterna(resources[index], 'link');\n\n this.emitDebug('...caricamento risorsa esterna completato');\n this.emitDebug(response);\n\n } catch (e) {\n this.emitError('Errore caricamento risorsa esterna!');\n this.emitError(e);\n }\n\n await this.caricaRisorseEsterne(resources, index + 1);\n }\n }\n\n /**\n *\n * @param scripts\n * @param index\n */\n private async caricaScriptEsterni(scripts: LoadedResource[], index: number = 0) {\n\n if (index < scripts.length) {\n\n setTimeout(() => {\n this.emitDebug('Caricamento script esterno:');\n this.emitDebug(scripts[index]);\n\n this.creaElementoRisorsaEsterna(scripts[index], 'script')\n .then((response: LoadedResourceResponse) => {\n\n this.emitDebug('...caricamento script esterno completato');\n this.emitDebug(response);\n })\n .catch((e) => {\n this.emitError('Errore caricamento script esterno!');\n this.emitError(e);\n })\n .finally(() => this.caricaScriptEsterni(scripts, index + 1));\n\n }, this.config.scriptLoadingDeelay || 300);\n }\n }\n\n /**\n *\n *\n * @param resource\n * @param type\n */\n private async creaElementoRisorsaEsterna(resource: LoadedResource, type: ResourceType): Promise<LoadedResourceResponse> {\n\n return new Promise((resolve, reject) => {\n\n let resourceUrl: string = resource.resource['src'] || resource.resource['href']\n\n //resolve if already loaded\n if (resource.loaded) {\n\n resolve({resource: resourceUrl, loaded: true, status: 'Already Loaded'});\n } else {\n\n let resourceElement: any;\n\n switch (type) {\n\n case 'script':\n resourceElement = createScriptElement((resource.resource as ExternalScript));\n break;\n case 'link':\n resourceElement = createLinkElement((resource.resource as ExternalResource));\n break;\n }\n\n if (resourceElement.readyState) { //IE\n\n resourceElement.onreadystatechange = () => {\n\n if (resourceElement.readyState === \"loaded\" || resourceElement.readyState === \"complete\") {\n resourceElement.onreadystatechange = null;\n resource.loaded = true;\n resolve({resource: resourceUrl, loaded: true, status: 'Loaded'});\n }\n };\n\n } else { //Others\n resourceElement.onload = () => {\n resource.loaded = true;\n resolve({resource: resourceUrl, loaded: true, status: 'Loaded'});\n };\n }\n\n resourceElement.onerror = (error: any) => reject({resource: resource.resource, loaded: false, status: 'Loaded'});\n document.head.appendChild(resourceElement);\n }\n });\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {\n this.breadcrumbEsterno = this.breadcrumbContainer ? this.breadcrumbContainer.nativeElement.childElementCount > 0 : false;\n });\n\n if (this.menuList && this.menuList.length > 0) {\n\n this.menuList.forEach((menu: MenuComponent) => {\n\n menu.currentElement.subscribe((currentElement: MenuElement) => {\n\n if (currentElement != undefined) {\n\n this.paginaCorrente = this.toPaginaApplicativa(currentElement);\n }\n })\n })\n }\n }\n\n private gestioneEventiFineNavigazione() {\n\n // this.router.events\n // .pipe(filter(event => event instanceof NavigationEnd))\n // .subscribe((event: NavigationEnd) => {\n //\n // let element: MenuElement = this.findMenuElement(event.urlAfterRedirects);\n // this.paginaCorrente = this.toPaginaApplicativa(element);\n // });\n }\n\n // private findMenuElement(urlAfterRedirects: string): MenuElement {\n //\n // let element: MenuElement = undefined;\n //\n // if (this.menuList != undefined && this.menuList.length > 0) {\n //\n // let allMenuElements: MenuElement[] = [];\n //\n // this.menuList.forEach((menu: MenuComponent) => {\n //\n // allMenuElements = allMenuElements.concat(menu.elements);\n // })\n //\n // element = this.findVoceMenu(allMenuElements, urlAfterRedirects);\n // }\n //\n // return element;\n // }\n\n // private findVoceMenu(elements: MenuElement[], url): MenuElement {\n //\n // let element: MenuElement = undefined;\n //\n // if (elements != undefined && elements.length > 0) {\n //\n // elements.forEach((elem: MenuElement) => {\n //\n // if (element == undefined && elem != undefined) {\n //\n // element = (elem.link == url) ? elem : this.findVoceMenu(elem.subElements, url);\n // }\n // })\n // }\n //\n // return element;\n // }\n\n private toPaginaApplicativa(element: MenuElement): PaginaApplicativa {\n\n return element != undefined\n ? {\n titolo: this.getElementLabel(element),\n url: this.getElementLink(element),\n parent: this.toPaginaApplicativa(element.parent)\n }\n : undefined\n }\n\n getElementLink(element: MenuElement): string {\n\n return isFunction(element.link) ? (element.link as GetStringFn)() : element.link\n }\n\n getElementLabel(element: MenuElement): string {\n\n return isFunction(element.label) ? (element.label as GetStringFn)() : element.label\n }\n\n /**\n * Recupera da Api Gateway l'endpoint della cdn\n * e lo imposta nella configurazione del componente.\n */\n private async recuperaCdnEnpoint() {\n\n try {\n\n let url = (!isAbsolute(this.config.apiGatewayUrl) ? (this.config.domainUrl || '') : '')\n + (this.config.apiGatewayUrl || API_DEFAULT_URL)\n + '/.well-known/inail-configuration';\n\n let response: InailConfigurationResponse = await this.http.get<InailConfigurationResponse>(url, {withCredentials: true}).toPromise();\n this.config.cdnEndpoint = response.cdn_endpoint;\n\n } catch (e) {\n\n this.emitError(\"Errore nel recupero del cdnEnpoint da api gateway\");\n this.emitError(e);\n }\n }\n}\n\ninterface InailConfigurationResponse {\n\n cdn_endpoint: string;\n}\n\nconst scrollToElement = (id: string) => {\n\n setTimeout(() => {\n const elem = document.getElementById(id);\n if (elem) {\n scrollTo(elem.getBoundingClientRect().top + window.pageYOffset - 50);\n }\n });\n};\n\nconst scrollTo = (top: number) => {\n setTimeout(() => {\n window.scroll({top, left: 0, behavior: 'smooth'});\n });\n};\n\nconst createLinkElement = (resource: ExternalResource) => {\n\n let element = document.createElement('link');\n\n let url = resource.cdnEndpoint + resource.assetUrl + resource.href;\n\n addProperty(element, 'rel', resource.rel);\n addProperty(element, 'type', resource.type);\n addProperty(element, 'href', url);\n addProperty(element, 'media', resource.media);\n addProperty(element, 'hreflang', resource.hreflang);\n\n return element;\n}\n\nconst createScriptElement = (script: ExternalScript) => {\n\n let element = document.createElement('script');\n\n let url = script.cdnEndpoint + script.assetUrl + script.src;\n\n addProperty(element, 'src', url);\n addProperty(element, 'type', script.type);\n addProperty(element, 'charset', script.charset);\n\n if (script.async === true) {\n\n element.async = true;\n }\n\n if (script.defer === true) {\n\n element.defer = true;\n }\n\n return element;\n}\n\nconst addProperty = (elem: any, name: string, value: string) => {\n\n if (elem != undefined && value != undefined) {\n\n elem[name] = value;\n }\n}\n\nexport class InailLayoutConfigurations {\n\n /**\n * Se true visualizza il menu intranet\n */\n intranet?: boolean;\n\n /**\n * Se true imposta automaticamente il focus sul primo elemento\n * di input andato in errore\n */\n focusOnFirstError?: boolean;\n\n /**\n * Se true imposta effettua uno scrolling all'elemento\n * andato in errore prima di impostare il focus\n */\n scrollToFirstError?: boolean;\n\n /**\n * Se true visualizza le notifiche utente\n */\n visualizzaNotificheUtente?: boolean;\n\n /**\n * Se true visulizza il menu cerca utente\n */\n visualizzaMenuCercaUtente?: boolean;\n\n /**\n * Se true permette al layout di occupare l'intera larghezza dello schermo\n */\n containerWide?: boolean;\n\n /**\n * Se true abilita il caricamento automatico delle risorse esterne.\n * Vengono creati ed inettati nel tag <head> i tag <link>\n * inerenti le risorse esterne necessarie alla\n * corretta visualizzazione dell'applicazione.\n * Se non passate in input al componente\n * vengono caricate le risorse di default.\n * todo: inserire lista risorse (vedere file webkit-resources.ts)\n * Le risorse di default vengono recuperate dal dominio\n * specificato tramite la proprieta cdnEndpoint e cercate\n * nel sottopath specificato tramite proprieta assetsUrl\n */\n caricamentoDinamicoRisorseEsterne?: boolean;\n\n /**\n * Se true abilita il caricamento automatico degli script esterni.\n * Vengono creati ed inettati nel tag <head> i tag <script>\n * inerenti gli script necessari al\n * corretto funzionamento dell'applicazione.\n * Se non passati in input al componente\n * vengono caricati gli script di default.\n * todo: inserire lista scripts (vedere file webkit-resources.ts)\n * Gli scripts di default vengono recuperati dal dominio\n * specificato tramite la proprieta cdnEndpoint e cercati\n * nel sottopath specificato tramite proprieta assetsUrl\n */\n caricamentoDinamicoScriptEsterni?: boolean;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente per customizzare i comportamenti automatici\n * (come il recupero dei frammenti html che costituiscono l'header ed il recupero\n * delle info inerenti l'utente loggato)\n * e per customizzare gli href negli html di default (header e footer) nel caso in cui non vengano passati\n * degli specifici html o non sia stato possibile recuperare quelli in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n domainUrl?: string;\n\n /**\n * Endpoint della cdn.\n * (e.g. https://cdncoll.inailcloud.it)\n * Se non specificato viene utilizzato il dominio corrente.\n * Non viene utilizzato se e' stato specificato un url assoluto nell'input assetsUrl.\n */\n cdnEndpoint?: string;\n\n /**\n * Url per il recupero degli assets.\n * Se non specificato viene utilizzato l'indirizzo relativo /static (in caso di applicazione non intranet)\n * oppure /static_intra (in caso di applicazione intranet)\n * del dominio (se passato) specificato tramite la proprieta' cdnEndpoint.\n * Se viene specificato un path assoluto l'input cdnEndpoint non viene preso in considerazione.\n */\n assetsUrl?: string;\n\n /**\n * Recupera automaticamente l'endpoint della cdn.\n * L'endpoint viene recuperato contattando l'api gateway all'indirizzo\n * '/.well-known/inail-configuration'\n * l'endpoint utilizzato sara' quello specificato\n * nella proprieta cdn_endpoint dell'oggetto restituito.\n * Il recupero dell'endpoint non viene effettutato se e' stata\n * impostata la proprieta di configurazione cdnEndpoint.\n * L'api gateway viene contattato prendendo in considerazione\n * quanto specificato tramite la proprieta' di configurazione\n * apiGatewayUrl\n * */\n recuperoAutomaticoCdnEnpoint?: boolean;\n\n /**\n * Tempo di attesa in millisecondi\n * del caricamento tra gli script.\n * Il valore di default e' 300.\n */\n scriptLoadingDeelay?: number;\n\n /**\n * Url da cui recuperare l'html della navigazione principale.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/header.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n navigazionePrincipaleUrl?: string;\n\n /**\n * Html della navigazione principale da visualizzare\n */\n navigazionePrincipaleHtml?: string;\n\n /**\n * Url da cui recuperare l'html del menu intranet.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/headersecondariointranet.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n menuIntranetUrl?: string;\n\n /**\n * Html del menu intranet da visualizzare\n */\n menuIntranetHtml?: string;\n\n /**\n * Url da cui recuperare l'html del footer.\n * Se non specificato il footer viene recuperato dall'indirizzo relativo /cs/internet/footer.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n footerUrl?: string;\n\n /**\n * Html del footer da visualizzare\n */\n footerHtml?: string;\n\n /**\n * Url della pagina di gestione del profilo utente.\n * Se non specificato viene usato l'indirizzo relativo /cs/intranet/home/consultazione/gestione-profilo.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n */\n profiloUtenteUrl?: string;\n\n /**\n * Url della pagina per la ricerca delle persone.\n * Se non specificato viene usato l'indirizzo relativo /csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n cercaPersonePageUrl?: string;\n\n /**\n * Url del pulsante di logout.\n * Se non specificato viene usato l'url relativo /cs/LogoutUser?excludedCookies=SMSESSION\n * del dominio (se passato) specificato tramite l'input domainUrl\n */\n logoutUrl?: string;\n\n /**\n * Identificativo dell'applicazione corrente in accordo\n * con l'API Gateway.\n */\n clientId: string;\n\n /**\n * Url a cui contattare l'Api Gateway.\n * Se non specificato viene contattato all'indirizzo relativo /api\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n apiGatewayUrl?: string;\n\n /**\n * Abilita esplicitamente il recupero automatico delle informazioni utente.\n * Le informazioni dell'utente vengono recuperate contattando i servizi:\n * /au/dipendente/estrai-dati-dipendente\n * /au/dipendente/estrai-foto-dipendente\n * esposti dall'api gateway.\n * Il recupero automatico non viene effettuato se i dati dell'utente\n * vengono esplicitamente passati in input.\n */\n recuperoAutomaticoDatiUtente?: boolean;\n}\n\n/**\n * Trova e restituisce tutti gli elementi focusable\n * all'interno dell'elemento dato\n *\n * @param containerElement\n */\nexport const findFormFocusableElement = (containerElement: any): any => containerElement ? containerElement.find('input:focusable,select:focusable,textarea:focusable,.ck-editor__editable,.feedback-focusable') : undefined;\n\n/**\n * Imposta il focus sul primo errore se esiste\n */\nexport const setFocusOnFirstError = (scrollToFirstError?: boolean) => {\n\n setFocusOnError(scrollToFirstError);\n\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // console.info('loader-overlay = 0') // todo togliere\n // setFocusOnError(scrollToFirstError);\n // clearInterval(checkLoading);\n // }\n // }, 100);\n}\n\nconst setFocusOnError = (scrollToFirstError: boolean) => {\n\n // console.warn('setFocusOnError') // todo togliere\n\n // @ts-ignore\n let modaleInPagina: boolean = $('.modal.fade.in').not(`.${MODAL_CONFIRM_CLASS}`).length > 0\n\n // Se esiste una modale in pagina che non e' una modale di conferma\n if (modaleInPagina) {\n\n setFocusOnFirstModalError();\n } else {\n\n setFocusOnFirstPageError(scrollToFirstError);\n\n // let checkModalExist = setInterval(() => {\n //\n // // Aspetto che le eventuali altre modali\n // // siano state rimosse dal DOM\n // // @ts-ignore\n // if ($('.modal.fade.in').length == 0) {\n //\n // setFocusOnFirstPageError(scrollToFirstError);\n // clearInterval(checkModalExist);\n // }\n //\n // }, 100);\n }\n}\n\n/**\n * Imposta il focus sul primo elemento nella modale andato in errore se esiste.\n */\nexport const setFocusOnFirstModalError = () => {\n\n // console.warn('setFocusOnFirstModalError') // todo togliere\n\n setTimeout(() => {\n\n // @ts-ignore\n let firstModalErrorElement = findFormFocusableElement($('.modal-body .has-error'))[0];\n\n // @ts-ignore\n let firstModalErrorFeedback = findFormFocusableElement($('.modal-body .feedback-box-error'))[0];\n\n if (firstModalErrorElement) {\n\n firstModalErrorElement.focus();\n } else if (firstModalErrorFeedback) {\n\n firstModalErrorFeedback.focus();\n }\n\n }, 100);\n}\n\n/**\n * Imposta il focus sul primo elemento in pagina andato in errore se esiste.\n */\nexport const setFocusOnFirstPageError = (scrollToError?: boolean) => {\n\n // console.warn('setFocusOnFirstPageError') // todo togliere\n\n setTimeout(() => {\n\n // @ts-ignore\n let firstErrorElement = findFormFocusableElement($('.has-error,.feedback-box-error').not('.global-feedback'))[0];\n\n // @ts-ignore\n if (firstErrorElement && $(firstErrorElement).is(\":visible\")) {\n\n if (scrollToError === true) {\n\n scrollToElement(firstErrorElement.id)\n }\n\n setTimeout(function () {\n\n if (firstErrorElement) {\n\n firstErrorElement.focus();\n }\n }, 500); // Il delay serve ad aspettare che termini lo scroll\n } else {\n setFocusOnFirstErrorFeedback(scrollToError);\n }\n }, 100);\n}\n\n/**\n * Imposta il focus sul feedback globale\n */\nexport const setFocusOnGlobalFeedback = (scrollToFeedback?: boolean) => {\n\n setFocusOnFirstFeedback('.global-feedback', scrollToFeedback);\n\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // setFocusOnFirstFeedback('.global-feedback', scrollToFeedback);\n // clearInterval(checkLoading);\n // }\n // }, 100);\n}\n\n/**\n * Imposta il focus sul feedback globale\n */\nexport const setFocusOnFirstErrorFeedback = (scrollToFeedback?: boolean) => {\n\n setFocusOnFirstFeedback('.feedback-box-error', scrollToFeedback);\n}\n\n/**\n * Imposta il focus sul primo feedback in pagina\n *\n * @param selector\n * @param scrollToFeedback\n */\nexport const setFocusOnFirstFeedback = (selector: string, scrollToFeedback?: boolean) => {\n\n setTimeout(() => {\n\n // @ts-ignore\n let feedback = $(selector);\n if (feedback) {\n\n if (scrollToFeedback && feedback[0] != undefined) {\n\n\n scrollTo(feedback[0].id);\n }\n\n let feedbackFocusable = feedback.find('.feedback-focusable')[0];\n\n if (feedbackFocusable != undefined) {\n\n setTimeout(() => {\n\n feedbackFocusable.focus();\n }, 500); // Il delay serva ad aspettare che termini lo scroll\n }\n }\n }, 100);\n}\n\nexport const setFocusOnFeedback = (id: string, ms?: number) => {\n\n setTimeout(() => {\n\n let elem = document.querySelectorAll<HTMLElement>(`#${id} .feedback-focusable`)[0];\n\n if(elem) {\n\n elem.focus();\n }\n\n }, ms || 100);\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class LoaderComponent implements OnInit {\n\n @Input()\n show: boolean;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {AfterViewInit, Component, Input, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {DEFAULT_ASSETS_INTRA_URL, DEFAULT_ASSETS_URL} from \"../layout-common-config\";\nimport {InfoDipendente, NavigazioneUtenteConfigurations} from \"../navigazione-utente/navigazione-utente.component\";\nimport {isAbsolute} from \"../../../../../utils/Util\";\n\n/**\n * Il componente renderizza tutto l'header della pagina.\n *\n * L'header di pagina e' composto da:\n * Logo INAIL\n * Navigazione interna\n * Navigazione principale (Barra blu con pulsante esci)\n * Menu' di navigazione utente loggato (barra verde con foto utente e menu intranet).\n *\n * E' possibile passare al componente degli specifici frammenti html da visualizzare\n * per la navigazione principale e per il menu intranet\n * oppure indicare al componente i rispettivi url da cui recuperare i frammenti html.\n *\n * Il componente visualizzera' gli html seguendo la seguente priorita:\n * Html passato in input, recupero tramite url, html di default.\n */\n@Component({\n // E' stato scelto di utilizzare come selettore il nome del tag\n // per consentire alle regole css definite dall'INAIL di\n // matchare con gli elementi html,\n // cosa che non avverrebbe se venisse utilizzato un tag custom\n // frapposto tra il tag header e quello contenitore.\n selector: 'header[id=\"inail-header\"]',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class HeaderComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n configurazioniNavigazioneUtente: NavigazioneUtenteConfigurations;\n\n @Input()\n config: HeaderConfigurations;\n\n @Input()\n infoDipendente: InfoDipendente;\n\n @ViewChild('logoInail') logoInail;\n\n constructor() {\n super();\n }\n\n ngAfterViewInit(): void {\n\n this.logoInail.nativeElement.focus();\n }\n\n ngOnInit() {\n\n if (!this.config) {\n\n this.config = {clientId: ''};\n }\n\n if (!this.config.domainUrl) {\n\n this.config.domainUrl = '';\n }\n\n if(this.config.cdnEndpoint == undefined) {\n\n this.config.cdnEndpoint = '';\n }\n\n if (this.config.assetsUrl == undefined) {\n\n this.config.assetsUrl = this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL;\n }\n\n if (!isAbsolute(this.config.assetsUrl) && this.config.cdnEndpoint != undefined) {\n\n this.config.assetsUrl = this.config.cdnEndpoint + this.config.assetsUrl;\n }\n\n this.configurazioniNavigazioneUtente = {\n apiGatewayUrl: this.config.apiGatewayUrl,\n clientId: this.config.clientId,\n domainUrl: this.config.domainUrl,\n assetsUrl: this.config.assetsUrl,\n cdnEndpoint: this.config.cdnEndpoint,\n intranet: this.config.intranet,\n menuIntranetUrl: this.config.menuIntranetUrl,\n menuIntranetHtml: this.config.menuIntranetHtml,\n profiloUtenteUrl: this.config.profiloUtenteUrl,\n visualizzaNotificheUtente: this.config.visualizzaNotificheUtente,\n visualizzaMenuCercaUtente: this.config.visualizzaMenuCercaUtente,\n cercaPersonePageUrl: this.config.cercaPersonePageUrl,\n recuperoAutomaticoDatiUtente: this.config.recuperoAutomaticoDatiUtente\n }\n }\n}\n\nexport class HeaderConfigurations {\n\n /**\n * Se true visualizza il menu intranet\n */\n intranet?: boolean;\n\n /**\n * Se true visulizza il menu cerca utente\n */\n visualizzaMenuCercaUtente?: boolean;\n\n /**\n * Se true visualizza le notifiche utente\n */\n visualizzaNotificheUtente?: boolean;\n\n /**\n * Url da cui recuperare l'html della navigazione principale.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/header.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n navigazionePrincipaleUrl?: string;\n\n /**\n * Html della navigazione principale da visualizzare\n */\n navigazionePrincipaleHtml?: string;\n\n /**\n * Url da cui recuperare l'html del menu intranet.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/headersecondariointranet.html\n * del dominio (se passato) specificato tramite l'input domainUrl\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n menuIntranetUrl?: string;\n\n /**\n * Html del menu intranet da visualizzare\n */\n menuIntranetHtml?: string;\n\n /**\n * Url della pagina per la ricerca delle persone.\n * Se non specificato viene usato l'indirizzo relativo /csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n cercaPersonePageUrl?: string;\n\n /**\n * Url della pagina di gestione del profilo utente.\n * Se non specificato viene usato l'indirizzo relativo /cs/intranet/home/consultazione/gestione-profilo.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n */\n profiloUtenteUrl?: string;\n\n /**\n * Url del pulsante di logout.\n * Se non specificato viene usato l'url relativo /cs/LogoutUser?excludedCookies=SMSESSION\n * del dominio (se passato) specificato tramite l'input domainUrl\n */\n logoutUrl?: string;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente esclusivamente per customizzare i comportamenti di default e gli href\n * dgli html di default nel caso non vengano passati\n * degli specifici html o non sia stato possibile recuperare quelli in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n domainUrl?: string;\n\n /**\n * Endpoint della cdn.\n * (e.g. https://cdncoll.inailcloud.it)\n * Se non specificato viene utilizzato il dominio corrente.\n */\n cdnEndpoint?: string;\n\n /**\n * Url per il recupero degli assets.\n * Se non specificato viene utilizzato l'indirizzo relativo /static (in caso di applicazione non intranet)\n * oppure /static_intra (in caso di applicazione intranet)\n * del dominio (se passato) specificato tramite la proprieta' cdnEndpoint.\n */\n assetsUrl?: string;\n\n /**\n * Identificativo dell'applicazione corrente in accordo\n * con l'API Gateway\n */\n clientId?: string;\n\n /**\n * Url a cui contattare l'Api Gateway.\n * Se non specificato viene contattato all'indirizzo relativo /api\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n apiGatewayUrl?: any;\n\n /**\n * Abilita esplicitamente il recupero automatico delle informazioni utente.\n * Le informazioni dell'utente vengono recuperate contattando i servizi:\n * /au/dipendente/estrai-dati-dipendente\n * /au/dipendente/estrai-foto-dipendente\n * esposti dall'api gateway.\n * Il recupero automatico non viene effettuato se i dati del'utente\n * vengono esplicitamente passati in input.\n */\n recuperoAutomaticoDatiUtente?: boolean;\n}\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-navigazione-interna',\n templateUrl: './navigazione-interna.component.html',\n styleUrls: ['./navigazione-interna.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NavigazioneInternaComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\n\nexport const toggleMenuNavigazioneSecondaria = () => {\n // Set the effect type\n var effect = 'slide';\n // Set the options for the effect type chosen\n var options = 'direction: left';\n // Set the duration (default: 400 milliseconds)\n var duration = 500;\n\n // Questo trick serve per verificare che non sia gia in corso\n // un effetto di sliding sul menu\n setTimeout(() => {\n\n // @ts-ignore\n if ($('.ui-effects-wrapper').length == 0) {\n\n // @ts-ignore\n jQuery('.slider-menu').toggle(effect, options, duration);\n }\n })\n};\n\n@Component({\n selector: 'inail-trigger-slider-menu-button',\n templateUrl: './trigger-slider-menu-button.component.html',\n styleUrls: ['./trigger-slider-menu-button.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TriggerSliderMenuButtonComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n open() {\n toggleMenuNavigazioneSecondaria();\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {DomSanitizer, SafeScript} from \"@angular/platform-browser\";\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {DEFAULT_ASSETS_URL} from \"../layout-common-config\";\nimport {isAbsolute} from \"../../../../../utils/Util\";\n\nconst DEFAULT_URL = '/cs/internet/footer.html';\n\n/**\n * Il componente renderizza il footer.\n * E' possibile passare al componente uno specifico frammento html da visualizzare o\n * indicare al componente una url da cui recuperare l'html.\n * Nal caso in cui il recupero dell'html non vada a buon fine il componente renderizza un html di default.\n * Il componente visualizzera' l'html seguendo la seguente priorita:\n * Html passato in input, recupero tramite url, html di default.\n */\n@Component({\n selector: 'inail-footer',\n templateUrl: './cs.internet.footer.html',\n styleUrls: ['./footer.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FooterComponent extends BaseComponent implements OnInit, OnChanges {\n\n // readonly DEFAULT_URL = '/cs/internet/integration/footer.html';\n // readonly DEFAULT_URL = '/cs/internet/footer.html';\n\n innerHtml: SafeScript;\n\n /**\n * Url da cui recuperare l'html del footer.\n * Se non specificato il footer viene recuperato dall'indirizzo relativo /cs/internet/footer.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n @Input()\n url: string;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente per il recupero dell'html\n * e per customizzare gli href nell'html di default nel caso non venga passato\n * uno specifico html o non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n @Input()\n domainUrl: string;\n\n /**\n * Endpoint della cdn.\n * (e.g. https://cdncoll.inailcloud.it)\n * Utilizzato esclusivamente per customizzare l'html di default nel caso non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n * Non viene utilizzato se e' stato specificato un url assoluto nell'input assetsUrl.\n */\n @Input()\n cdnEndpoint?: string = '';\n\n /**\n * Utilizzato esclusivamente per customizzare l'html di default nel caso non sia stato possibile recuperare quello in remoto.\n * Se non specificato le risorse statiche vengono cercate sotto il path relativo /static\n * del dominio (se passato) specificato tramite l'input cdnEndpoint.\n * Se viene specificato un path assoluto l'input cdnEndpoint non viene preso in considerazione.\n */\n @Input()\n assetsUrl: string;\n\n /**\n * Html da visualizzare\n */\n @Input()\n html: string;\n\n constructor(private sanitizer: DomSanitizer,\n private http: HttpClient) {\n\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n this.emitDebug('FooterComponent changes:');\n this.emitDebug(changes);\n\n // Il footer viene recuperato da remoto solo se non viene\n // passato esplicitamente dall'esterno l'html da visualizzare\n if (changes && changes.url && changes.url.currentValue && !changes.html.currentValue) {\n\n if (changes.url.firstChange) {\n\n this.emitDebug('Inizializzazione Footer');\n }\n\n this.recupera();\n }\n }\n\n ngOnInit() {\n\n if (!this.domainUrl) {\n\n this.domainUrl = '';\n }\n\n if (!this.assetsUrl) {\n\n this.assetsUrl = DEFAULT_ASSETS_URL;\n }\n\n if(!this.cdnEndpoint || isAbsolute(this.assetsUrl)) {\n\n this.cdnEndpoint = '';\n }\n\n if (this.html) {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(this.html);\n\n } else if (!this.url) {\n\n this.emitDebug('Inizializzazione Footer');\n this.emitDebug('Url footer non specificato');\n\n this.url = this.domainUrl + DEFAULT_URL;\n\n this.recupera();\n }\n }\n\n recupera() {\n this.emitDebug(\"Recupero Footer da: \" + this.url);\n\n this.http.get(this.url, {responseType: 'text'})\n\n .subscribe(\n (footer: string) => {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(footer);\n\n this.emitDebug('Footer recuperato!');\n },\n err => {\n this.innerHtml = undefined;\n this.emitError(\"Errore nel recupero del Footer\");\n this.emitError(err);\n this.emitWarn(\"Visualizzazione Footer di default\");\n },\n () => {\n this.emitDebug('Footer inizializzato!');\n }\n );\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {DomSanitizer, SafeScript} from \"@angular/platform-browser\";\nimport {HttpClient} from \"@angular/common/http\";\n\nconst DEFAULT_URL = '/cs/internet/header.html';\nconst DEFAULT_LOGOUT_URL = '/cs/LogoutUser?excludedCookies=SMSESSION';\n\n/**\n * Il componente renderizza la navigazione principale.\n * E' possibile passare al componente uno specifico frammento html da visualizzare o\n * indicare al componente una url da cui recuperare l'html.\n * Nal caso in cui il recupero dell'html non vada a buon fine il componente renderizza un html di default.\n * Il componente visualizzera' l'html seguendo la seguente priorita:\n * Html passato in input, recupero tramite url, html di default.\n */\n@Component({\n selector: 'inail-navigazione-principale',\n templateUrl: './cs.internet.header.html',\n styleUrls: ['./navigazione-principale.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NavigazionePrincipaleComponent extends BaseComponent implements OnInit, OnChanges {\n\n // readonly DEFAULT_URL = '/cs/internet/integration/header.html';\n // readonly DEFAULT_URL = '/cs/internet/header.html';\n // readonly DEFAULT_LOGOUT_URL = '/cs/LogoutUser?excludedCookies=SMSESSION';\n\n innerHtml: SafeScript;\n\n /**\n * Url da cui recuperare l'html della navigazione principale.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/header.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n @Input()\n url: string;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente esclusivamente per customizzare i comportamenti di default e\n * gli href dell'html di default nel caso non venga passato\n * uno specifico html o non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n * Non influisce sull'input logoutUrl se esplicitamente specificato.\n */\n @Input()\n domainUrl: string = '';\n\n /**\n * Url del pulsante di logout.\n * Se non specificato viene usato l'url relativo /cs/LogoutUser?excludedCookies=SMSESSION\n * del dominio (se passato) specificato tramite l'input domainUrl\n */\n @Input()\n logoutUrl: string;\n\n /**\n * Html da visualizzare\n */\n @Input()\n html: string;\n\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // La navigazione principale viene recuperato da remoto solo se non viene\n // passato esplicitamente dall'esterno l'html da visualizzare\n if (changes && changes.url && changes.url.currentValue && !changes.html.currentValue) {\n\n if (changes.url.firstChange) {\n\n this.emitDebug('Inizializzazione Navigazione principale');\n }\n\n this.recupera();\n }\n }\n\n ngOnInit() {\n\n if (!this.logoutUrl) {\n\n this.logoutUrl = this.domainUrl + DEFAULT_LOGOUT_URL;\n }\n\n if (this.html) {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(this.html);\n } else if (!this.url) {\n\n this.emitDebug('Inizializzazione Navigazione principale');\n this.emitDebug('Url Navigazione principale non specificato');\n\n this.url = this.domainUrl + DEFAULT_URL;\n\n this.recupera();\n }\n }\n\n recupera() {\n this.emitDebug(\"Recupero Navigazione principale da: \" + this.url);\n\n this.http.get(this.url, {responseType: 'text'})\n\n .subscribe(\n (menu: string) => {\n\n menu = menu.replace('#logout', this.logoutUrl);\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(menu);\n\n this.emitDebug('Navigazione principale recuperata!');\n },\n err => {\n this.innerHtml = undefined;\n this.emitError(\"Errore nel recupero della Navigazione principale\");\n this.emitError(err);\n this.emitWarn(\"Visualizzazione Navigazione principale di default\");\n },\n () => {\n this.emitDebug('Navigazione principale inizializzata!');\n }\n );\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {HttpClient, HttpHeaders} from \"@angular/common/http\";\nimport {DomSanitizer, SafeScript} from \"@angular/platform-browser\";\nimport {tap} from \"rxjs/operators\";\nimport {isAbsolute, isEmptyOrNull} from \"../../../../../utils/Util\";\nimport {API_DEFAULT_URL, DEFAULT_ASSETS_INTRA_URL, DEFAULT_ASSETS_URL} from \"../layout-common-config\";\n\nexport class NavigazioneUtenteConfigurations {\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente esclusivamente per customizzare i comportamenti automatici\n * (recupero dei frammento html menu intranet e recupero info dipendente da API Gateway)\n * e per customizzare gli href nell'html di default del menu intranet nel caso non venga passato\n * uno specifico html per esso o non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n domainUrl?: string;\n\n /**\n * Endpoint della cdn.\n * (e.g. https://cdncoll.inailcloud.it)\n * Se non specificato viene utilizzato il dominio corrente.\n * Non viene utilizzato se e' stato specificato un url assoluto nell'input assetsUrl.\n */\n cdnEndpoint?: string = '';\n\n /**\n * Url per il recupero degli assets.\n * Se non specificato viene utilizzato l'indirizzo relativo /static (in caso di applicazione non intranet)\n * oppure /static_intra (in caso di applicazione intranet)\n * del dominio (se passato) specificato tramite l'input cdnEndpoint.\n * Nel caso di questo componente serve esclusivamente per il recupero dell'immagine utilizzata per l'utente anonimo.\n * Se viene specificato un path assoluto l'input cdnEndpoint non viene preso in considerazione.\n */\n assetsUrl?: string;\n\n /**\n * Se true visualizza il menu intranet.\n */\n intranet?: boolean;\n\n /**\n * Se true visualizza il menu cerca utente.\n */\n visualizzaMenuCercaUtente?: boolean;\n\n /**\n * Se true visulizza la notifiche utente.\n */\n visualizzaNotificheUtente?: boolean;\n\n /**\n * Url della pagina per la ricerca delle persone.\n * Se non specificato viene usato l'indirizzo relativo /csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n cercaPersonePageUrl?: string;\n\n /**\n * Url da cui recuperare l'html del menu intranet.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/headersecondariointranet.html\n * del dominio (se passato) specificato tramite l'input domainUrl\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n menuIntranetUrl?: string;\n\n /**\n * Html del menu intranet da visualizzare\n */\n menuIntranetHtml?: string;\n\n /**\n * Identificativo dell'applicazione corrente in accordo\n * con l'API Gateway\n */\n clientId?: string;\n\n /**\n * Url a cui contattare l'Api Gataway.\n * Se non specificato viene contattato all'indirizzo relativo /api\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n apiGatewayUrl?: string;\n\n /**\n * Url della pagina di gestione del profilo utente.\n * Se non specificato viene usato l'indirizzo relativo /cs/intranet/home/consultazione/gestione-profilo.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n */\n profiloUtenteUrl?: string;\n\n /**\n * Abilita esplicitamente il recupero automatico delle informazioni utente.\n * Le informazioni dell'utente vengono recuperate contattando i servizi:\n * /au/dipendente/estrai-dati-dipendente\n * /au/dipendente/estrai-foto-dipendente\n * esposti dall'api gateway.\n * Il recupero automatico non viene effettuato se i dati del'utente\n * vengono esplicitamente passati in input.\n */\n recuperoAutomaticoDatiUtente?: boolean;\n}\n\nconst DATI_DIPENDENTE_URL = '/au/dipendente/estrai-dati-dipendente?matricola=';\nconst FOTO_DIPENDENTE_URL = '/au/dipendente/estrai-foto-dipendente?matricola=';\nconst CHECKSESSION_URL = '/checksession';\nconst PROFILO_UTENTE_DEFAULT_URL = '/cs/intranet/home/consultazione/gestione-profilo.html';\nconst CERCA_PERSONE_DEFAULT_URL = '/csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html';\nconst PATH_FOTO_ANONIMO = '/img/anonimo.jpg ';\n\n/**\n * Il componente renderizza la navigazione utente,\n * cioe' l'elemento html con id='menusecondario' secondo la struttura definita da INAIL.\n * L'elemento visualizza le informazioni inerenti l'utente loggato ed opzionalmente il menu intranet,\n * il form per la ricerca degli utenti, e le notifiche utente.\n *\n */\n@Component({\n selector: 'inail-navigazione-utente',\n templateUrl: './navigazione-utente.component.html',\n styleUrls: ['./navigazione-utente.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NavigazioneUtenteComponent extends BaseComponent implements OnInit, OnChanges {\n\n // readonly DATI_DIPENDENTE_URL = '/au/dipendente/estrai-dati-dipendente?matricola=';\n // readonly FOTO_DIPENDENTE_URL = '/au/dipendente/estrai-foto-dipendente?matricola=';\n // readonly CHECKSESSION_URL = '/checksession';\n // readonly PROFILO_UTENTE_DEFAULT_URL = '/cs/intranet/home/consultazione/gestione-profilo.html';\n // readonly CERCA_PERSONE_DEFAULT_URL = '/csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html';\n // readonly PATH_FOTO_ANONIMO = '/img/anonimo.jpg ';\n\n _immagineProfilo: SafeScript;\n testoRicercaUtente: string;\n\n @Input()\n config: NavigazioneUtenteConfigurations;\n\n @Input()\n infoDipendente: InfoDipendente;\n\n constructor(private http: HttpClient,\n private sanitizer: DomSanitizer) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if(changes && changes.infoDipendente && changes.infoDipendente.currentValue) {\n\n this._immagineProfilo =\n\n changes.infoDipendente.currentValue.foto\n\n ? this.sanitizer.bypassSecurityTrustUrl('data:image/png;base64,' + this.infoDipendente.foto)\n : this.urlFotoUtenteAnonimo;\n }\n }\n\n ngOnInit() {\n\n this.init();\n }\n\n async init() {\n\n if (!this.config) {\n\n this.config = {};\n }\n\n if (!this.config.domainUrl) {\n\n this.config.domainUrl = '';\n }\n\n if(this.config.cdnEndpoint == undefined) {\n\n this.config.cdnEndpoint = '';\n }\n\n if (this.config.assetsUrl == undefined) {\n\n this.config.assetsUrl = this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL;\n }\n\n if (!isAbsolute(this.config.assetsUrl) && this.config.cdnEndpoint != undefined) {\n\n this.config.assetsUrl = this.config.cdnEndpoint + this.config.assetsUrl;\n }\n\n if (!this.config.apiGatewayUrl) {\n\n this.config.apiGatewayUrl = this.config.domainUrl + API_DEFAULT_URL;\n }\n\n if (!this.config.profiloUtenteUrl) {\n\n this.config.profiloUtenteUrl = PROFILO_UTENTE_DEFAULT_URL;\n }\n\n if (!this.infoDipendente) {\n\n this.infoDipendente = {};\n\n // Se le informazioni dell'utente connesso\n // non sono state date in input\n // allora vengono recuperate automaticamente in remoto\n if (this.config.recuperoAutomaticoDatiUtente) {\n\n let datiDipendente: DatiDipendente = await this.recuperaDatiDipendente();\n\n if (datiDipendente) {\n\n this.infoDipendente.nome = datiDipendente.nome;\n this.infoDipendente.cognome = datiDipendente.cognome;\n }\n\n this.infoDipendente.foto = await this.recuperaFotoDipendente();\n }\n }\n\n this._immagineProfilo =\n\n this.infoDipendente.foto\n\n ? this.sanitizer.bypassSecurityTrustUrl('data:image/png;base64,' + this.infoDipendente.foto)\n : this.urlFotoUtenteAnonimo;\n }\n\n get immagineProfilo() {\n\n return this._immagineProfilo || this.urlFotoUtenteAnonimo;\n }\n\n get urlFotoUtenteAnonimo(): string {\n\n return this.config.assetsUrl + PATH_FOTO_ANONIMO\n }\n\n // Deprecato\n get assetUrl(): string {\n\n return (isAbsolute(this.config.assetsUrl) ? '' : this.config.cdnEndpoint)\n + (this.config.assetsUrl\n || (this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL));\n\n // OLD\n // return this.config.assetsUrl\n // || (this.config.domainUrl\n // + (this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL));\n }\n\n async getMatricolaDipendente(): Promise<string> {\n\n if (isEmptyOrNull(this.infoDipendente.matricola)) {\n\n this.infoDipendente.matricola = await this.recuperaMatricolaDipendente();\n }\n\n return this.infoDipendente.matricola;\n }\n\n async recuperaMatricolaDipendente(): Promise<string> {\n\n let matricola: string;\n\n try {\n\n let url: string = this.config.apiGatewayUrl + CHECKSESSION_URL;\n\n this.emitDebug(\"Recupero matricola dipendente per Navigazione utente da \" + url);\n\n let response: ChecksessionResponse = await this.get(url).toPromise();\n\n if (response && response.result) {\n\n matricola = response.User;\n }\n\n } catch (e) {\n this.emitError(\"Errore nel recupero della matricola dipendente\");\n this.emitError(e);\n }\n\n return matricola;\n }\n\n async recuperaDatiDipendente(): Promise<DatiDipendente> {\n\n let matricola = await this.getMatricolaDipendente();\n let url = this.config.apiGatewayUrl + DATI_DIPENDENTE_URL + matricola;\n\n let datiDipendente: DatiDipendente;\n\n try {\n this.emitDebug(\"Recupero dati dipendente per Navigazione utente da \" + url);\n\n let response: DatiDipendenteResponse = await this.get(url).toPromise();\n\n if (!response || !response.dipendente || response.dipendente.length == 0 || !response.dipendente[0]) {\n\n this.emitError(\"Dipendente non trovato\");\n\n } else {\n\n datiDipendente = response.dipendente[0];\n }\n\n } catch (e) {\n this.emitError(\"Errore nel recupero dei dati dipendente\");\n this.emitError(e);\n }\n\n return datiDipendente;\n }\n\n async recuperaFotoDipendente(): Promise<string> {\n\n let matricola = await this.getMatricolaDipendente();\n let url = this.config.apiGatewayUrl + FOTO_DIPENDENTE_URL + matricola;\n\n let fotoDipendente: string;\n\n try {\n this.emitDebug(\"Recupero foto dipendente per Navigazione utente da \" + url);\n\n let response: FotoDipendenteResponse = await this.get(url).toPromise();\n\n if (!response || !response.fotoDipendente || response.fotoDipendente.length == 0 || !response.fotoDipendente[0]) {\n\n this.emitError(\"Foto dipendente non trovata\");\n\n } else {\n\n fotoDipendente = response.fotoDipendente[0].foto;\n }\n\n } catch (e) {\n this.emitError(\"Errore nel recupero della foto dipendente\");\n this.emitError(e);\n }\n\n return fotoDipendente;\n }\n\n get(url: string) {\n\n let headers = new HttpHeaders().set('client_id', this.config.clientId);\n\n return this.http.get<any>(url, {headers: headers, withCredentials: true})\n .pipe(\n tap(response => {\n\n this.emitDebug(\"Risposta richiesta get per navigazione utente:\");\n this.emitDebug(response);\n })\n )\n }\n\n onCercaUtenteSubmit() {\n\n let url = this.config.cercaPersonePageUrl || this.config.domainUrl + CERCA_PERSONE_DEFAULT_URL;\n\n location.href = `${url}?campo_unico_menu=${this.testoRicercaUtente}&_authkey_=null&cerca=cercaHeader`;\n }\n}\n\ninterface FotoDipendenteResponse {\n\n fotoDipendente: FotoDipendente[];\n}\n\ninterface FotoDipendente {\n\n foto: string;\n}\n\ninterface ChecksessionResponse {\n result: boolean,\n 'http-status': number,\n message: string,\n sid?: string,\n 'XSRF-TOKEN'?: string,\n redirect?: string,\n User?: string\n}\n\ninterface DatiDipendenteResponse {\n\n dipendente: DatiDipendente[];\n}\n\ninterface DatiDipendente {\n\n \"contratto\": string,\n \"mail\": string,\n \"cognome\": string,\n \"flagVisibilitaCellulare\": string,\n \"qualifica\": string,\n \"codiceUnita\": string,\n \"nome\": string,\n \"codiceFiscale\": string,\n \"pec\": string,\n \"numeroCellularePrivato\": string,\n \"descrizioneUnita\": string,\n \"utenteHr\": string,\n \"netFax\": string,\n \"numeroCellulare\": string,\n \"matricola\": string,\n \"livello\": string,\n \"numeroBreve\": string,\n \"numeroTelefono\": string\n}\n\nexport interface InfoDipendente {\n\n matricola?: string,\n nome?: string,\n cognome?: string,\n\n /**\n * Immagine della foto del dipendente codificata in base64\n */\n foto?: string\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {DomSanitizer, SafeScript} from \"@angular/platform-browser\";\nimport {HttpClient} from \"@angular/common/http\";\n\nconst DEFAULT_URL = '/cs/internet/headersecondariointranet.html';\n\n/**\n * Il componente renderizza il menu intranet.\n * E' possibile passare al componente uno specifico frammento html da visualizzare o\n * indicare al componente una url da cui recuperare l'html.\n * Nal caso in cui il recupero dell'html non vada a buon fine il componente renderizza un html di default.\n * Il componente visualizzera' l'html seguendo la seguente priorita:\n * Html passato in input, recupero tramite url, html di default.\n */\n@Component({\n selector: 'inail-menu-intranet',\n templateUrl: './cs.internet.headersecondariointranet.html',\n styleUrls: ['./menu-intranet.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MenuIntranetComponent extends BaseComponent implements OnInit, OnChanges {\n\n // readonly DEFAULT_URL = '/cs/internet/integration/headersecondariointranet.html';\n // readonly DEFAULT_URL = '/cs/internet/headersecondariointranet.html';\n\n innerHtml: SafeScript;\n\n /**\n * Url da cui recuperare l'html del menu intranet.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/headersecondariointranet.html\n * del dominio (se passato) specificato tramite l'input domainUrl\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n @Input()\n url: string;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente per il recupero automatico dell'html dell'header secondario\n * e per la customizzazione degli href nell'html di default nel caso non venga passato\n * uno specifico html o non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n @Input()\n domainUrl: string;\n\n /**\n * Html da visualizzare\n */\n @Input()\n html: string;\n\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) {\n super()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // Il menu intranet viene recuperato da remoto solo se non viene\n // passato esplicitamente dall'esterno l'html da visualizzare\n if (changes && changes.url && changes.url.currentValue && !changes.html.currentValue) {\n\n if (changes.url.firstChange) {\n\n this.emitDebug('Inizializzazione Menu intranet');\n }\n\n this.recupera();\n }\n }\n\n ngOnInit() {\n\n if (!this.domainUrl) {\n\n this.domainUrl = '';\n }\n\n if (this.html) {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(this.html);\n } else if (!this.url) {\n\n this.emitDebug('Inizializzazione Menu intranet');\n this.emitDebug('Url Menu intranet non specificato');\n\n this.url = this.domainUrl + DEFAULT_URL;\n\n this.recupera();\n }\n }\n\n recupera() {\n this.emitDebug(\"Recupero menu intranet da: \" + this.url);\n\n this.http.get(this.url, {responseType: 'text'})\n\n .subscribe(\n (menu: string) => {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(menu);\n\n this.emitDebug('Menu intranet recuperato!');\n },\n err => {\n this.innerHtml = undefined;\n this.emitError(\"Errore nel recupero del Menu intranet\");\n this.emitError(err);\n this.emitWarn(\"Visualizzazione Menu intranet di default\");\n },\n () => {\n this.emitDebug('Menu intranet inizializzato!');\n }\n );\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {toggleMenuNavigazioneSecondaria} from \"../trigger-slider-menu-button/trigger-slider-menu-button.component\";\n\n@Component({\n selector: 'inail-navigazione-secondaria',\n templateUrl: './navigazione-secondaria.component.html',\n styleUrls: ['./navigazione-secondaria.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NavigazioneSecondariaComponent implements OnInit, AfterViewInit {\n\n @ViewChild('sidebarInferiore')\n sidebarInferiore: ElementRef;\n\n visualizzaSidebarInferiore: boolean = true;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n close() {\n\n toggleMenuNavigazioneSecondaria()\n }\n\n visualizza() {\n\n return this.sidebarInferiore.nativeElement.childeNodes.length > 0;\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {this.visualizzaSidebarInferiore = this.sidebarInferiore.nativeElement.childElementCount > 0;});\n }\n}\n","import {Component, ContentChildren, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, QueryList, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {PagedTableRendererComponent, Pagination} from \"../paged-table-renderer/paged-table-renderer.component\";\nimport {ResponsiveElementComponent} from \"../responsive-element/responsive-element.component\";\nimport {ThLabelComponent} from \"../th-label/th-label.component\";\nimport {Observable} from \"rxjs\";\n\n@Component({\n selector: 'inail-paged-table',\n templateUrl: './paged-table.component.html',\n styleUrls: ['./paged-table.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PagedTableComponent extends ResponsiveElementComponent implements OnInit, OnChanges {\n\n // Obbligatorio se paginazione INTERNA\n @Input()\n elements: any[];\n\n // Obbligatorio se paginazione INTERNA\n @Input()\n subset: any[];\n\n // Obbligatorio se paginazione INTERNA: Da usare in 2-way-data-binding\n @Output()\n subsetChange = new EventEmitter<any[]>();\n\n // Solo per paginazione interna\n @Input()\n initialSort: SortInfo;\n\n // Obbligatorio se paginazione ESTERNA\n @Input()\n paginationInfo: Pagination;\n\n // Da usare solamente in caso di paginazione INTERNA\n @Input()\n doPagination: Observable<Pagination>;\n\n @Input()\n pageSize: number\n\n @Input()\n recuperoInCorso: boolean;\n\n @Input()\n testoRecuperoInCorso: string;\n\n @Input()\n noItemsFound: boolean;\n\n @Input()\n noItemsFoundText: string;\n\n // Obbligatorio se paginazione ESTERNA\n @Output()\n pagination = new EventEmitter<Pagination>();\n\n @Input()\n tallRows: boolean;\n\n @Input()\n tabellaAlternativa: boolean;\n\n @Input()\n caption: string;\n\n @Input()\n descrizione: string;\n\n @Input()\n tableClass: string;\n\n @Input()\n titolo: string;\n\n @Input()\n disabilitaPaginazione: boolean;\n\n @Input()\n LinkDettagli: string;\n\n @Output()\n clickLinkDettagli = new EventEmitter<any[]>();\n\n @ViewChild(PagedTableRendererComponent)\n pagedTableRendererComponent: PagedTableRendererComponent;\n\n @ContentChildren(ThLabelComponent, {descendants: true})\n thLabelComponents: QueryList<ThLabelComponent>;\n\n @ViewChild('baseFooter')\n baseFooter: ElementRef;\n\n visualizzaBaseFooter: boolean = true;\n\n numeroColonne: number;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // console.warn('changes', changes)\n\n if (changes && changes.noItemsFound && changes.noItemsFound.currentValue === true) {\n\n // @ts-ignore\n setTimeout(() => this.numeroColonne = $(`#${this.id} th`).length);\n }\n\n // Se nella paginazione esterna viene specificata una proprieta di sorting\n // modifico il componente thLabel associato\n if (changes\n && changes.paginationInfo\n && changes.paginationInfo.currentValue\n && this.paginationInfo\n && this.paginationInfo.sortProperty) {\n\n // console.warn('>>>>>>>', this.paginationInfo, this.thLabelComponents)\n\n if (this.thLabelComponents) {\n\n let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == this.paginationInfo.sortProperty);\n this.pagedTableRendererComponent.setSortDirection(thLabel, this.paginationInfo.sortDirection as ('asc' | 'desc'));\n }\n }\n\n // In caso di paginazione interna se specificato un ordinamento iniziale\n if(!this.paginationInfo\n && changes\n && changes.initialSort\n && changes.initialSort.currentValue\n && this.initialSort) {\n\n this.impostaOrdinamentoIniziale();\n }\n }\n\n ngOnInit() {\n\n if (this.tallRows == undefined) {\n\n this.tallRows = false;\n }\n\n if (this.tabellaAlternativa == undefined) {\n\n this.tabellaAlternativa = false;\n }\n }\n\n ngAfterViewInit(): void {\n\n // console.warn('pagedTableRendererComponent', this.pagedTableRendererComponent)\n // console.warn('thLabelComponents', this.thLabelComponents)\n\n // setTimeout(() => {\n // console.warn('thLabelComponents ST', this.thLabelComponents)\n // });\n\n setTimeout(() => {\n this.visualizzaBaseFooter = this.baseFooter.nativeElement.childElementCount > 0;\n });\n\n if (this.pagedTableRendererComponent) {\n\n this.pagedTableRendererComponent.inizializzaTabella(this.thLabelComponents);\n this.pagedTableRendererComponent.lookAtThLabel(this.thLabelComponents);\n }\n\n // Se nella paginazione esterna viene specificata una proprieta di sorting\n // modifico il componente thLabel associato\n if (this.paginationInfo && this.paginationInfo.sortProperty) {\n\n if (this.thLabelComponents) {\n\n let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == this.paginationInfo.sortProperty);\n this.pagedTableRendererComponent.setSortDirection(thLabel, this.paginationInfo.sortDirection as ('asc' | 'desc'));\n }\n }\n\n // In caso di paginazione interna se specificato un ordinamento iniziale\n if(!this.paginationInfo && this.initialSort) {\n\n this.impostaOrdinamentoIniziale();\n }\n }\n\n impostaOrdinamentoIniziale() {\n\n if (this.thLabelComponents) {\n\n this.thLabelComponents.forEach(thLabel => {\n\n if(thLabel.property == this.initialSort.sortProperty) {\n\n this.pagedTableRendererComponent.setSortDirection(thLabel, this.initialSort.sortDirection as ('asc' | 'desc'));\n }\n else {\n\n this.pagedTableRendererComponent.setSortDirection(thLabel, undefined);\n }\n });\n }\n }\n\n subsetOnChange(list: any[]) {\n\n setTimeout(() => {\n\n this.subsetChange.emit(list);\n });\n }\n\n getNumeroColonne(): number {\n\n // @ts-ignore\n return $(`#${this.id} th`).length;\n }\n}\n\nexport class SortInfo {\n\n sortProperty?: string;\n sortDirection?: string;\n}\n","import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isNotEmptyOrNull} from \"../../../../utils/Util\";\n\n@Component({\n selector: 'inail-file-upload',\n templateUrl: './inail-file-upload.component.html',\n styleUrls: ['./inail-file-upload.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InailFileUploadComponent extends FormElementComponent implements OnInit {\n\n @ViewChild(\"inputTypeFile\")\n inputTypeFile: ElementRef;\n @Input()\n placeholder: string;\n @Input()\n description: string;\n @Input()\n chooseButtonText: string = 'Scegli il file';\n @Input()\n submitButtonText: string = 'aggiungi';\n @Input()\n submitButton: boolean = true;\n /** Estensioni accettate separate da uno spazio (esempio: \".pdf .txt .doc\") */\n @Input()\n accept: string;\n @Output()\n uploadFile = new EventEmitter<File>();\n\n fileModel: File;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n promptUpload() {\n document.getElementById(this.id).click();\n }\n\n changeModel($event: Event) {\n\n // @ts-ignore\n this.fileModel = $event.target.files && $event.target.files[0];\n\n if(!this.submitButton) {\n this.uploadFile.emit(this.fileModel);\n }\n }\n\n reset() {\n\n this.fileModel = undefined;\n this.uploadFile.emit(undefined);\n this.inputTypeFile.nativeElement.value = '';\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {ActivatedRoute, Router} from \"@angular/router\";\n\n@Component({\n selector: 'inail-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BreadcrumbComponent implements OnInit, OnChanges {\n\n @Input()\n paginaCorrente: PaginaApplicativa;\n\n @Input()\n steps: BreadCrumbStep[];\n\n constructor(private activatedRoute: ActivatedRoute,\n public router: Router) {\n\n }\n\n ngOnChanges(changes: BreadcrumbChanges) {\n\n if (changes.paginaCorrente) {\n\n setTimeout(() => {\n this.buildBreadCrumb(changes.paginaCorrente.currentValue);\n })\n }\n }\n\n ngOnInit() {\n }\n\n buildBreadCrumb(pagina: PaginaApplicativa) {\n\n if (pagina != undefined) {\n\n const genealogicalTree: PaginaApplicativa[] = this.getGenealogicalTree(pagina);\n\n if (genealogicalTree) {\n\n this.steps = genealogicalTree.map((pagina: PaginaApplicativa): BreadCrumbStep => {\n\n return {label: pagina.titolo, url: pagina.url};\n });\n }\n }\n }\n\n private getParentsList(pagina: PaginaApplicativa): PaginaApplicativa[] {\n\n let parents: PaginaApplicativa[];\n\n if (pagina) {\n\n parents = this.getGenealogicalTree(pagina.parent);\n }\n\n return parents;\n }\n\n private getGenealogicalTree(pagina: PaginaApplicativa): PaginaApplicativa[] {\n\n let genealogicalTree: PaginaApplicativa[];\n\n if (pagina) {\n\n genealogicalTree = this.getGenealogicalTree(pagina.parent);\n genealogicalTree.push(pagina);\n\n } else {\n genealogicalTree = [];\n }\n\n return genealogicalTree;\n }\n\n onClick(url: string) {\n\n this.router.navigateByUrl(url);\n }\n}\n\nexport interface BreadCrumbStep {\n label: string;\n url: string;\n}\n\nexport interface PaginaApplicativa {\n\n titolo: string;\n url: string;\n parent: PaginaApplicativa;\n}\n\ninterface BreadcrumbChanges extends SimpleChanges {\n\n paginaCorrente: BreadcrumbChange;\n}\n\ninterface BreadcrumbChange extends SimpleChange {\n\n currentValue: PaginaApplicativa;\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {DateUtil} from \"../../../../utils/DateUtil\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {NgbDateStruct} from \"@ng-bootstrap/ng-bootstrap\";\n\nexport type DateFormat = 'RFC3339' | 'IT'; // ISO8601\n\ninterface DatePickerChanges extends SimpleChanges {\n\n data: SimpleChange;\n}\n\n@Component({\n selector: 'inail-input-date',\n templateUrl: './input-date.component.html',\n styleUrls: ['./input-date.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputDateComponent extends FormElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @ViewChild('input')\n protected input: ElementRef;\n\n visibleData: string;\n\n changed: boolean;\n\n @Output()\n dataChange = new EventEmitter<string>();\n\n @Input()\n modelFormat: DateFormat;\n\n @Input()\n datepickerOptions: any;\n\n @Input()\n enabledDates: string[];\n\n @Input()\n disabledDates: string[];\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: DatePickerChanges) {\n\n // console.warn('changes', changes)\n\n if (changes.data && !changes.data.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n ngOnInit() {\n // console.warn('ngOnInit')\n\n if (!this.datepickerOptions) {\n\n this.datepickerOptions = {\n autoclose: true,\n format: 'dd/mm/yyyy',\n weekStart: 1,\n todayBtn: 'linked',\n language: 'it',\n todayHighlight: true,\n orientation: 'auto top',\n enableOnReadonly: false\n };\n }\n\n if ((this.disabledDates != undefined && this.disabledDates.length > 0)\n || (this.enabledDates != undefined && this.enabledDates.length > 0)) {\n\n this.datepickerOptions.beforeShowDay = this.isEnabledDate\n }\n }\n\n private isEnabledDate = (date) => {\n\n // @ts-ignore\n var dateString = $.datepicker.formatDate('yy-mm-dd', date);\n // console.warn(dateString)\n return this.isDataAbilitata(dateString) && !this.isDataDisabilitata(dateString);\n };\n\n private isDataAbilitata = (data: string) => this.enabledDates == undefined || !this.enabledDates.length || this.enabledDates.some(regex => this.match(data, regex) != undefined);\n private isDataDisabilitata = (data: string) => this.disabledDates != undefined && this.disabledDates.some(regex => this.match(data, regex) != undefined);\n\n match = (date: string, regex: string) => date != undefined && date.match(new RegExp('^'.concat(regex).concat('$'), 'i'));\n\n ngAfterViewInit(): void {\n\n // console.info('ngAfterViewInit', this.dataValue)\n\n // Inizializzazione della libreria datepicker\n window['$'](this.input.nativeElement).datepicker(this.datepickerOptions);\n\n if (this.visibleData && DateUtil.isDate(this.visibleData)) {\n\n // window['$'](this.input.nativeElement).datepicker('setDate', this.visibleData);\n this.setDatepickerDate(this.visibleData)\n }\n\n setTimeout(() => {\n\n // @ts-ignore\n // console.warn('elem', this.id, $('#' + this.id))\n\n // @ts-ignore\n $('#' + this.id).on(\"change\", () => {\n\n // console.warn('elem on change', this.id)\n\n // @ts-ignore\n let elem = $('#' + this.id)[0]\n // console.warn('elem', this.id, elem)\n // console.info('CHANGE', this.visibleData, elem.value)\n\n if (elem != undefined && elem.value != this.visibleData) {\n\n // console.info('modifica', this.visibleData, elem.value)\n this.data = elem.value;\n }\n });\n });\n\n if (this.showPopover()) {\n\n // @ts-ignore\n $(`#${this.id}-popover`).popover();\n }\n }\n\n @Input()\n set data(val) {\n\n // console.warn('set data', val)\n\n let validFormat = isValidInputFormat(val);\n\n // console.warn('validFormat', validFormat)\n\n if (isNotEmptyOrNull(val)) {\n\n this.visibleData = validFormat ? DateUtil.toItalianFormat(val) : val;\n } else {\n\n this.visibleData = undefined\n }\n\n // console.warn('visibleData', this.visibleData)\n\n setTimeout(() => {\n\n // let dChange = validFormat ? reformat(this.visibleData, \"RFC3339\") : this.visibleData\n // console.warn('dataChange', dChange)\n\n this.dataChange.emit(validFormat ? reformat(this.visibleData, \"RFC3339\") : this.visibleData);\n\n if (validFormat) {\n\n this.setDatepickerDate(this.visibleData);\n }\n });\n }\n\n @Input()\n set _data(val) {\n\n // console.info('set data', val)\n // console.info('this.visibleData', this.visibleData)\n\n // if (val != this.visibleData) {\n if (true) {\n\n // console.info('inner')\n\n let validFormat: boolean = isValidInputFormat(val);\n\n // Se il formato non e' valido\n // ma il valore ricevuto rappresenta comunque\n // un oggetto data valido\n if (!validFormat && DateUtil.isValidDateObject(DateUtil.toDateObject(val))) {\n\n val = reformat(val); // TODO da rivedere\n validFormat = true;\n }\n\n // console.info('validFormat', validFormat)\n // console.info('visibleData prima', this.visibleData)\n\n if (isNotEmptyOrNull(val)) {\n\n this.visibleData = validFormat ? reformat(val, \"IT\") : (this.visibleData || val);\n } else {\n\n this.visibleData = undefined\n }\n\n // console.info('visibleData dopo', this.visibleData)\n\n setTimeout(() => {\n\n // console.info('emit data')\n\n this.dataChange.emit(validFormat ? reformat(this.visibleData, \"RFC3339\") : this.visibleData);\n\n if (validFormat) {\n\n this.setDatepickerDate(this.visibleData);\n }\n });\n }\n }\n\n get isValid(): boolean {\n\n return isEmptyOrNull(this.visibleData)\n || (DateUtil.isInItalianFormat(this.visibleData) && DateUtil.isValidDate(this.visibleData));\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n checkError(): boolean {\n\n return !this.isValid || this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n getDescError(): string {\n\n return (isEmptyOrNull(this.descError) && !this.isValid)\n ? 'La data inserita non è valida'\n : this.descError;\n }\n\n onChange($event: any) {\n\n // console.warn('onChange', $event.target.value)\n this.data = $event.target.value;\n\n // setTimeout(() => {\n // this.data = $event.target.value;\n // }, 200);\n }\n\n private setDatepickerDate(date: string) {\n\n // console.warn('setDatepickerDate', date)\n\n window['$'](this.input.nativeElement).datepicker('setDate', date);\n }\n}\n\nconst isLongTime = (o: any) => {\n\n // return o && (typeof o === 'number') && o.toString().length == 13;\n return o && (typeof o === 'number');\n}\n\nconst isValidInputFormat = (s: string) => {\n\n return DateUtil.isInItalianFormat(s) || DateUtil.isInISO8601Format(s) || isLongTime(s);\n}\n\nconst toNgbDateStruct = (s: string): NgbDateStruct => {\n\n let date: NgbDateStruct = null;\n\n if (s) {\n\n let dateObj = DateUtil.toDateObject(s.trim ? s.trim() : s);\n\n date = {year: dateObj.getFullYear(), month: dateObj.getMonth() + 1, day: dateObj.getDate()};\n }\n\n return date;\n}\n\n/**\n * Riformatta la stringa nel formato specificato\n *\n * @param s\n * @param dateFormat\n */\nconst reformat = (s: string, dateFormat?: DateFormat): string => {\n\n let data: string = null;\n let dateObj: NgbDateStruct = toNgbDateStruct(s);\n\n // console.info('dateObj', dateObj)\n\n if (dateObj) {\n\n data = dateFormat && dateFormat == \"IT\" ? toItalianFormatString(dateObj) : toRFC3339FormatString(dateObj);\n }\n\n // console.info('data', data)\n\n return data;\n}\n\nconst toItalianFormatString = (date: NgbDateStruct): string => {\n\n let s: string = null;\n\n if (date) {\n s = pad(date.day) + '/' + pad(date.month) + '/' + date.year;\n }\n\n return s;\n}\n\nconst toRFC3339FormatString = (date: NgbDateStruct): string => {\n\n let s: string = null;\n\n if (date) {\n s = pad(date.year) + '-' + pad(date.month) + '-' + pad(date.day);\n }\n\n return s;\n}\n\nconst pad = (n: number): string => {\n\n return n ? ((n < 10 ? '0' : '') + n) : '';\n}\n","import {AfterViewInit, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\n@Component({\n selector: 'inail-page-title',\n templateUrl: './page-title.component.html',\n styleUrls: ['./page-title.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PageTitleComponent extends BasicUxElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n titolo: string;\n\n @Input()\n spanTitolo: string;\n\n @Input()\n spanClass: string;\n\n @Input()\n getFocus: boolean = true;\n\n @ViewChild('divTitolo') divTitolo;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n\n this.catchFocus();\n }\n\n catchFocus() {\n\n // console.warn('catchFocus', this.getFocus, document.activeElement)\n\n // Il secondo controllo serve ad evitare che al primo accesso\n // all'applicazione il focus vada sul titolo invece che\n // sul primo elemento del documento\n if (this.getFocus\n && (document.activeElement == undefined\n || document.activeElement.id != 'logo-inail-header')) {\n\n // console.warn('catchFocus 2')\n\n setTimeout(() => {\n\n // console.warn('catchFocus 3', this.divTitolo.nativeElement)\n\n this.divTitolo.nativeElement.focus();\n this.emitDebug(\"Focus impostato su elemento titolo: \");\n this.emitDebug(this.divTitolo.nativeElement);\n }, 500);\n\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // console.warn('loader-overlay = 0') // todo togliere\n //\n // this.divTitolo.nativeElement.focus();\n // this.emitDebug(\"Focus impostato su elemento titolo: \");\n // this.emitDebug(this.divTitolo.nativeElement);\n // clearInterval(checkLoading);\n // }\n // }, 500);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes != undefined\n && changes.titolo != undefined\n && changes.titolo.currentValue != undefined\n && !changes.titolo.isFirstChange()) {\n\n this.catchFocus();\n }\n }\n}\n","import {Directive, ViewContainerRef} from '@angular/core';\n\n@Directive({\n selector: '[comment]'\n})\nexport class CommentDirective {\n\n constructor(private viewContainer: ViewContainerRef) {\n\n }\n\n ngOnInit() {\n\n this.viewContainer.clear();\n }\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isEmptyOrNull, isListNotEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {v4 as uuid} from 'uuid';\nimport {BehaviorSubject} from \"rxjs\";\n\n@Component({\n selector: 'inail-radio-select',\n templateUrl: './radio-select.component.html',\n styleUrls: ['./radio-select.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class RadioSelectComponent extends FormElementComponent implements OnInit, OnChanges {\n\n @Input()\n options: RadioSelectOption[];\n @Input()\n name: string;\n @Input()\n sort: \"ASC\" | \"DESC\";\n @Input()\n inline: boolean;\n\n valueValue: string;\n\n @Output()\n valueChange = new EventEmitter();\n\n // isChecked$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n // selctedOption$: BehaviorSubject<RadioSelectOption> = new BehaviorSubject<RadioSelectOption>(undefined);\n\n constructor() {\n\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes.options && changes.options.currentValue && this.options) {\n\n this.options.forEach(opt => {\n\n if (isEmptyOrNull(opt.id)) {\n\n opt.id = uuid();\n }\n })\n }\n\n if (this.sort) {\n\n let direction: number = \"ASC\" == this.sort.toUpperCase() ? 1 : \"DESC\" == this.sort.toUpperCase() ? -1 : 0;\n\n if (direction != 0 && this.options != undefined) {\n\n this.options.sort((a: RadioSelectOption, b: RadioSelectOption) => {\n return a.label < b.label ? -direction : a.label > b.label ? direction : 0\n });\n }\n }\n\n if (changes.value && !changes.value.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.valueValue)) {\n this.valueValue = '';\n }\n\n // setTimeout(() => {\n //\n // let optionSelected = this.options.find(opt => opt && opt.value === this.valueValue);\n //\n // if (optionSelected) {\n // this.selctedOption$.next(optionSelected)\n // }\n // })\n }\n\n @Input()\n get value() {\n return this.valueValue;\n }\n\n set value(val) {\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n static isValidOption(opzioniValide: RadioSelectOption[], opzioneScelta: string): boolean {\n\n return ((!opzioneScelta || opzioneScelta.length == 0)) || (isListNotEmptyOrNull(opzioniValide) &&\n\n opzioniValide.findIndex(element => {\n return element.value == opzioneScelta;\n }) >= 0);\n }\n\n radioOnChange(option: RadioSelectOption) {\n\n this.value = option ? option.value : undefined;\n // this.selctedOption$.next(option);\n }\n\n isChecked(option: RadioSelectOption) {\n\n return option && option.value == this.valueValue;\n }\n}\n\nexport class RadioSelectOption {\n id?: string;\n label: string;\n value: string;\n title?: string;\n class?: string;\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\n\nexport type Currency = 'EURO' | 'DOLLARS';\n\nconst CURRENCY_SYMBOL = {\n 'EURO': 'â¬',\n 'DOLLARS': '$'\n};\n\nconst NUMBERS_INPUTS: string[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\nconst ACCEPTED_INPUTS: string[] = [...NUMBERS_INPUTS, ',', '-', 'Backspace', 'Delete', 'Tab', 'ArrowLeft', 'ArrowRight'];\n\nconst CLEAN_VALUE_REGEX: RegExp = new RegExp(/[ $â¬]+/g);\nconst COMMA_REGEX: RegExp = new RegExp(/[,]/g);\nconst DOT_REGEX: RegExp = new RegExp(/[.]/g);\nconst THOUSANDS_REGEX: RegExp = new RegExp(/(\\d+)(\\d{3})/);\n\n@Component({\n selector: 'inail-input-money',\n templateUrl: './input-money.component.html',\n styleUrls: ['./input-money.component.css']\n})\nexport class InputMoneyComponent extends FormElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @ViewChild('formControl')\n formControlElement: ElementRef<HTMLInputElement>;\n\n @Input()\n max: number;\n @Input()\n min: number;\n @Input()\n numberOfDecimals: number = 2;\n @Input()\n placeholder: string;\n @Input()\n preventPasting: boolean = false;\n @Input()\n currency: Currency = 'EURO';\n @Input()\n selfValidation: boolean = true;\n @Input()\n selfValidationError: string = 'Importo non valido';\n @Input()\n showThousandsSeparator: boolean = true;\n // @Input()\n // decimalSeparatorSymbol: ',' | '.' = getConfigValue(this.libConfig?.inputMoneyComponent?.decimalSeparatorSymbol, ',');\n // @Input()\n // thousandsSeparatorSymbol: ',' | '.' = getConfigValue(this.libConfig?.inputMoneyComponent?.thousandsSeparatorSymbol, '.');\n\n @Output()\n valueChange: EventEmitter<number> = new EventEmitter<number>();\n\n numberValue: number;\n inputValue: string;\n selfValidationErrorMsg: string;\n\n getCurrencySymbol = (): string => CURRENCY_SYMBOL[this.currency];\n getCleanedValue = (s: string): string => s ? s.replace(CLEAN_VALUE_REGEX, '') : '';\n\n getNumberValue = (s: string): number => {\n let v: string = this.getCleanedValue(s).replace(COMMA_REGEX, '.');\n return parseFloat(v);\n };\n\n isNotBlankOrUndefined = (value: string): boolean => isNotEmptyOrNull(value) && value != 'undefined' && value != 'null';\n\n checkError = (): boolean => this.hasError || isNotEmptyOrNull(this.descError);\n checkDescError = (): boolean => this.checkError() && isNotEmptyOrNull(this.getDescError());\n getDescError = (): string => this.descError;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n }\n\n @Input()\n set value(value: number) {\n\n this.emitDebug(`@Input set value: ${this.numberValue} -> ${value}`);\n this.inputValue = value != undefined ? `${value}` : '';\n this.setValue(this.inputValue);\n }\n\n writeValue(value: number): void {\n\n this.emitDebug(`writeValue: ${value}`);\n this.inputValue = value != undefined ? `${value}` : '';\n this.setValue(this.inputValue);\n }\n\n set inputTextValue(value: string) {\n\n this.emitDebug(`set inputTextValue: ${this.inputValue} -> ${value}`);\n this.inputValue = value;\n this.setValue(this.inputValue);\n }\n\n get inputTextValue(): string {\n\n return this.inputValue;\n }\n\n private setValue(value: string) {\n\n this.emitDebug(`setValue: ${value}`);\n let nextNumberValue: number;\n\n if (this.isNotBlankOrUndefined(value)) {\n\n nextNumberValue = this.getNumberValue(value);\n\n // Se value e' un numero\n if (!isNaN(nextNumberValue)) {\n\n if (this.min != undefined && nextNumberValue < this.min) {\n\n nextNumberValue = this.min;\n\n } else if (this.max != undefined && nextNumberValue > this.max) {\n\n nextNumberValue = this.max;\n }\n }\n // Il valore inserito nell'input text non e' un numero\n else {\n\n nextNumberValue = undefined;\n\n if (this.selfValidation) {\n\n this.selfValidationErrorMsg = `${this.selfValidationError}`;\n }\n }\n\n } else {\n nextNumberValue = undefined;\n this.selfValidationErrorMsg = undefined;\n }\n\n if (this.cleanErrorOnChange) {\n\n this.cleanError();\n }\n\n if (nextNumberValue != this.numberValue) {\n\n this.numberValue = nextNumberValue;\n this.valueChange.emit(this.numberValue);\n }\n\n this.impostaValoreVisibile();\n }\n\n impostaValoreVisibile() {\n\n if (this.numberValue != undefined) {\n\n let nextInputValue: string = `${this.numberValue}`.replace(DOT_REGEX, ',');\n\n if (!this.hasFocus()) {\n\n let a: string[] = nextInputValue.split(',');\n\n if(this.showThousandsSeparator) {\n while (THOUSANDS_REGEX.test(a[0])) {\n a[0] = a[0].replace(THOUSANDS_REGEX, `$1.$2`);\n }\n }\n\n if (this.numberOfDecimals > 0) {\n let decimals = `${a[1] != undefined ? a[1] : ''}000000000000000000000`;\n a[1] = decimals.substring(0, this.numberOfDecimals);\n nextInputValue = a.join(',');\n } else {\n nextInputValue = a[0];\n }\n }\n\n this.inputValue = `${nextInputValue} ${!this.hasFocus() ? this.getCurrencySymbol() : ''}`.trim();\n }\n }\n\n onFocusIn() {\n\n this.impostaValoreVisibile();\n }\n\n onFocusOut() {\n\n this.impostaValoreVisibile();\n }\n\n isWrongMinus = (ev: KeyboardEvent) => ev.key == '-' && (isEmptyOrNull(this.inputValue) || this.inputValue.indexOf('-') > 0);\n isWrongComma = (ev: KeyboardEvent) => ev.key == ',' && (isEmptyOrNull(this.inputValue) || this.inputValue.indexOf(',') > 0);\n isCommaWithNoDecimals = (ev: KeyboardEvent) => ev.key == ',' && this.numberOfDecimals <= 0;\n\n isMaximumNumberOfDecimalsReached(ev): boolean {\n let v: string = this.getCleanedValue(this.inputValue);\n return NUMBERS_INPUTS.some(v => v === ev.key) && v != undefined && v.indexOf(',') > 0 && v.split(',')[1].length >= this.numberOfDecimals;\n }\n\n isWrongDigit = (ev: KeyboardEvent) => !ACCEPTED_INPUTS.some(v => v === ev.key)\n || this.isWrongMinus(ev)\n || this.isWrongComma(ev)\n || this.isCommaWithNoDecimals(ev)\n || this.isMaximumNumberOfDecimalsReached(ev);\n\n onKeyDown(ev: KeyboardEvent) {\n\n if (this.isWrongDigit(ev)) {\n\n ev.preventDefault();\n }\n }\n\n onPaste($event: ClipboardEvent) {\n\n if (this.preventPasting === true) {\n\n $event.preventDefault();\n }\n }\n\n ngOnDestroy(): void {\n\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule, DecimalPipe} from '@angular/common';\nimport {NgInailCommonComponent} from './ng-inail-common.component';\nimport {AccordionComponent} from './components/ux/accordion/accordion.component';\nimport {CheckboxComponent} from \"./components/ux/checkbox/checkbox.component\";\nimport {ConfirmComponent} from \"./components/ux/confirm/confirm.component\";\nimport {DatePickerComponent} from \"./components/ux/date-picker/date-picker.component\";\nimport {FeedbackComponent} from \"./components/ux/feedback/feedback.component\";\nimport {InputTextComponent} from \"./components/ux/input-text/input-text.component\";\nimport {BasicUxElementComponent} from './components/ux/basic-ux-element/basic-ux-element.component';\nimport {FormElementComponent} from './components/ux/form-element/form-element.component';\nimport {ResponsiveElementComponent} from './components/ux/responsive-element/responsive-element.component';\nimport {SelectComponent} from \"./components/ux/select/select.component\";\nimport {TextareaComponent} from \"./components/ux/textarea/textarea.component\";\nimport {ThLabelComponent} from \"./components/ux/th-label/th-label.component\";\nimport {TablePageLengthSelectorComponent} from \"./components/ux/table-page-length-selector/table-page-length-selector.component\";\nimport {TablePageSelectorComponent} from \"./components/ux/table-page-selector/table-page-selector.component\";\nimport {PagedTableRendererComponent} from \"./components/ux/paged-table-renderer/paged-table-renderer.component\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {NgbModule} from \"@ng-bootstrap/ng-bootstrap\";\nimport {InputDateRangeComponent} from './components/ux/input-date-range/input-date-range.component';\nimport {TabPaneComponent} from './components/ux/tab-pane/tab-pane.component';\nimport {TabGroupComponent} from './components/ux/tab-group/tab-group.component';\nimport {InailWizardComponent} from './components/ux/inail-wizard/inail-wizard.component';\nimport {TextEditorComponent} from './components/ux/text-editor/text-editor.component';\nimport {FormGreyComponent} from './components/ux/form-grey/form-grey.component';\nimport {SelectorComponent} from './components/ux/selector/selector.component';\nimport {ModalComponent} from './components/ux/modal/modal.component';\nimport {AlertComponent} from './components/ux/alert/alert.component';\nimport {InputNumberComponent} from './components/ux/input-number/input-number.component';\nimport {InailLayoutComponent} from './components/ux/layout/inail-layout/inail-layout.component';\nimport {LoaderComponent} from './components/ux/layout/loader/loader.component';\nimport {HeaderComponent} from './components/ux/layout/header/header.component';\nimport {NavigazioneInternaComponent} from './components/ux/layout/navigazione-interna/navigazione-interna.component';\nimport {TriggerSliderMenuButtonComponent} from './components/ux/layout/trigger-slider-menu-button/trigger-slider-menu-button.component';\nimport {FooterComponent} from './components/ux/layout/footer/footer.component';\nimport {BaseComponent} from './components/base/base.component';\nimport {NavigazionePrincipaleComponent} from './components/ux/layout/navigazione-principale/navigazione-principale.component';\nimport {NavigazioneUtenteComponent} from './components/ux/layout/navigazione-utente/navigazione-utente.component';\nimport {MenuIntranetComponent} from './components/ux/layout/menu-intranet/menu-intranet.component';\nimport {NavigazioneSecondariaComponent} from './components/ux/layout/navigazione-secondaria/navigazione-secondaria.component';\nimport {PagedTableComponent} from \"./components/ux/paged-table/paged-table.component\";\nimport {InailFileUploadComponent} from './components/ux/inail-file-upload-component/inail-file-upload.component';\nimport {MenuComponent} from './components/ux/menu/menu.component';\nimport {RouterModule} from \"@angular/router\";\nimport {BreadcrumbComponent} from './components/ux/breadcrumb/breadcrumb.component';\nimport {ButtonComponent} from './components/ux/button/button.component';\nimport {InputDateComponent} from './components/ux/input-date/input-date.component';\nimport {PageTitleComponent} from './components/ux/page-title/page-title.component';\nimport {CommentDirective} from './directives/comment.directive';\nimport {RadioSelectComponent} from './components/ux/radio-select/radio-select.component';\nimport {ContentComponent} from './components/ux/content/content.component';\nimport { InputMoneyComponent } from './components/ux/input-money/input-money.component';\n\n@NgModule({\n declarations: [\n NgInailCommonComponent,\n AccordionComponent,\n CheckboxComponent,\n ConfirmComponent,\n DatePickerComponent,\n FeedbackComponent,\n InputTextComponent,\n BasicUxElementComponent,\n FormElementComponent,\n ResponsiveElementComponent,\n SelectComponent,\n TextareaComponent,\n ThLabelComponent,\n TablePageLengthSelectorComponent,\n TablePageSelectorComponent,\n PagedTableRendererComponent,\n InputDateRangeComponent,\n TabPaneComponent,\n TabGroupComponent,\n InailWizardComponent,\n TextEditorComponent,\n FormGreyComponent,\n SelectorComponent,\n ModalComponent,\n AlertComponent,\n InputNumberComponent,\n InailLayoutComponent,\n LoaderComponent,\n HeaderComponent,\n NavigazioneInternaComponent,\n TriggerSliderMenuButtonComponent,\n FooterComponent,\n BaseComponent,\n NavigazionePrincipaleComponent,\n NavigazioneUtenteComponent,\n MenuIntranetComponent,\n NavigazioneSecondariaComponent,\n PagedTableComponent,\n InailFileUploadComponent,\n MenuComponent,\n BreadcrumbComponent,\n ButtonComponent,\n InputDateComponent,\n PageTitleComponent,\n CommentDirective,\n RadioSelectComponent,\n ContentComponent,\n InputMoneyComponent\n ],\n imports: [\n FormsModule,\n CommonModule,\n NgbModule,\n RouterModule,\n ReactiveFormsModule\n ],\n providers: [DecimalPipe],\n exports: [\n NgInailCommonComponent,\n AccordionComponent,\n CheckboxComponent,\n ConfirmComponent,\n DatePickerComponent,\n FeedbackComponent,\n InputTextComponent,\n SelectComponent,\n TextareaComponent,\n ThLabelComponent,\n TablePageLengthSelectorComponent,\n TablePageSelectorComponent,\n PagedTableRendererComponent,\n InputDateRangeComponent,\n TabGroupComponent,\n TabPaneComponent,\n InailWizardComponent,\n TextEditorComponent,\n FormGreyComponent,\n SelectorComponent,\n ModalComponent,\n AlertComponent,\n InputNumberComponent,\n InailLayoutComponent,\n PagedTableComponent,\n InailFileUploadComponent,\n MenuComponent,\n BreadcrumbComponent,\n ButtonComponent,\n InputDateComponent,\n PageTitleComponent,\n RadioSelectComponent,\n ContentComponent,\n BaseComponent,\n InputMoneyComponent\n ]\n})\nexport class NgInailCommonModule {\n}\n"],"names":["Injectable","Component","ViewEncapsulation","EventEmitter","Output","Input","tslib_1.__extends","uuid","isFunction","ViewChild","NgbDatepickerI18n","NgbDateAdapter","NgbDateParserFormatter","NgbDatepickerConfig","ElementRef","ChangeDetectorRef","Renderer2","ContentChildren","ViewChildren","KEYCODE_TAB","router","filter","NavigationEnd","Router","http","HttpClient","HostListener","DomSanitizer","DEFAULT_URL","HttpHeaders","tap","ActivatedRoute","Directive","ViewContainerRef","NgModule","FormsModule","CommonModule","NgbModule","RouterModule","ReactiveFormsModule","DecimalPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-inail-common.umd.js.map","sources":["ng://ng-inail-common/lib/ng-inail-common.service.ts","ng://ng-inail-common/lib/ng-inail-common.component.ts","node_modules/tslib/tslib.es6.js","ng://ng-inail-common/lib/components/base/base.component.ts","ng://ng-inail-common/lib/components/ux/basic-ux-element/basic-ux-element.component.ts","ng://ng-inail-common/lib/components/ux/accordion/accordion.component.ts","ng://ng-inail-common/utils/Util.ts","ng://ng-inail-common/lib/components/ux/responsive-element/responsive-element.component.ts","ng://ng-inail-common/lib/components/ux/form-element/form-element.component.ts","ng://ng-inail-common/lib/components/ux/checkbox/checkbox.component.ts","ng://ng-inail-common/lib/components/ux/confirm/confirm.component.ts","ng://ng-inail-common/utils/DateUtil.ts","ng://ng-inail-common/lib/components/ux/date-picker/date-picker.component.ts","ng://ng-inail-common/lib/components/ux/feedback/feedback.component.ts","ng://ng-inail-common/lib/components/ux/input-text/input-text.component.ts","ng://ng-inail-common/lib/components/ux/select/select.component.ts","ng://ng-inail-common/lib/components/ux/textarea/textarea.component.ts","ng://ng-inail-common/lib/components/ux/th-label/th-label.component.ts","ng://ng-inail-common/lib/components/ux/table-page-length-selector/table-page-length-selector.component.ts","ng://ng-inail-common/lib/components/ux/table-page-selector/table-page-selector.component.ts","ng://ng-inail-common/lib/components/ux/paged-table-renderer/paged-table-renderer.component.ts","ng://ng-inail-common/lib/components/ux/input-date-range/input-date-range.component.ts","ng://ng-inail-common/lib/components/ux/tab-pane/tab-pane.component.ts","ng://ng-inail-common/lib/components/ux/tab-group/tab-group.component.ts","ng://ng-inail-common/lib/components/ux/content/content.component.ts","ng://ng-inail-common/lib/components/ux/inail-wizard/inail-wizard.component.ts","ng://ng-inail-common/lib/components/ux/text-editor/text-editor.component.ts","ng://ng-inail-common/lib/components/ux/form-grey/form-grey.component.ts","ng://ng-inail-common/lib/components/ux/selector/selector.component.ts","ng://ng-inail-common/lib/components/ux/modal/modal.component.ts","ng://ng-inail-common/lib/components/ux/alert/alert.component.ts","ng://ng-inail-common/lib/components/ux/input-number/input-number.component.ts","ng://ng-inail-common/lib/components/ux/menu/menu.component.ts","ng://ng-inail-common/webkit-resources.ts","ng://ng-inail-common/lib/components/ux/layout/layout-common-config.ts","ng://ng-inail-common/lib/components/ux/button/button.component.ts","ng://ng-inail-common/lib/components/ux/layout/inail-layout/inail-layout.component.ts","ng://ng-inail-common/lib/components/ux/layout/loader/loader.component.ts","ng://ng-inail-common/lib/components/ux/layout/header/header.component.ts","ng://ng-inail-common/lib/components/ux/layout/navigazione-interna/navigazione-interna.component.ts","ng://ng-inail-common/lib/components/ux/layout/trigger-slider-menu-button/trigger-slider-menu-button.component.ts","ng://ng-inail-common/lib/components/ux/layout/footer/footer.component.ts","ng://ng-inail-common/lib/components/ux/layout/navigazione-principale/navigazione-principale.component.ts","ng://ng-inail-common/lib/components/ux/layout/navigazione-utente/navigazione-utente.component.ts","ng://ng-inail-common/lib/components/ux/layout/menu-intranet/menu-intranet.component.ts","ng://ng-inail-common/lib/components/ux/layout/navigazione-secondaria/navigazione-secondaria.component.ts","ng://ng-inail-common/lib/components/ux/paged-table/paged-table.component.ts","ng://ng-inail-common/lib/components/ux/inail-file-upload-component/inail-file-upload.component.ts","ng://ng-inail-common/lib/components/ux/breadcrumb/breadcrumb.component.ts","ng://ng-inail-common/lib/components/ux/input-date/input-date.component.ts","ng://ng-inail-common/lib/components/ux/page-title/page-title.component.ts","ng://ng-inail-common/lib/directives/comment.directive.ts","ng://ng-inail-common/lib/components/ux/radio-select/radio-select.component.ts","ng://ng-inail-common/lib/components/ux/input-money/input-money.component.ts","ng://ng-inail-common/lib/ng-inail-common.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgInailCommonService {\n\n constructor() { }\n}\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-ng-inail-common',\n template: `\n <p>\n ng-inail-common works!\n </p>\n `,\n styles: [],\n encapsulation: ViewEncapsulation.None\n})\nexport class NgInailCommonComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\n\nexport enum LogLevel {\n\n LOG = 'log',\n DEBUG = 'debug',\n INFO = 'info',\n WARN = 'warn',\n ERROR = 'error'\n}\n\n@Component({\n selector: 'inail-base',\n templateUrl: './base.component.html',\n styleUrls: ['./base.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaseComponent implements OnInit {\n\n /**\n * Log del componente\n */\n @Output()\n log: EventEmitter<LogEvent>;\n\n /**\n * Se true effettua il log direttamente nella console.\n * Altrimenti emette l'evento log\n */\n @Input()\n logOnConsole: boolean;\n\n constructor() {\n this.log = new EventEmitter<LogEvent>();\n }\n\n ngOnInit() {\n }\n\n emitLog(message: any) {\n this.emit({message: message, level: LogLevel.LOG});\n }\n\n emitInfo(message: any) {\n this.emit({message: message, level: LogLevel.INFO});\n }\n\n emitDebug(message: any) {\n this.emit({message: message, level: LogLevel.DEBUG});\n }\n\n emitWarn(message: any) {\n this.emit({message: message, level: LogLevel.WARN});\n }\n\n emitError(message: any) {\n\n this.emit({message: message, level: LogLevel.ERROR});\n }\n\n emit(event: LogEvent) {\n\n if (event) {\n\n if (this.logOnConsole === true) {\n\n console[event.level].apply(this, [event.message]);\n } else {\n\n this.log.emit(event);\n }\n }\n }\n}\n\nexport class LogEvent {\n\n message: any;\n level: LogLevel;\n}\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport {BaseComponent} from \"../../base/base.component\";\n\n@Component({\n selector: 'inail-basic-ux-element',\n templateUrl: './basic-ux-element.component.html',\n styleUrls: ['./basic-ux-element.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BasicUxElementComponent extends BaseComponent{\n\n @Input()\n id: NonNullable<string>;\n @Input()\n class: string;\n\n constructor() {\n\n super();\n this.id = uuid();\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\nconst DEFAULT_TT_OPENED = \"Riduce l\\'accordion\";\nconst DEFAULT_TT_CLOSED = \"Espande l\\'accordion\";\n\n@Component({\n selector: 'inail-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AccordionComponent extends BasicUxElementComponent implements OnInit {\n\n @Input()\n titolo: string;\n @Input()\n toggleTitle: string;\n @Input()\n toggleTitleOpened: string;\n @Input()\n toggleTitleClosed: string;\n @Input()\n collapsed: boolean;\n @Input()\n hasError: boolean;\n @Input()\n required: boolean;\n @Output()\n toggle = new EventEmitter<boolean>();\n\n mostra: boolean;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n\n this.mostra = !this.collapsed;\n }\n\n onToggle() {\n this.mostra = !this.mostra;\n this.toggle.emit(this.mostra);\n }\n\n getTitolo(): string {\n\n return this.titolo ? (this.required ? this.titolo.concat(' *') : this.titolo) : '';\n }\n\n get toggleTitleText() {\n\n return this.mostra == true\n ? this.toggleTitleOpened || this.toggleTitle || `${DEFAULT_TT_OPENED} ${this.titolo}`\n : this.toggleTitleClosed || this.toggleTitle || `${DEFAULT_TT_CLOSED} ${this.titolo}`;\n }\n}\n","import {isFunction} from \"rxjs/internal-compatibility\";\r\n\r\nexport const isBlank = (s: string) => s!=undefined && (String(s)).trim().length == 0;\r\n\r\nexport const isEmptyOrNull = (s: string): boolean => {\r\n\r\n return !s || !((String(s)).trim().length > 0);\r\n};\r\n\r\nexport const isListEmptyOrNull = (s: any[]): boolean => {\r\n\r\n return !s || !(s.length > 0);\r\n};\r\n\r\nexport const isNotEmptyOrNull = (s: string): boolean => {\r\n\r\n return !isEmptyOrNull(s);\r\n};\r\n\r\nexport const isListNotEmptyOrNull = (s: any[]): boolean => {\r\n\r\n return !isListEmptyOrNull(s);\r\n};\r\n\r\nexport const isSameOrNullIgnoreCase = (toCompare: string, target: string) => {\r\n\r\n return !toCompare || (target && toCompare.toUpperCase() === target.toUpperCase());\r\n};\r\n\r\nexport const isUndefined = (obj: any) => {\r\n\r\n return typeof obj == 'undefined';\r\n};\r\n\r\nexport const trim = (s: string) => {\r\n\r\n if (s) {\r\n\r\n s = s.trim();\r\n }\r\n};\r\n\r\nexport const isAbsolute = (url: String): boolean => {\r\n\r\n return url != undefined\r\n && url['startsWith'] != undefined\r\n && url.startsWith('http');\r\n}\r\n\r\nexport const jquery = (q: string) => {\r\n\r\n // @ts-ignore\r\n return $ && $ != undefined && $ != null ? $(q) : undefined\r\n}\r\n\r\nexport const call = (e: any, f: string, a?: any) => {\r\n\r\n let el = e && e[f] != undefined && isFunction(e[f]) ? e[f](a) : undefined;\r\n\r\n return {\r\n data: el,\r\n call: (fname: string, arg?: any) => call(el, fname, arg)\r\n }\r\n}\r\n\r\nexport const abilitaScrollPagina = (scroll: boolean) => document.getElementsByTagName('html')[0].style['overflow-y'] = scroll ? 'scroll' : 'hidden';\r\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\nimport {ColumnDimension} from \"../../../types/types\";\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\n@Component({\n selector: 'inail-responsive-element',\n templateUrl: './responsive-element.component.html',\n styleUrls: ['./responsive-element.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ResponsiveElementComponent extends BasicUxElementComponent {\n\n @Input()\n lg: ColumnDimension;\n @Input()\n md: ColumnDimension;\n @Input()\n sm: ColumnDimension;\n @Input()\n xs: ColumnDimension;\n\n constructor() {\n super();\n }\n}\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from '@angular/core';\nimport {ResponsiveElementComponent} from \"../responsive-element/responsive-element.component\";\n\n@Component({\n selector: 'inail-form-element',\n templateUrl: './form-element.component.html',\n styleUrls: ['./form-element.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormElementComponent extends ResponsiveElementComponent {\n\n @Input()\n label: NonNullable<string>;\n @Input()\n title: string;\n @Input()\n name: string;\n @Input()\n labelTitle: string;\n @Input()\n labelClass: string;\n @Input()\n inputClass: string;\n @Input()\n required: boolean;\n @Input()\n requiredSimbol: string;\n @Input()\n disabled: boolean;\n @Input()\n readonly: boolean;\n @Input()\n hasError: boolean;\n @Input()\n hiddenLabel: boolean;\n @Input()\n descError: string;\n @Output()\n enterUp = new EventEmitter();\n @Input()\n errorPrefix: boolean;\n @Input()\n popover: boolean = false;\n @Input()\n popoverButtonIcon: string;\n @Input()\n popoverButtonTitle: string;\n @Input()\n popoverTitle: string;\n @Input()\n popoverContent: string;\n @Input()\n cleanErrorOnChange: boolean = true;\n\n showPopover = (): boolean => this.popover === true;\n hasFocus = (): boolean => document.activeElement && document.activeElement.id == this.id;\n\n constructor() {\n super();\n }\n\n cleanError() {\n\n setTimeout(() => {\n\n if (this.hasError) {\n\n this.hasError = false;\n }\n\n if (this.descError) {\n\n this.descError = undefined;\n }\n })\n }\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {FormElementComponent} from \"../form-element/form-element.component\";\n\n@Component({\n selector: 'inail-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CheckboxComponent extends FormElementComponent implements OnInit, OnChanges {\n\n checkedValue: boolean;\n\n @Output()\n checkedChange = new EventEmitter();\n\n @Output()\n clickCheckBox = new EventEmitter();\n\n @Output()\n click = new EventEmitter<Event>();\n\n ngOnChanges(changes: CheckboxChanges): void {\n\n if (changes.checked && !changes.checked.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.title)) {\n this.title = this.label;\n }\n }\n\n @Input()\n get checked() {\n return this.checkedValue;\n }\n\n set checked(val) {\n this.checkedValue = val;\n this.checkedChange.emit(this.checkedValue);\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n cbOnEnter() {\n this.checked = !this.checked;\n this.enterUp.emit()\n }\n\n onClick($event: Event) {\n\n $event.stopPropagation();\n this.click.emit($event);\n }\n}\n\ninterface CheckboxChanges extends SimpleChanges {\n\n checked: SimpleChange;\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {abilitaScrollPagina, isEmptyOrNull} from \"../../../../utils/Util\";\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {Observable} from \"rxjs\";\n\nconst KEYCODE_TAB = 9;\n\nexport const MODAL_CONFIRM_CLASS: string = 'modal-confirm'\n\n@Component({\n selector: 'inail-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ConfirmComponent extends BasicUxElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n modalConfirmClass: string = MODAL_CONFIRM_CLASS;\n\n @Input()\n titolo: string;\n @Input()\n testo: string;\n @Input()\n confirmButtonLabel: string;\n @Input()\n declineButtonLabel: string;\n @Input()\n show: EventEmitter<any>;\n // show: Observable<boolean>;\n @Output()\n confirm: EventEmitter<any> = new EventEmitter();\n @Output()\n decline: EventEmitter<any> = new EventEmitter();\n @Output()\n close: EventEmitter<any> = new EventEmitter();\n @Input()\n isValidationConfirm: boolean;\n\n @ViewChild('modalContent')\n modalContent: ElementRef;\n visualizzaContent: boolean = true;\n\n pageActiveElement: any;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // if (changes.show) {\n //\n // changes.show.currentValue.subscribe((show: boolean) => {\n //\n // if (show == undefined) {\n //\n // show = true;\n // }\n //\n // if (show === true) {\n //\n // this.pageActiveElement = document.activeElement;\n // // console.info('pageActiveElement', this.pageActiveElement)\n // }\n //\n // // @ts-ignore\n // jQuery(\"#\" + this.id).modal(show ? 'show' : 'hide');\n //\n // if (show) {\n //\n // setTimeout(() => {\n // this.trapFocus()\n // }, 500);\n // abilitaScrollPagina(false);\n // }\n // else {\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n // }\n // })\n // }\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.titolo)) {\n\n this.titolo = 'Conferma operazione';\n }\n\n if (isEmptyOrNull(this.testo)) {\n\n this.testo = 'Si richiede la conferma dell\\'operazione';\n }\n\n if (isEmptyOrNull(this.confirmButtonLabel)) {\n\n this.confirmButtonLabel = 'Si';\n }\n\n if (isEmptyOrNull(this.declineButtonLabel)) {\n\n this.declineButtonLabel = 'No';\n }\n\n if(this.show == undefined) {\n\n this.show = new EventEmitter<any>();\n }\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {\n this.visualizzaContent = this.modalContent.nativeElement.firstChild.childNodes.length > 0;\n });\n }\n\n // trapFocus() {\n //\n // // @ts-ignore\n // let thisModal = jQuery(\"#\" + this.id);\n //\n // let focusableEls = thisModal.find(\".modal-content\").find(':focusable');\n // let firstFocusableEl = focusableEls[0];\n // let lastFocusableEl = focusableEls[focusableEls.length - 1];\n //\n // firstFocusableEl.focus();\n //\n // // @ts-ignore\n // thisModal[0].addEventListener('keydown', (e) => {\n // if (e.key === 'Tab' || e.keyCode === KEYCODE_TAB) {\n //\n // if (e.shiftKey) /* shift + tab */ {\n // if (document.activeElement === firstFocusableEl) {\n // lastFocusableEl.focus();\n // e.preventDefault();\n // }\n // } else /* tab */ {\n // if (document.activeElement === lastFocusableEl) {\n // firstFocusableEl.focus();\n // e.preventDefault();\n // }\n // }\n // }\n // });\n // }\n\n confirmOnClick() {\n\n this.closeModal();\n this.confirm.emit();\n }\n\n declineOnClick() {\n this.closeModal();\n this.decline.emit();\n }\n\n cancelOnClick() {\n this.close.emit();\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n }\n\n closeModal() {\n // @ts-ignore\n // jQuery(\"#\" + this.id).modal('hide');\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n\n this.show.emit(false);\n }\n\n // setFocusOnLastPageActiveElement = () => {\n //\n // if (this.pageActiveElement != undefined) {\n //\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // console.info('loader-overlay = 0') // todo togliere\n // this.pageActiveElement.focus()\n // clearInterval(checkLoading);\n // }\n // }, 50);\n // }\n // }\n}\n","import * as moment_ from 'moment';\nimport {isNotEmptyOrNull} from \"./Util\";\n\nconst moment = moment_;\n\nexport class DateUtil {\n\n public static readonly MOMENT_SHORT_DATE_FORMAT = 'DD/MM/YYYY';\n public static readonly FORMATO_DATA: string = 'dd/MM/yyyy';\n\n /**\n * Verifica che una stringa rappresenti una data.\n * Nello specifico verifica che dalla stringa possa essere\n * creato un oggetto Date valido.\n */\n static isDate(s: string): boolean {\n\n let dateObj = DateUtil.toDateObject(s);\n return DateUtil.isValidDateObject(dateObj);\n }\n\n /**\n * Verifica se la stringa rappresenta\n * una data inferiore a quella odierna.\n */\n static isPastDate(s: string): boolean {\n\n let d = DateUtil.toDateObject(s);\n\n if (DateUtil.isValidDateObject(d)) {\n\n return DateUtil.isPastDateObject(d);\n } else {\n throw new Error('La stringa in input non rappresenta una data');\n }\n }\n\n /**\n * Verifica se la stringa rappresenta\n * una data superiore a quella odierna.\n */\n static isFutureDate(s: string): boolean {\n\n let d = DateUtil.toDateObject(s);\n\n if (DateUtil.isValidDateObject(d)) {\n\n return DateUtil.isFutureDateObject(d);\n } else {\n throw new Error('La stringa in input non rappresenta una data');\n }\n }\n\n /**\n * Verifica se la data e' inferiore\n * a quella odierna.\n */\n static isPastDateObject(d: Date): boolean {\n\n // let inputDate = DateUtil.toShortString(d);\n // let today = DateUtil.toShortString(new Date());\n // return moment(inputDate, DateUtil.MOMENT_SHORT_DATE_FORMAT) < moment(today, DateUtil.MOMENT_SHORT_DATE_FORMAT);\n return DateUtil.compareDateObject(d, new Date()) < 0;\n }\n\n static isFutureDateObject(d: Date) {\n // let inputDate = DateUtil.toShortString(d);\n // let today = DateUtil.toShortString(new Date());\n // return moment(today, DateUtil.MOMENT_SHORT_DATE_FORMAT) < moment(inputDate, DateUtil.MOMENT_SHORT_DATE_FORMAT);\n\n return DateUtil.compareDateObject(d, new Date()) > 0;\n }\n\n /**\n * @returns un numero intero negativo, zero o un numero intero positivo rispettivamente\n * se il primo argomento e' minore, uguale o maggiore del secondo.\n * Nel caso in cui le date non siano comparabili restituisce null.\n */\n static compareDateObject(d1: Date, d2: Date): number {\n\n let result: number = null;\n\n if (DateUtil.isValidDateObject(d1) && DateUtil.isValidDateObject(d1)) {\n\n let d1String = DateUtil.toShortString(d1);\n let d2String = DateUtil.toShortString(d2);\n\n if (moment(d1String, DateUtil.MOMENT_SHORT_DATE_FORMAT) < moment(d2String, DateUtil.MOMENT_SHORT_DATE_FORMAT)) {\n\n result = -1;\n } else if (moment(d1String, DateUtil.MOMENT_SHORT_DATE_FORMAT) > moment(d2String, DateUtil.MOMENT_SHORT_DATE_FORMAT)) {\n\n result = 1;\n } else {\n\n result = 0;\n }\n }\n\n return result;\n }\n\n /**\n * Verifica che l'oggetto Date sia valido.\n */\n static isValidDateObject(s: Date): boolean {\n\n return s && (s.getFullYear() ? true : false);\n }\n\n /**\n * Converte una stringa in un oggetto Date.\n *\n * @returns Oggetto Date se la stringa e' definita, null altrimenti.\n */\n static toDateObject(s: string): Date {\n\n let dateObj: Date = null;\n\n if (s) {\n // Se la data e' in formato italiano\n // riformatto la stringa in un formato\n // compatibile con Date\n if (DateUtil.isInItalianFormat(s)) {\n\n let a = s.split('/');\n s = a[1].concat('/').concat(a[0]).concat('/').concat(a[2]);\n }\n\n dateObj = new Date(s);\n }\n\n return dateObj;\n }\n\n /**\n * Verifica se la stringa e' una data\n * in formato italiano gg/mm/aaaa\n *\n * @returns\n */\n static isInItalianFormat(s: string): boolean {\n\n return isNotEmptyOrNull(s)\n && new RegExp(/^[0-3][0-9][\\/][0-1][0-9][\\/][1-9][0-9]{3}$/).test(s);\n }\n\n /**\n * Verifica se la stringa e' una data\n * in formato italiano aaaa-mm-gg\n *\n * @returns\n */\n static isInRFC3339Format(s: string): boolean {\n\n return isNotEmptyOrNull(s)\n && new RegExp(/^[1-9][0-9]{3}-[0-9]{2}-[0-9]{2}/).test(s)\n }\n\n /**\n * Verifica che la stringa sia formatta secondo lo standard ISO 8601\n *\n * E.g.\n * 2016-04-06\n * 2016-04-06T10:10:09Z\n * 2003-05-11T15:30:00.45Z\n * 1997-07-16T19:20+01:00\n * 1997-07-16T19:20:30+01:00\n * 1997-07-16T19:20:30.45+01:00\n * 1997-07-16T19:20-01:00\n * 1997-07-16T19:20:30-01:00\n * 1997-07-16T19:20:30.45-01:00\n *\n * https://rgxdb.com/r/526K7G5W\n *\n * @param s\n */\n static isInISO8601Format(s: string): boolean {\n return isNotEmptyOrNull(s)\n && new RegExp(/^[1-9][0-9]{3}-[0-1][0-9]-[0-3][0-9](T[0-9]{2}:[0-9]{2}(:[0-9]{2}(\\.[0-9]{2})?)?(([+-][0-9]{2}:[0-9]{2})|(Z)))?$/).test(s);\n }\n\n /**\n * Verifica che la stringa rappresenti una data valida.\n */\n static isValidDate(s: string): boolean {\n\n return DateUtil.isInItalianFormat(s) ? moment(s, DateUtil.MOMENT_SHORT_DATE_FORMAT).isValid() : moment(s).isValid();\n }\n\n /**\n * Riformatta la data in formato italiano short: gg/mm/yyyy\n *\n * @param s Stringa che rappresetna una data\n * @returns Data in formato italiano se la stringa rappresenta una data, null altrimenti.\n */\n static toItalianFormat(s: string): string {\n\n return DateUtil.isInItalianFormat(s) ? s : DateUtil.toShortString(new Date(s));\n }\n\n /**\n * Converte l'oggetto Date in stringa\n * omettendo il timestamp.\n *\n * @param d\n * @returns\n */\n static toShortString(d: Date): string {\n\n return DateUtil.toString(d, DateUtil.FORMATO_DATA);\n }\n\n /**\n * Converte l'oggetto Date in stringa.\n *\n * @param d\n * @param format\n */\n static toString(d: Date, format?: string): string {\n\n let dateString = null;\n\n if (DateUtil.isValidDateObject(d)) {\n\n dateString = moment(d).format(format.toUpperCase());\n }\n return dateString;\n }\n\n /**\n *\n * @param date\n * @param format\n */\n static reformat(date: string, format: string): string {\n\n let d: Date = this.toDateObject(date);\n return this.toString(d, format);\n }\n}\n","import {Component, ElementRef, EventEmitter, Injectable, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {NgbDateAdapter, NgbDateParserFormatter, NgbDatepickerConfig, NgbDatepickerI18n, NgbDateStruct} from \"@ng-bootstrap/ng-bootstrap\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {DateUtil} from \"../../../../utils/DateUtil\";\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {DateFormat} from \"../input-date/input-date.component\";\n\nconst I18N_VALUES = {\n 'it': {\n weekdays: ['Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa', 'Do'],\n months: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',\n 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],\n }\n};\n\n// export type DateFormat = 'RFC3339' | 'IT';\n\n@Injectable()\nexport class I18n {\n language = 'it';\n}\n\n@Injectable()\nexport class CustomDatepickerI18n extends NgbDatepickerI18n {\n\n constructor(private _i18n: I18n) {\n super();\n }\n\n getWeekdayShortName(weekday: number): string {\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\n }\n\n getMonthShortName(month: number): string {\n return I18N_VALUES[this._i18n.language].months[month - 1];\n }\n\n getMonthFullName(month: number): string {\n return this.getMonthShortName(month);\n }\n\n getDayAriaLabel(date: NgbDateStruct): string {\n return `${date.day}-${date.month}-${date.year}`;\n }\n}\n\n/**\n * Questa classe serve per la definizione dell'oggetto\n * che rappresenta la data selezionata dal calendario\n */\n@Injectable()\nexport class NgbDateNativeAdapter extends NgbDateAdapter<string> {\n\n private _italianFormat: DateFormat;\n\n fromModel(date: string): NgbDateStruct {\n\n // console.warn('fromModel', date)\n\n return DatePickerUtil.toNgbDateStruct(date);\n }\n\n toModel(date: NgbDateStruct): string {\n\n // console.warn('toModel', date)\n\n return this._italianFormat && this._italianFormat == \"IT\" ? DatePickerUtil.toItalianFormatString(date) : DatePickerUtil.toRFC3339FormatString(date);\n }\n\n set italianFormat(format: DateFormat) {\n this._italianFormat = format;\n }\n}\n\n/**\n * Questa classe serve per la formattazione della data nella textarea\n */\n@Injectable()\nexport class NgbDateCustomParserFormatter extends NgbDateParserFormatter {\n\n format(date: NgbDateStruct): string {\n\n // console.warn('format', date)\n\n return DatePickerUtil.toItalianFormatString(date);\n }\n\n parse(value: string): NgbDateStruct {\n\n // console.warn('parse', value)\n\n return DatePickerUtil.toNgbDateStruct(value);\n }\n}\n\n@Component({\n selector: 'inail-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [I18n,\n {provide: NgbDateAdapter, useClass: NgbDateNativeAdapter},\n {provide: NgbDatepickerI18n, useClass: CustomDatepickerI18n},\n {provide: NgbDateParserFormatter, useClass: NgbDateCustomParserFormatter}\n ]\n})\nexport class DatePickerComponent extends FormElementComponent implements OnInit, OnChanges {\n\n protected options = {\n autoclose: true,\n format: 'dd/mm/yyyy',\n weekStart: 1,\n todayBtn: 'linked',\n language: 'it',\n todayHighlight: true,\n orientation: 'auto top',\n enableOnReadonly: false,\n };\n\n @ViewChild('input')\n protected input: ElementRef;\n\n dataValue: string;\n\n changed: boolean;\n\n @Output()\n dataChange = new EventEmitter<string>();\n\n @Input()\n modelFormat: DateFormat;\n\n constructor(config: NgbDatepickerConfig,\n private ngbDateParserFormatter: NgbDateParserFormatter,\n private ngbDateAdapter: NgbDateAdapter<string>) {\n super();\n }\n\n ngOnChanges(changes: DatePickerChanges) {\n\n if (changes.data && !changes.data.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n ngOnInit() {\n\n if (!this.modelFormat) {\n\n this.modelFormat = \"RFC3339\";\n }\n\n (this.ngbDateAdapter as NgbDateNativeAdapter).italianFormat = this.modelFormat;\n\n this.dataValue = DatePickerUtil.reformat(this.dataValue, this.modelFormat);\n setTimeout(() => {\n this.dataChange.emit(this.dataValue);\n });\n }\n\n ngAfterViewInit(): void {\n\n // console.warn('ngAfterViewInit', this.dataValue)\n\n window['$'](this.input.nativeElement).datepicker(this.options);\n\n if(this.dataValue && DateUtil.isDate(this.dataValue)){\n\n let data = this.ngbDateParserFormatter.format(this.ngbDateAdapter.fromModel(this.dataValue));\n\n // console.warn('data from model', this.dataValue)\n // console.warn('data riformattata', data)\n\n window['$'](this.input.nativeElement).datepicker('setDate', data);\n }\n }\n\n @Input()\n get data() {\n\n // console.warn('get data', this.dataValue)\n\n return this.dataValue;\n }\n\n set data(val) {\n\n // console.warn('set data', val)\n\n this.dataValue = val;\n this.dataChange.emit(this.dataValue);\n }\n\n get isValid(): boolean {\n\n let visibleValue: string = DatePickerUtil.reformat(this.dataValue, \"IT\");\n\n return isEmptyOrNull(this.dataValue) || DateUtil.isInItalianFormat(visibleValue);\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n checkError(): boolean {\n\n return !this.isValid || this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n getDescError(): string {\n\n return (isEmptyOrNull(this.descError) && !this.isValid)\n ? 'La data inserita non è valida'\n : this.descError;\n }\n\n onChange($event: any) {\n\n // console.warn('onChange', $event.target.value)\n\n setTimeout(() => {\n this.data = DateUtil.isDate($event.target.value)\n ? this.ngbDateAdapter.toModel(this.ngbDateParserFormatter.parse($event.target.value))\n : $event.target.value;\n }, 200);\n }\n}\n\n// Implementazione della classe senza ngbDatepicker\n// @Component({\n// selector: 'inail-input-date',\n// templateUrl: './date-picker.component.html',\n// styleUrls: ['./date-picker.component.scss']\n// })\n// export class DatePickerComponent extends FormElementComponent implements OnInit, OnChanges {\n//\n// protected options = {\n// autoclose: true,\n// format: 'dd/mm/yyyy',\n// weekStart: 1,\n// todayBtn: 'linked',\n// language: 'it',\n// todayHighlight: true,\n// orientation: 'auto top',\n// enableOnReadonly: false,\n// };\n//\n// @ViewChild('input')\n// protected input: ElementRef;\n//\n// dataValue: string;\n//\n// changed: boolean;\n//\n// @Output()\n// dataChange = new EventEmitter<string>();\n//\n// @Input()\n// modelFormat: DateFormat;\n//\n// // constructor(config: NgbDatepickerConfig,\n// // private ngbDateParserFormatter: NgbDateParserFormatter,\n// // private ngbDateAdapter: NgbDateAdapter<string>) {\n// // super();\n// // }\n//\n// constructor() {\n// super();\n// }\n//\n// ngOnChanges(changes: DatePickerChanges) {\n//\n// // console.warn('changes', changes)\n//\n// if (changes.data && !changes.data.firstChange) {\n//\n// this.hasError = false;\n// this.descError = undefined;\n// }\n// }\n//\n// // ngOnInit() {\n// //\n// // if (!this.modelFormat) {\n// //\n// // this.modelFormat = \"RFC3339\";\n// // }\n// //\n// // (this.ngbDateAdapter as NgbDateNativeAdapter).italianFormat = this.modelFormat;\n// //\n// // this.dataValue = DatePickerUtil.reformat(this.dataValue, this.modelFormat);\n// // setTimeout(() => {\n// // this.dataChange.emit(this.dataValue);\n// // });\n// // }\n//\n// ngOnInit() {\n//\n// // if (!this.modelFormat) {\n// //\n// // this.modelFormat = \"RFC3339\";\n// // }\n// //\n// // (this.ngbDateAdapter as NgbDateNativeAdapter).italianFormat = this.modelFormat;\n// //\n// // this.dataValue = DatePickerUtil.reformat(this.dataValue, this.modelFormat);\n// // setTimeout(() => {\n// // this.dataChange.emit(this.dataValue);\n// // });\n// }\n//\n// // ngAfterViewInit(): void {\n// //\n// // console.warn('ngAfterViewInit', this.dataValue)\n// //\n// // window['$'](this.input.nativeElement).datepicker(this.options);\n// //\n// // if(this.dataValue && DateUtil.isDate(this.dataValue)){\n// //\n// // let data = this.ngbDateParserFormatter.format(this.ngbDateAdapter.fromModel(this.dataValue));\n// //\n// // console.warn('data from model', this.dataValue)\n// // console.warn('data riformattata', data)\n// //\n// // window['$'](this.input.nativeElement).datepicker('setDate', data);\n// // }\n// // }\n//\n// ngAfterViewInit(): void {\n//\n// // console.warn('ngAfterViewInit', this.dataValue)\n//\n// window['$'](this.input.nativeElement).datepicker(this.options);\n//\n// if(this.dataValue && DateUtil.isDate(this.dataValue)){\n//\n// window['$'](this.input.nativeElement).datepicker('setDate', this.dataValue);\n// }\n// }\n//\n// @Input()\n// get data() {\n//\n// // console.warn('get data', this.dataValue)\n//\n// return this.dataValue;\n// }\n//\n// set data(val) {\n//\n// // console.warn('set data', val)\n//\n// this.dataValue = val;\n// this.dataChange.emit(this.dataValue);\n// }\n//\n// get isValid(): boolean {\n//\n// let visibleValue: string = DatePickerUtil.reformat(this.dataValue, \"IT\");\n//\n// // return isEmptyOrNull(this.dataValue) || DateUtil.isInItalianFormat(visibleValue);\n// return isEmptyOrNull(this.dataValue) || DateUtil.isInItalianFormat(this.dataValue);\n// }\n//\n// checkDescError(): boolean {\n//\n// let descError: string = this.getDescError();\n// return this.checkError() && isNotEmptyOrNull(descError);\n// }\n//\n// checkError(): boolean {\n//\n// return !this.isValid || this.hasError || isNotEmptyOrNull(this.descError);\n// }\n//\n// getDescError(): string {\n//\n// return (isEmptyOrNull(this.descError) && !this.isValid)\n// ? 'La data inserita non è valida'\n// : this.descError;\n// }\n//\n// // onChange($event: any) {\n// //\n// // console.warn('onChange', $event.target.value)\n// //\n// // setTimeout(() => {\n// // this.data = DateUtil.isDate($event.target.value)\n// // ? this.ngbDateAdapter.toModel(this.ngbDateParserFormatter.parse($event.target.value))\n// // : $event.target.value;\n// // }, 200);\n// // }\n//\n// onChange($event: any) {\n//\n// // console.warn('onChange', $event.target.value)\n//\n// setTimeout(() => {\n// this.data = $event.target.value;\n// }, 200);\n// }\n// }\n\nclass DatePickerUtil {\n\n static toNgbDateStruct(s: string): NgbDateStruct {\n\n let date: NgbDateStruct = null;\n\n if (s) {\n\n let dateObj = DateUtil.toDateObject(s.trim ? s.trim() : s);\n\n date = {year: dateObj.getFullYear(), month: dateObj.getMonth() + 1, day: dateObj.getDate()};\n }\n\n return date;\n }\n\n static reformat(s: string, dateFormat?: DateFormat): string {\n\n let data: string = null;\n let dateObj: NgbDateStruct = DatePickerUtil.toNgbDateStruct(s);\n\n if (dateObj) {\n\n data = dateFormat && dateFormat == \"IT\" ? DatePickerUtil.toItalianFormatString(dateObj) : DatePickerUtil.toRFC3339FormatString(dateObj);\n }\n\n return data;\n }\n\n static toItalianFormatString(date: NgbDateStruct): string {\n\n let s: string = null;\n\n if (date) {\n s = DatePickerUtil.pad(date.day) + '/' + DatePickerUtil.pad(date.month) + '/' + date.year;\n }\n\n return s;\n }\n\n static toRFC3339FormatString(date: NgbDateStruct): string {\n\n let s: string = null;\n\n if (date) {\n s = DatePickerUtil.pad(date.year) + '-' + DatePickerUtil.pad(date.month) + '-' + DatePickerUtil.pad(date.day);\n }\n\n return s;\n }\n\n static pad(n: number): string {\n\n return n ? ((n < 10 ? '0' : '') + n) : '';\n }\n}\n\ninterface DatePickerChanges extends SimpleChanges {\n\n data: SimpleChange;\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\nexport type FeedbackTypes = 'ERROR' | 'SUCCESS';\n\n@Component({\n selector: 'inail-feedback',\n templateUrl: './feedback.component.html',\n styleUrls: ['./feedback.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FeedbackComponent extends BasicUxElementComponent implements OnInit, OnChanges {\n\n // Queste inizializzazioni servono per essere usate nel template\n errorType: FeedbackTypes = 'ERROR';\n successType: FeedbackTypes = 'SUCCESS';\n\n @Input()\n message: NonNullable<string>;\n @Input()\n type: FeedbackTypes;\n @Input()\n gobalFeedback: boolean;\n @Input()\n enableIcon: boolean;\n @Input()\n contentTitle: string;\n @Input()\n details: string[];\n @Input()\n detailsAsList: boolean;\n @Input()\n orderedList: boolean;\n\n constructor() {\n super();\n this.enableIcon = true;\n }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes.details && changes.details.currentValue) {\n\n this.details = (changes.details.currentValue as string[]).filter(value => value != undefined)\n }\n }\n}\n\nexport class Feedback {\n\n type: FeedbackTypes;\n message: string;\n contentTitle: string;\n details?: string[];\n\n constructor(type: FeedbackTypes, msg: string, details?: string[], contentTitle?: string) {\n\n this.message = msg;\n this.type = type;\n\n if (details) {\n\n this.details = [].concat(details);\n this.contentTitle = contentTitle;\n }\n }\n}\n","import {AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {DateUtil} from \"../../../../utils/DateUtil\";\n\n@Component({\n selector: 'inail-input-text',\n templateUrl: './input-text.component.html',\n styleUrls: ['./input-text.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputTextComponent extends FormElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n placeholder: string;\n @Input()\n maxlength: any;\n @Input()\n isDate: boolean;\n\n valueValue: string;\n\n @Output()\n valueChange = new EventEmitter();\n\n ngOnChanges(changes: InputTextChanges): void {\n\n if (changes.value && !changes.value.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n @Input()\n get value() {\n return this.isDate && this.valueValue ? DateUtil.toItalianFormat(this.valueValue) : this.valueValue;\n }\n\n set value(val) {\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n ngAfterViewInit(): void {\n\n if(this.showPopover()) {\n\n // @ts-ignore\n $(`#${this.id}-popover`).popover();\n }\n }\n}\n\ninterface InputTextChanges extends SimpleChanges {\n\n value: SimpleChange;\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {isEmptyOrNull, isListNotEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {FormElementComponent} from \"../form-element/form-element.component\";\n\n@Component({\n selector: 'inail-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SelectComponent extends FormElementComponent implements OnInit, OnChanges {\n\n @Input()\n options: SelectOption[];\n @Input()\n blankOption: boolean;\n @Input()\n blankOptionText: string;\n @Input()\n sort: \"ASC\" | \"DESC\";\n @Input()\n valueLabel: string;\n @Input()\n disabledAsInputText: boolean;\n\n valueValue: string;\n\n @Output()\n valueChange = new EventEmitter();\n\n @Output()\n select: EventEmitter<SelectOption> = new EventEmitter<SelectOption>();\n\n constructor() {\n super();\n this.options = new Array(0);\n this.blankOption = true;\n }\n\n ngOnChanges(changes: SelectChanges) {\n\n if (this.sort) {\n\n let direction: number = \"ASC\" == this.sort.toUpperCase() ? 1 : \"DESC\" == this.sort.toUpperCase() ? -1 : 0;\n\n if (direction != 0 && this.options != undefined) {\n\n this.options.sort((a: SelectOption, b: SelectOption) => {\n return a.label < b.label ? -direction : a.label > b.label ? direction : 0\n });\n }\n }\n\n if (changes.value && !changes.value.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.valueValue)) {\n\n setTimeout(() => {\n this.valueValue = '';\n this.valueChange.emit(this.valueValue);\n });\n\n // this.valueValue = '';\n // this.valueChange.emit(this.valueValue);\n }\n }\n\n // @Input()\n // get value() {\n // return this.valueValue;\n // }\n //\n // set value(val) {\n //\n // setTimeout(() => {\n // this.valueValue = val || '';\n // this.valueChange.emit(this.valueValue);\n // });\n // }\n\n @Input()\n get value() {\n return this.valueValue;\n }\n\n set value(val) {\n\n // console.warn('val', val)\n\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n\n let optionSelected: SelectOption;\n\n if(this.options) {\n\n optionSelected = this.options.find(opt => opt != undefined && opt.value === this.valueValue);\n }\n\n if(optionSelected != undefined || isEmptyOrNull(val)) {\n\n this.select.emit(optionSelected);\n }\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n static isValidOption(opzioniValide: SelectOption[], opzioneScelta: string, blankOption?: boolean): boolean {\n\n return (blankOption && (!opzioneScelta || opzioneScelta.length == 0)) || (isListNotEmptyOrNull(opzioniValide) &&\n\n opzioniValide.findIndex(element => {\n return element.value == opzioneScelta;\n }) >= 0);\n }\n\n getValueLabel(): string {\n\n let option: SelectOption;\n\n if (this.options) {\n option = this.options.find((opt: SelectOption) => {\n return opt.value == this.value\n });\n }\n\n return option ? option.label : this.valueLabel || this.value;\n }\n}\n\nexport class SelectOption {\n label: string;\n value: string;\n}\n\n// export function isValidOption(opzioniValide: SelectOption[], opzioneScelta: string, blankOption?: boolean): boolean {\n//\n// return (blankOption && (!opzioneScelta || opzioneScelta.length == 0)) || (isListNotEmptyOrNull(opzioniValide) &&\n//\n// opzioniValide.findIndex(element => {\n// return element.value == opzioneScelta;\n// }) >= 0);\n// }\n//\n// export function findSelectOptionFromValue(value: string, options: SelectOption[]): SelectOption {\n//\n// return options && options.find((obj: SelectOption) => {\n//\n// return obj && obj.value == value;\n// })\n// }\n//\n// export function findSelectOptionLabel(value: string, options: SelectOption[]): string {\n//\n// let opt = findSelectOptionFromValue(value, options);\n// return opt && opt.label;\n// }\n\ninterface SelectChanges extends SimpleChanges {\n\n value: SimpleChange;\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\n\n@Component({\n selector: 'inail-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TextareaComponent extends FormElementComponent implements OnInit, OnChanges {\n\n valueValue: string;\n\n @Input()\n placeholder: string;\n @Output()\n valueChange = new EventEmitter();\n\n @Input()\n maxlength: number;\n @Input()\n rows: number;\n @Input()\n cols: number;\n @Input()\n preventPasting: boolean;\n\n ngOnChanges(changes: TextAreaChanges): void {\n\n if (changes.value && !changes.value.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n\n this.initAttributes();\n }\n\n private initAttributes() {\n\n if (!this.rows) {\n this.rows = 10;\n }\n\n if (!this.cols) {\n this.cols = 50;\n }\n\n if (!this.maxlength) {\n this.maxlength = 300;\n }\n }\n\n @Input()\n get value() {\n return this.valueValue;\n }\n\n set value(val) {\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n\n checkError(): boolean {\n\n return (this.hasError || isNotEmptyOrNull(this.descError) || this.isTextTooLong()) === true;\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n getNumeroCaratteriDisponibili(): number {\n\n let l = this.valueValue ? this.valueValue.length : 0;\n\n return this.maxlength - l;\n }\n\n getDescError(): string {\n\n return (isEmptyOrNull(this.descError) && this.isTextTooLong())\n ? \"Il testo non può essere lungo di \" + this.maxlength + \" caratteri\"\n : this.descError;\n }\n\n isTextTooLong(): boolean {\n\n return this.valueValue && this.valueValue.length > this.maxlength;\n }\n\n onPaste($event: ClipboardEvent) {\n\n if (this.preventPasting === true) {\n\n $event.preventDefault();\n }\n }\n}\n\ninterface TextAreaChanges extends SimpleChanges {\n\n value: SimpleChange;\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-th-label',\n templateUrl: './th-label.component.html',\n styleUrls: ['./th-label.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ThLabelComponent implements OnInit, AfterViewInit {\n\n public static readonly ASC: number = 1;\n public static readonly DESC: number = -1;\n public static readonly UNSORTED: number = 0;\n\n ASC = ThLabelComponent.ASC;\n DESC = ThLabelComponent.DESC;\n UNSORTED = ThLabelComponent.UNSORTED;\n\n // externalSorting: boolean;\n direction: number;\n elementRef: ElementRef;\n\n // Obbligatorio\n @Input()\n label: string;\n\n // Deprecato!\n // Obbligatorio se paginazione interna: Passandolo effetua l'ordinamento in locale\n @Input()\n elements: any[];\n\n // Deprecato!\n // Obbligatorio se paginazione interna: Da usare in 2-way-data-binding\n @Output()\n elementsChange = new EventEmitter<any[]>();\n\n // Obbligatorio\n @Input()\n property: string;\n\n @Input()\n title: string;\n\n @Input()\n sortable: boolean;\n\n @Output()\n click = new EventEmitter<SortingInfo>();\n\n constructor(element: ElementRef) {\n\n this.direction = ThLabelComponent.UNSORTED;\n this.elementRef = element;\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n\n }\n\n getAriaSortValue(direction: number): string {\n\n let value: string\n\n switch (direction) {\n\n case ThLabelComponent.ASC:\n value = 'ascending';\n break\n case ThLabelComponent.DESC:\n value = 'descending';\n break\n case ThLabelComponent.UNSORTED:\n value = 'none';\n break\n }\n\n return value;\n }\n\n onClick(event) {\n\n // todo\n // console.warn('th-label-click')\n\n event.stopPropagation();\n this.emettiEventoOrdinamento();\n }\n\n private emettiEventoOrdinamento() {\n\n // todo\n // console.warn('th-label emettiEventoOrdinamento', this.sortable, this.property)\n\n if (this.sortable && this.property) {\n\n this.direction = this.direction * -1;\n\n if (this.direction == ThLabelComponent.UNSORTED) {\n\n this.direction = ThLabelComponent.ASC;\n }\n\n let info: SortingInfo = {\n direction: this.direction,\n property: this.property\n };\n\n // todo\n // console.warn('th-label emettiEventoOrdinamento', info)\n\n this.click.emit(info);\n }\n }\n\n public setAsUnsorted() {\n\n this.direction = ThLabelComponent.UNSORTED;\n }\n}\n\nexport class SortingInfo {\n\n property: string;\n direction: number;\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-table-page-length-selector',\n templateUrl: './table-page-length-selector.component.html',\n styleUrls: ['./table-page-length-selector.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TablePageLengthSelectorComponent implements OnInit, OnChanges {\n\n valueValue: number;\n\n @Input()\n tableId: string;\n\n @Output()\n valueChange: EventEmitter<number> = new EventEmitter();\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n }\n\n ngOnInit() {\n }\n\n @Input()\n get value(): number {\n return this.valueValue;\n }\n\n set value(val: number) {\n\n // console.warn('set value', val, this.valueValue)\n\n if(val != this.valueValue) {\n\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n }\n}\n","import {ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-table-page-selector',\n templateUrl: './table-page-selector.component.html',\n styleUrls: ['./table-page-selector.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TablePageSelectorComponent implements OnInit {\n\n public static readonly DEFAULT_TABLE_LENGTH: number = 10;\n\n @Input()\n tableId: string;\n\n // Obbligatorio\n @Input()\n listSize: number;\n\n // Obbligatorio\n @Input()\n pageSize: number;\n\n // Obbligatorio se paginazione esterna\n @Input()\n currentPage: number;\n\n @Output()\n select = new EventEmitter();\n\n length: number;\n externalPagination: boolean;\n\n constructor(private cd: ChangeDetectorRef) {\n\n this.currentPage = 1;\n this.pageSize = 10;\n this.listSize = 0;\n this.externalPagination = false;\n }\n\n ngOnChanges(changes: PaginateChanges): void {\n\n // Se si sta impostando il numero di pagina dall'esterno\n // vuol dire che si sta effettuando la paginazione dall'esterno\n if (!this.externalPagination\n && changes.currentPage\n && changes.currentPage.firstChange\n && changes.currentPage.currentValue != undefined) {\n\n this.externalPagination = true;\n }\n\n if (changes && (changes.pageSize || changes.listSize)) {\n\n this.calcolaNumeroPagine();\n\n if (!this.externalPagination) {\n\n this.currentPage = 1;\n }\n }\n\n if (changes && changes.currentPage && changes.currentPage.currentValue != undefined) {\n\n if (changes.currentPage.currentValue > this.length) {\n\n this.currentPage = this.length;\n this.emit(this.currentPage);\n } else if (changes.currentPage.currentValue < 1) {\n\n this.currentPage = 1;\n this.emit(this.currentPage);\n }\n }\n\n this.cd.detectChanges();\n }\n\n ngOnInit() {\n\n if (!this.pageSize) {\n\n this.pageSize = TablePageSelectorComponent.DEFAULT_TABLE_LENGTH;\n }\n }\n\n calcolaNumeroPagine() {\n\n this.length = Math.floor(this.listSize / this.pageSize);\n\n if ((this.listSize % this.pageSize) > 0) {\n\n this.length++;\n }\n\n if (this.length == 0 || this.length == undefined) {\n\n this.length = 1;\n }\n }\n\n get pages(): any[] {\n\n return new Array(this.length);\n }\n\n set(n: number) {\n\n if (n > 0 && n <= this.length) {\n\n if (!this.externalPagination) {\n\n this.currentPage = n;\n }\n\n this.emit(n);\n }\n }\n\n prev() {\n\n this.set(this.currentPage - 1);\n }\n\n next() {\n\n this.set(this.currentPage + 1);\n }\n\n emit(page: number) {\n // console.warn('length emit', page)\n this.select.emit(page);\n }\n}\n\nexport interface PaginateChanges extends SimpleChanges {\n\n listSize?: ElementsChange,\n pageSize?: PageSizeChange,\n currentPage?: CurrentPageChange\n}\n\nexport interface ElementsChange extends SimpleChange {\n\n currentValue: number\n}\n\nexport interface PageSizeChange extends SimpleChange {\n\n currentValue: number\n}\n\nexport interface CurrentPageChange extends SimpleChange {\n\n currentValue: number\n}\n","import {AfterViewInit, Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, Renderer2, SimpleChange, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {SortingInfo, ThLabelComponent} from \"../th-label/th-label.component\";\nimport {TablePageSelectorComponent} from \"../table-page-selector/table-page-selector.component\";\nimport {Observable} from \"rxjs\";\n\n@Component({\n selector: 'inail-paged-table-renderer',\n templateUrl: './paged-table-renderer.component.html',\n styleUrls: ['./paged-table-renderer.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PagedTableRendererComponent implements OnInit, AfterViewInit {\n\n public static readonly DEFAULT_TABLE_LENGTH: number = 10;\n\n tableLength: number;\n currentPage: number;\n externalPaginationSorting: boolean;\n\n // Necessario per l'inserimento dell'attributo aria-controls negli elementi di\n // visualizzazione e paginazione della tabella\n @Input()\n tableId: string;\n\n // Obbligatorio se paginazione INTERNA\n @Input()\n elements: any[];\n\n // Obbligatorio se paginazione INTERNA\n @Input()\n subset: any[];\n\n // Obbligatorio se paginazione INTERNA: Da usare in 2-way-data-binding\n @Output()\n subsetChange = new EventEmitter<any[]>();\n\n // Obbligatorio se paginazione ESTERNA\n @Input()\n paginationInfo: Pagination;\n\n // Da usare solamente in caso di paginazione INTERNA\n @Input()\n doPagination: Observable<Pagination>;\n\n @Input()\n pageSize: number\n\n @Input()\n recuperoInCorso: boolean;\n\n @Input()\n disabilitaPaginazione: boolean;\n\n @Input()\n testoRecuperoInCorso: string;\n\n @Output()\n pagination = new EventEmitter<Pagination>();\n\n @ContentChildren(ThLabelComponent, {descendants: true})\n thLabelComponents: QueryList<ThLabelComponent>;\n\n @ViewChild(TablePageSelectorComponent)\n tablePageSelectorComponent: TablePageSelectorComponent;\n\n constructor(private renderer: Renderer2) {\n\n this.externalPaginationSorting = false;\n }\n\n ngOnChanges(changes: PagedTableRendererChanges): void {\n\n // console.warn('changes', changes)\n\n // Controllo se la pagina richiesta e' interna o esterna\n if (!this.externalPaginationSorting\n && changes.paginationInfo\n && changes.paginationInfo.firstChange\n && changes.paginationInfo.currentValue != undefined) {\n\n this.externalPaginationSorting = true;\n }\n\n // Se nella paginazione esterna viene specificata una proprieta di sorting\n // modifico il componente thLabel associato\n if (this.externalPaginationSorting && this.paginationInfo && this.paginationInfo.sortProperty) {\n\n if (this.thLabelComponents) {\n\n let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == this.paginationInfo.sortProperty);\n this.setSortDirection(thLabel, this.paginationInfo.sortDirection as ('asc' | 'desc'));\n }\n }\n\n // Verifico se e' cambiata la lista degli elementi in input.\n // Nel caso in cui si stia effettuando una paginazione interna\n // emetto il sottoinsieme inerente la prima pagina\n if (changes.elements && !changes.elements.firstChange && !this.externalPaginationSorting) {\n\n if (this.tablePageSelectorComponent) {\n\n this.tablePageSelectorComponent.currentPage = 1;\n }\n\n // todo comment\n // console.info('changes.elements')\n this.emitSubset(1);\n }\n\n if (!this.externalPaginationSorting\n && changes.doPagination\n && changes.doPagination.currentValue) {\n\n changes.doPagination.currentValue.subscribe((info: Pagination) => {\n\n // console.warn('ngOnChanges', info)\n this.lengthOnChange(info.pageSize);\n setTimeout(() => this.doSorting(info.sortProperty, info.sortDirection), 100);\n setTimeout(() => this.pageOnChange(info.pageNumber), 200);\n })\n }\n }\n\n ngOnInit() {\n\n this.tableLength = this.externalPaginationSorting ? this.paginationInfo.pageSize : this.pageSize || PagedTableRendererComponent.DEFAULT_TABLE_LENGTH;\n\n if (!this.externalPaginationSorting) {\n\n setTimeout(() => {\n // todo comment\n // console.info('ngOnInit---', this.currentPage)\n this.emitSubset(this.currentPage || 1);\n });\n }\n }\n\n ngAfterViewInit(): void {\n\n // console.warn('thLabelComponents PTR', this.thLabelComponents)\n\n this.inizializzaTabella(this.thLabelComponents);\n this.lookAtThLabel(this.thLabelComponents);\n\n // console.warn('>>>>>', this.paginationInfo, this.thLabelComponents)\n //\n // // Se nella paginazione esterna viene specificata una proprieta di sorting\n // // modifico il componente thLabel associato\n // if (this.externalPaginationSorting && this.paginationInfo && this.paginationInfo.sortProperty) {\n //\n // if (this.thLabelComponents) {\n //\n //\n //\n // let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == this.paginationInfo.sortProperty);\n // this.setSortDirection(thLabel, this.paginationInfo.sortDirection as ('asc' | 'desc'));\n //\n // console.warn('XXXXXXXXXXXXXXXX', thLabel)\n // }\n // }\n }\n\n /**\n * Effettua varie operazioni di inizializzazione della tabella\n */\n public inizializzaTabella(thLabelComponents: QueryList<ThLabelComponent>) {\n\n if (thLabelComponents) {\n\n // Inizializzo tutti i th della tabella\n thLabelComponents.forEach(\n (thLabel: ThLabelComponent) => {\n\n this.modificaTh(thLabel);\n })\n }\n }\n\n /**\n *\n * @param sortProperty\n * @param sortDirection\n */\n public doSorting(sortProperty: string, sortDirection: string) {\n\n // todo commento\n // console.info('doSorting: ', sortProperty, sortDirection)\n // console.info('thLabelComponents', this.thLabelComponents)\n\n let info: SortingInfo = {\n property: sortProperty,\n direction: sortDirection == Pagination.ASC ? ThLabelComponent.ASC : sortDirection == Pagination.DESC ? ThLabelComponent.DESC : undefined\n }\n\n let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == sortProperty);\n\n // todo commento\n // console.info('thLabelComponent trovato', thLabel)\n\n this.performSorting(info, thLabel)\n }\n\n /**\n * Si mette in ascolto sugli eventi emessi dai thLabelComponents dati in input\n * per poter eseguire le opportune azioni\n *\n * @param thLabelComponents\n */\n public lookAtThLabel(thLabelComponents: QueryList<ThLabelComponent>) {\n\n // console.warn('lookAtThLabel', thLabelComponents)\n\n if (thLabelComponents) {\n\n this.thLabelComponents = thLabelComponents;\n\n thLabelComponents.forEach(\n (thLabel: ThLabelComponent) => {\n\n // console.warn('thLabel', thLabel)\n\n if (thLabel) {\n\n // Meccanismo deprecato\n // thLabel.elementsChange.subscribe(\n // () => {\n // this.resetDirectionSorting(thLabel, thLabelComponents);\n // }\n // );\n\n // Subscribe al click del th label\n thLabel.click.subscribe(\n (info: SortingInfo) => {\n\n // todo\n // console.warn('table eventoOrdinamento', info)\n\n this.performSorting(info, thLabel);\n }\n );\n }\n }\n )\n }\n }\n\n /**\n *\n * @param info\n * @param thLabel\n */\n performSorting(info: SortingInfo, thLabel: ThLabelComponent) {\n\n // todo comment\n // console.info('performSorting', info, thLabel)\n\n if (thLabel != undefined && info != undefined && info.property != undefined) {\n\n let eventoPaginazione: Pagination = {};\n\n eventoPaginazione.sortProperty = info.property;\n eventoPaginazione.sortDirection = info.direction == ThLabelComponent.ASC ? Pagination.ASC : info.direction == ThLabelComponent.DESC ? Pagination.DESC : undefined;\n eventoPaginazione.pageNumber = 1;\n\n this.resetDirectionSorting(thLabel, this.thLabelComponents);\n this.modificaTh(thLabel);\n\n if (this.externalPaginationSorting) {\n\n // console.warn('ext', eventoPaginazione, this.paginationInfo)\n\n eventoPaginazione.fullListSize = this.paginationInfo.fullListSize;\n eventoPaginazione.pageSize = this.paginationInfo.pageSize;\n\n // console.warn('ext 2', eventoPaginazione, this.paginationInfo)\n } else {\n\n // console.warn('inn')\n\n // eventoPaginazione = {};\n this.ordina(info);\n\n // todo comment\n // console.info('performSorting')\n this.emitSubset(1);\n }\n\n // todo comment\n // console.info('eventoPaginazione', eventoPaginazione)\n\n // console.warn('performSorting: ', eventoPaginazione)\n this.pagination.emit(eventoPaginazione);\n }\n }\n\n /**\n * Reimposta ad unsorted tutti i th label ad eccezione\n * di quelli dato in input\n *\n * @param thLabel\n * @param thLabelComponents\n */\n private resetDirectionSorting(thLabel: ThLabelComponent, thLabelComponents: QueryList<ThLabelComponent>) {\n\n if (thLabelComponents) {\n\n thLabelComponents.forEach((item: ThLabelComponent) => {\n\n if (item && item.property != thLabel.property) {\n\n item.setAsUnsorted();\n this.modificaTh(item);\n }\n })\n }\n }\n\n /**\n * Modifica opportunamente tutti i th della tabella\n * in base alle informazioni di paginazione ricevute\n *\n * @param info\n */\n private reimpostaThs(info: Pagination, thLabelComponents: QueryList<ThLabelComponent>) {\n\n if (info) {\n\n let thLabelComponent = this.getThLabelComponentBySortProperty(info.sortProperty, thLabelComponents);\n\n this.resetDirectionSorting(thLabelComponent, thLabelComponents);\n }\n }\n\n /**\n * Restituisce il ThLabelComponent associato alla proprieta di ordinamento.\n *\n * @param sortProperty\n * @param thLabelComponents\n */\n private getThLabelComponentBySortProperty(sortProperty: string, thLabelComponents: QueryList<ThLabelComponent>): ThLabelComponent {\n\n return undefined != thLabelComponents\n ? thLabelComponents.find((thLabelComponent: ThLabelComponent) => thLabelComponent && thLabelComponent.property == sortProperty)\n : undefined;\n }\n\n /**\n * Modifica l'elemento th che contiene il ThLabelComponent\n */\n private modificaTh(thLabelComponent: ThLabelComponent) {\n\n if (thLabelComponent && thLabelComponent.sortable === true) {\n\n let th: HTMLElement = thLabelComponent.elementRef.nativeElement.parentNode;\n\n if (th) {\n\n this.removeSortClass(th);\n this.renderer.addClass(th, this.getThSortClass(thLabelComponent.direction));\n\n // Spostato in th-label\n // th.setAttribute('aria-label', thLabelComponent.label + \": attiva per ordinare la colonna in ordine \" + (thLabelComponent.direction == ThLabelComponent.ASC ? 'decrescente' : 'crescente'));\n\n th.setAttribute('aria-sort', this.getAriaSortValue(thLabelComponent.direction));\n\n if (thLabelComponent.direction == ThLabelComponent.UNSORTED) {\n\n th.removeAttribute('aria-sort');\n }\n }\n }\n }\n\n /**\n *\n * @param element\n */\n private removeSortClass(element: HTMLElement) {\n\n // console.warn('removeSortClass', element)\n\n this.renderer.removeClass(element, 'sorting_asc');\n this.renderer.removeClass(element, 'sorting_desc');\n this.renderer.removeClass(element, 'sorting');\n }\n\n /**\n *\n * @param direction\n */\n private getThSortClass(direction: number) {\n\n let value: string\n\n switch (direction) {\n\n case ThLabelComponent.ASC:\n value = 'sorting_asc';\n break\n case ThLabelComponent.DESC:\n value = 'sorting_desc';\n break\n case ThLabelComponent.UNSORTED:\n value = 'sorting';\n break\n }\n\n return value;\n }\n\n /**\n *\n * @param direction\n */\n private getAriaSortValue(direction: number): string {\n\n let value: string\n\n switch (direction) {\n\n case ThLabelComponent.ASC:\n value = 'ascending';\n break\n case ThLabelComponent.DESC:\n value = 'descending';\n break\n case ThLabelComponent.UNSORTED:\n value = 'none';\n break\n }\n\n return value;\n }\n\n private ordina(info: SortingInfo) {\n\n // todo\n // console.info('ordina', info)\n\n if (info && this.elements && info.property) {\n\n info.direction = info.direction * -1;\n\n if (info.direction == ThLabelComponent.UNSORTED) {\n\n info.direction = ThLabelComponent.ASC;\n }\n\n this.elements.sort(this.propertyComparator(info.property, info.direction));\n this.elements = [].concat(this.elements);\n }\n }\n\n private propertyComparator(property: string, direction: number) {\n\n let pList = property ? property.split('.') : undefined;\n\n function estraiValore(e: any, pList: string[]): any {\n\n if (e && pList) {\n\n if (pList.length > 1) {\n\n return estraiValore(e[pList[0]], pList.slice(1, pList.length));\n } else {\n\n return e[pList[0]];\n }\n }\n }\n\n return function (e1, e2) {\n\n return (estraiValore(e1, pList) > estraiValore(e2, pList) ? ThLabelComponent.DESC : ThLabelComponent.ASC) * direction;\n }\n }\n\n lengthOnChange(value: number) {\n\n // todo commento\n // console.warn('lengthOnChange: ', value, this.paginationInfo)\n\n if (value != undefined && (!this.paginationInfo || value != this.paginationInfo.pageSize)) {\n\n let eventoPaginazione: Pagination = {};\n\n if (this.externalPaginationSorting) {\n\n eventoPaginazione = {...this.paginationInfo};\n\n } else if (this.tableLength != value) {\n\n this.tableLength = value;\n eventoPaginazione = {};\n\n // todo comment\n // console.info('lengthOnChange')\n this.emitSubset(1);\n }\n\n eventoPaginazione.pageSize = value;\n eventoPaginazione.pageNumber = 1;\n // console.warn('lengthOnChange emit: ', eventoPaginazione)\n this.pagination.emit(eventoPaginazione);\n }\n }\n\n pageOnChange(page: number) {\n\n // todo commento\n // console.warn('pageOnChange: ', page)\n\n if (page != undefined) {\n\n let eventoPaginazione: Pagination;\n\n if (this.externalPaginationSorting) {\n\n eventoPaginazione = {...this.paginationInfo};\n\n } else {\n\n eventoPaginazione = {};\n this.emitSubset(page);\n }\n\n eventoPaginazione.pageNumber = page;\n // console.warn('pageOnChange', eventoPaginazione)\n this.pagination.emit(eventoPaginazione);\n }\n }\n\n emitSubset(page: number) {\n // todo\n // console.info('emitSubset', page, this.externalPaginationSorting, this.elements)\n\n if (page && !this.externalPaginationSorting && this.elements != undefined) {\n\n // console.info('xxx')\n\n let a: any[];\n\n let firstElementIndex = this.tableLength * (page - 1);\n\n let lastIndex: number = Number(firstElementIndex) + Number(this.tableLength);\n\n a = this.elements.slice(firstElementIndex, lastIndex);\n\n this.currentPage = page;\n this.subsetChange.emit(a);\n }\n }\n\n visualizzaPaginazione(): boolean {\n\n return !this.disabilitaPaginazione\n && (this.elements != undefined || (this.externalPaginationSorting != undefined && this.paginationInfo != undefined));\n }\n\n setSortDirection(thLabel: ThLabelComponent, direction: 'asc' | 'desc') {\n\n if (thLabel) {\n\n switch (direction) {\n\n case \"asc\":\n thLabel.direction = ThLabelComponent.ASC;\n break;\n\n case \"desc\":\n thLabel.direction = ThLabelComponent.DESC;\n break;\n\n default:\n thLabel.direction = ThLabelComponent.UNSORTED;\n break\n }\n\n this.modificaTh(thLabel);\n }\n }\n}\n\nexport class Pagination {\n\n static readonly ASC: string = 'asc';\n static readonly DESC: string = 'desc';\n\n fullListSize?: number;\n pageNumber?: number;\n pageSize?: number;\n sortProperty?: string;\n sortDirection?: string;\n}\n\nexport interface ElementsChange extends SimpleChange {\n\n}\n\nexport interface PaginationChange extends SimpleChange {\n\n}\n\nexport interface PagedTableRendererChanges extends SimpleChanges {\n\n elements?: ElementsChange,\n paginationInfo?: PaginationChange\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {DateFormat} from \"../input-date/input-date.component\";\n\n@Component({\n selector: 'inail-date-range',\n templateUrl: './input-date-range.component.html',\n styleUrls: ['./input-date-range.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputDateRangeComponent extends FormElementComponent implements OnInit, OnChanges {\n\n dataDalValue: string;\n dataAlValue: string;\n\n @Input()\n hasErrorDal: boolean;\n @Input()\n descErrorDal: string;\n @Input()\n hasErrorAl: boolean;\n @Input()\n descErrorAl: string;\n @Input()\n modelFormat: DateFormat;\n\n @Output()\n dataDalChange = new EventEmitter<string>();\n\n @Output()\n dataAlChange = new EventEmitter<string>();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: DateRangeChanges) {\n\n if ((changes.dataAl && !changes.dataAl.firstChange) || (changes.dataDal && !changes.dataDal.firstChange)) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n @Input()\n get dataDal() {\n return this.dataDalValue;\n }\n\n set dataDal(val) {\n this.dataDalValue = val;\n this.dataDalChange.emit(this.dataDalValue);\n }\n\n @Input()\n get dataAl() {\n return this.dataAlValue;\n }\n\n set dataAl(val) {\n this.dataAlValue = val;\n this.dataAlChange.emit(this.dataAlValue);\n }\n\n checkDescError(): boolean {\n\n return isNotEmptyOrNull(this.descError);\n }\n}\n\ninterface DateRangeChanges extends SimpleChanges{\n\n dataDal: SimpleChange;\n dataAl: SimpleChange;\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-tab-pane',\n templateUrl: './tab-pane.component.html',\n styleUrls: ['./tab-pane.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TabPaneComponent implements OnInit, OnChanges {\n\n @Input()\n id: string;\n\n @Input()\n title: string;\n\n @Input()\n active: boolean;\n\n @Input()\n required: boolean;\n\n @Output()\n selected: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes && changes.active) {\n\n this.selected.emit(changes.active.currentValue);\n }\n }\n}\n","import {AfterViewInit, Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, ViewEncapsulation} from '@angular/core';\nimport {TabPaneComponent} from \"../tab-pane/tab-pane.component\";\n\n@Component({\n selector: 'inail-tab-group',\n templateUrl: './tab-group.component.html',\n styleUrls: ['./tab-group.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TabGroupComponent implements OnInit, AfterViewInit {\n\n @ContentChildren(TabPaneComponent)\n panes: QueryList<TabPaneComponent>;\n\n @Input()\n id: string;\n\n @Output()\n selected: EventEmitter<string> = new EventEmitter<string>();\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n\n if(!this.panes.some((pane: TabPaneComponent) => pane.active)){\n\n setTimeout(() => {\n this.panes.toArray()[0].active = true;\n });\n }\n }\n\n isActive(id: string): boolean {\n\n return this.panes.some((pane: TabPaneComponent) => {\n\n return pane.id == id && pane.active\n });\n }\n\n active(id: string) {\n\n this.selected.emit(id);\n\n this.panes.forEach((pane: TabPaneComponent) => {\n\n pane.active = pane.id == id;\n })\n }\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\n@Component({\n selector: 'inail-content',\n templateUrl: './content.component.html',\n styleUrls: ['./content.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ContentComponent extends BasicUxElementComponent implements OnInit {\n\n @Input()\n hidden: boolean = false;\n\n @Input()\n rendered: boolean = true;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n}\n","import {\n AfterViewInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {Observable} from \"rxjs\";\nimport {ContentComponent} from \"../content/content.component\";\n\n@Component({\n selector: 'inail-wizard',\n templateUrl: './inail-wizard.component.html',\n styleUrls: ['./inail-wizard.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InailWizardComponent extends BasicUxElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n steps: WizardStep[];\n\n @Input()\n showNumber: boolean = true;\n\n @Input()\n showCarattereSeparatore: boolean = true;\n\n @Input()\n carattereSeparatore: string = '>';\n\n @Input()\n fullNavigation: boolean = false;\n\n @Input()\n contentsHidden: boolean = true;\n\n @Input()\n currentStep: number = 0;\n\n @Output()\n select = new EventEmitter<WizardStep>();\n\n @Input()\n switchToFirstError: Observable<any>;\n\n @Input()\n prevButtonTitle: string = 'scorri wizard a destra';\n\n @Input()\n nextButtonTitle: string = 'scorri wizard a sinistra';\n\n @ViewChild(\"prevButton\")\n prevButton: ElementRef<HTMLButtonElement>;\n\n @ViewChild(\"nextButton\")\n nextButton: ElementRef<HTMLButtonElement>;\n\n @ViewChild(\"slickTrack\")\n slickTrack: ElementRef<HTMLElement>\n\n @ViewChildren(\"slickSlide\")\n slickSlide: QueryList<ElementRef<HTMLElement>>\n\n @ContentChildren(ContentComponent)\n contenuti: QueryList<ContentComponent>;\n\n inizializzazioneContenutiCompletata: boolean = false;\n\n firstVisibleStep: number = 0;\n totalTranslate: number = 0;\n\n constructor(private re2: Renderer2) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n\n if (changes.switchToFirstError && changes.switchToFirstError.currentValue) {\n\n changes.switchToFirstError\n .currentValue.subscribe(\n () => {\n\n let firstErrorStep: WizardStep = this.steps.find((step: WizardStep) => step.error);\n\n if (firstErrorStep) {\n this.stepOnClick(firstErrorStep);\n }\n }\n )\n }\n\n if (changes.steps && !changes.steps.isFirstChange()) {\n\n this.inizializzaSteps();\n }\n }\n\n ngOnInit() {\n\n if (this.currentStep == undefined) {\n\n this.currentStep = 0;\n }\n\n this.inizializzaSteps();\n }\n\n ngAfterViewInit(): void {\n\n this.inizializzaContenuti(this.contenuti);\n }\n\n public inizializzaContenuti(contenuti: QueryList<ContentComponent>) {\n\n this.contenuti = contenuti;\n\n if (this.contenuti && this.contenuti.length > 0) {\n\n let step = this.steps.find(step => step.index == this.currentStep);\n this.showContent(step);\n setTimeout(() => this.inizializzazioneContenutiCompletata = true);\n }\n }\n\n private inizializzaSteps() {\n\n if (this.steps) {\n\n this.steps.forEach((step: WizardStep, index) => {\n\n if (step) {\n\n step.index = index\n }\n })\n }\n }\n\n // private inizializzaCourousel() {\n //\n // // console.warn('BBBBBBBBBBBBBBBBB')\n //\n // /* Initialize slick */\n // // @ts-ignore\n // $('.courousel-varible-width').slick({\n // dots: false,\n // infinite: false,\n // arrows: true,\n // speed: 300,\n // slidesToShow: 1,\n // centerMode: false,\n // variableWidth: true,\n // prevArrow: '<button type=\"button\" class=\"slick-prev fa fa-caret-left\"></button>',\n // nextArrow: '<button type=\"button\" class=\"slick-next fa fa-caret-right\"></button>'\n // });\n //\n // setTimeout(() => {\n // // @ts-ignore\n // $('#wizard .slick-slide').removeAttr('tabindex');\n //\n // // @ts-ignore\n // $('#wizard .slick-slide .item > a').removeAttr('tabindex');\n // }, 500)\n //\n // // TODO messo qui non funziona!\n // // setTimeout(() => {\n // // this.stepLinks.forEach((elem: ElementRef) => {\n // //\n // // elem.nativeElement.setAttribute('tabindex', '0');\n // // })\n // // })\n // }\n\n stepOnClick(step: WizardStep) {\n\n if (step.index < this.currentStep || (step.index > this.currentStep && this.fullNavigation)) {\n\n this.currentStep = step.index;\n this.select.emit(step);\n }\n\n if (this.contenuti && this.contenuti.length > 0) {\n\n this.showContent(step);\n }\n }\n\n isActive(stepIndex: number) {\n\n // return (this.fullNavigation && stepIndex != this.currentStep) || stepIndex < this.currentStep;\n return (this.fullNavigation) || stepIndex <= this.currentStep;\n }\n\n getAriaLabelValue(step: WizardStep) {\n\n if (step.index == this.currentStep) {\n\n return 'Step corrente';\n } else if (step.index < this.currentStep) {\n\n return 'Step precedente';\n } else {\n return 'Step successivo';\n }\n }\n\n getStepLabel(step: WizardStep, isLast) {\n\n return step.label\n .concat(step.required ? ' *' : '')\n .concat(this.showCarattereSeparatore ? ' ' : '')\n .concat(!isLast && this.showCarattereSeparatore ? this.carattereSeparatore : '');\n }\n\n showContent(step: WizardStep) {\n\n if (step) {\n\n let same: boolean = false;\n\n this.contenuti.forEach((item: ContentComponent, index: number) => setTimeout(() => {\n\n same = step.code ? item.id == step.code : index == step.index;\n\n if (this.contentsHidden) {\n\n item.hidden = !same;\n } else {\n\n item.rendered = same;\n }\n }));\n }\n }\n\n prevButtonOnClick() {\n\n\n this.translate(120);\n\n // if (this.firstVisibleStep > 0) {\n //\n // let width: number = this.slickSlide.toArray()[this.firstVisibleStep - 1].nativeElement.clientWidth;\n // this.translate(width);\n // this.firstVisibleStep--;\n // }\n }\n\n nextButtonOnClick() {\n\n this.translate(-120);\n\n // if (this.firstVisibleStep < (this.slickSlide.length - 1)) {\n //\n // let width: number = this.slickSlide.toArray()[this.firstVisibleStep].nativeElement.clientWidth;\n // this.translate(-width);\n // this.firstVisibleStep++;\n // }\n }\n\n translate = (px: number) => {\n\n this.totalTranslate += px;\n this.re2.setStyle(this.slickTrack.nativeElement, 'transform', `translate(${this.totalTranslate}px)`);\n };\n\n onFocus(step) {\n // console.warn(step)\n }\n}\n\nexport class WizardStep {\n\n label: string;\n code?: string;\n index?: number;\n title?: string;\n required?: boolean;\n error?: boolean;\n}\n","import {AfterViewChecked, AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\n// import '@ckeditor/ckeditor5-build-decoupled-document/build/translations/it';\n\nconst defaultConfig = {\n editable: true,\n spellcheck: false,\n toolbarHiddenButtons: [\n [\n 'strikethrough',\n 'subscript',\n 'superscript'\n ],\n [\n 'customClasses',\n 'link',\n 'unlink',\n 'insertImage',\n 'insertVideo',\n 'insertHorizontalRule',\n 'removeFormat',\n 'toggleEditorMode'\n ]\n ]\n}\n\n@Component({\n selector: 'inail-text-editor-old',\n templateUrl: './text-editor.component.html',\n styleUrls: ['./text-editor.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TextEditorComponent extends FormElementComponent implements OnInit, AfterViewInit, OnDestroy, AfterViewChecked {\n\n textValue: string;\n\n @Output()\n textChange = new EventEmitter();\n\n @Output()\n ready = new EventEmitter();\n\n // @Input()\n // config = {language: 'it'};\n\n @Input()\n config = {...defaultConfig};\n\n viewInit: boolean = false;\n editor;\n\n status: 'IN_CREATION' | 'READY' | 'NOT_CREATED' = \"NOT_CREATED\";\n\n constructor() {\n super()\n // viene fatta la concatenazione della lettera\n // xke document.querySelector va in errore se l'id inizia per un numero!!\n this.id = 'a' + this.id;\n }\n\n ngOnChanges(changes: TextAreaChanges): void {\n\n if (changes.text && !changes.text.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n\n if (this.viewInit && changes.disabled) {\n\n if (changes.disabled.currentValue === false || changes.disabled.currentValue == undefined) {\n\n // this.createEditor();\n\n } else if (changes.disabled.currentValue === true) {\n\n // this.destoryEditor();\n }\n }\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.label)) {\n\n this.label = 'Testo';\n this.hiddenLabel = true;\n }\n }\n\n @Input()\n get text() {\n\n return this.textValue\n }\n\n set text(val) {\n\n if (this.editor && val != undefined && val != this.textValue) {\n\n this.editor.setData(val);\n }\n\n this.textValue = val;\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n ngAfterViewInit(): void {\n\n // @ts-ignore\n $('style:contains(\"::ng-deep\")').each((index, element) => {\n element.innerHTML = element.innerHTML.replace(/::ng-deep/g, '');\n });\n\n if (!(this.disabled === true)) {\n\n // this.createEditor();\n }\n\n this.viewInit = true;\n\n // TODO: deve essere fatto al caricamento dello script ckeditor.js\n // fixCKEditorStyleSheet();\n }\n\n ngAfterViewChecked(): void {\n\n // Questa cosa viene fatta per permette all'editor\n // di renderizzarsi se inizialmente contenuto in un\n // elemento nascosto da un *ngIf = false\n\n // NOTA: ne il costruttore ne il metodo ngOnInit\n // vengono invovati quando il componente e'\n // contenuto in un elemento che utilizza *ngIf\n // nel momento in cui il suo valore commuta da false a true.\n // Questo sembrerebbe essere proprio un\n // comportamento di Angular\n\n let editorElement = document.getElementById(this.id);\n\n // console.info('ngAfterViewChecked:---------------------------')\n // console.info('status', this.status)\n // console.info('editor', this.editor)\n // console.info('editorElement', editorElement)\n\n if (editorElement) {\n\n this.createEditor();\n }\n }\n\n createEditor() {\n\n let editorElement = document.getElementById(this.id);\n\n // Innesco la creazione dell'editor solamente se\n // l'oggetto non e' stato gia creato\n // ed e' presente nel DOM l'elemento\n // in cui creare l'editor\n if (!this.editor && editorElement && this.isNotCreated()) {\n\n this.status = \"IN_CREATION\";\n\n setTimeout(() => {\n\n // @ts-ignore\n DecoupledEditor\n .create(document.querySelector('#' + this.id), this.config)\n .then(editor => {\n\n this.status = \"READY\";\n\n this.emitDebug('Text editor creato:')\n this.emitDebug(editor)\n\n this.editor = editor;\n\n // Creazione della toolbar\n document.querySelector('#' + this.id + '-toolbar-container').appendChild(editor.ui.view.toolbar.element);\n\n this.onReady(editor);\n\n editor.model.document.on('change:data', () => {\n this.textValue = editor.getData();\n this.textChange.emit(this.textValue);\n });\n\n fixCKEditorW3CErrors();\n })\n .catch(error => {\n this.status = \"NOT_CREATED\";\n this.emitError(\"Errore inizializzazione CKEditor\");\n this.emitError(error);\n });\n });\n }\n }\n\n onReady(editor) {\n\n // Rende accessibli da tastiera i pulsanti\n // della toolbar del CKEditor\n // @ts-ignore\n $('.ck-toolbar__items button').attr(\"tabindex\", \"0\");\n this.ready.emit(editor);\n }\n\n ngOnDestroy(): void {\n this.destoryEditor();\n this.status = \"NOT_CREATED\";\n }\n\n destoryEditor() {\n\n if (this.editor != undefined) {\n\n this.editor.destroy();\n }\n }\n\n isReady() {\n\n return this.status === 'READY';\n }\n\n isInCreation() {\n\n return this.status === 'IN_CREATION';\n }\n\n isNotCreated() {\n\n return this.status === 'NOT_CREATED';\n }\n}\n\nexport const fixCKEditorW3CErrors = () => {\n\n // @ts-ignore\n let ckBalloons: any[] = $('.ck.ck-balloon-rotator');\n\n if (ckBalloons) {\n\n // @ts-ignore\n ckBalloons.each((index => {\n\n // @ts-ignore\n $(ckBalloons[index]).attr('data-z-index', '-1');\n\n // @ts-ignore\n $(ckBalloons[index]).removeAttr('z-index');\n }));\n }\n}\n\n/**\n * Modifica il contenuto dei fogli di stile iniettati nella pagina\n * dal componente CKEditor in modo da passare la validazione W3C\n */\nexport const fixCKEditorStyleSheet = () => {\n\n // @ts-ignore\n let ckStyleSheets: any[] = $('style[data-cke]');\n\n if (ckStyleSheets) {\n\n // @ts-ignore\n ckStyleSheets.each(index => {\n\n if (ckStyleSheets[index]) {\n ckStyleSheets[index].innerText = ckStyleSheets[index].innerText\n .replace(/min\\(10%,30px\\)/g, '30px')\n .replace(/var\\(--ck-font-size-base\\)/g, '13px')\n .replace(/var\\(--ck-line-height-base\\)/g, '1.84615')\n .replace(/var\\(--ck-font-face\\)/g, 'Helvetica,Arial,Tahoma,Verdana,Sans-Serif')\n .replace(/var\\(--ck-color-focus-border-coordinates\\)/g, '208,79%,51%')\n .replace(/var\\(--ck-switch-button-toggle-width\\)/g, '2.6153846154em')\n .replace(/var\\(--ck-switch-button-toggle-inner-size\\)/g, '1.0769230769em')\n .replace(/var\\(--ck-switch-button-toggle-spacing\\)/g, '1px')\n .replace(/var\\(--ck-spacing-unit\\)/g, '0.6em')\n .replace(/var\\(--ck-spacing-large\\)/g, 'calc(0.6em*1.5)')\n .replace(/var\\(--ck-border-radius\\)/g, '2px')\n .replace(/var\\(--ck-switch-button-translation\\)/g, '1px')\n .replace(/var\\(--ck-widget-outline-thickness\\)/g, '3px')\n .replace(/::ng-deep/g, '');\n }\n })\n }\n}\n\ninterface TextAreaChanges extends SimpleChanges {\n\n text: SimpleChange;\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\n@Component({\n selector: 'inail-form-grey',\n templateUrl: './form-grey.component.html',\n styleUrls: ['./form-grey.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FormGreyComponent extends BasicUxElementComponent implements OnInit {\n\n @Input()\n titolo: string;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {AfterViewInit, Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {InailWizardComponent, WizardStep} from \"../inail-wizard/inail-wizard.component\";\nimport {Observable} from \"rxjs\";\nimport {ContentComponent} from \"../content/content.component\";\n\n@Component({\n selector: 'inail-selector',\n templateUrl: './selector.component.html',\n styleUrls: ['./selector.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class SelectorComponent extends BasicUxElementComponent implements OnInit, AfterViewInit {\n\n @Input()\n steps: WizardStep[];\n\n @Input()\n currentStep: number;\n\n @Input()\n contentsHidden: boolean = true;\n\n @Output()\n select = new EventEmitter<WizardStep>();\n\n @Input()\n switchToFirstError: Observable<any>;\n\n @Input()\n prevButtonTitle: string = 'scorri selettore a destra';\n\n @Input()\n nextButtonTitle: string = 'scorri selettore a sinistra';\n\n @ContentChildren(ContentComponent)\n contenuti: QueryList<ContentComponent>;\n\n @ViewChild(InailWizardComponent)\n wizard: InailWizardComponent;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n stepOnClick(step: WizardStep) {\n\n this.select.emit(step);\n }\n\n ngAfterViewInit(): void {\n\n if(this.wizard) {\n\n this.wizard.inizializzaContenuti(this.contenuti);\n }\n }\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {Observable} from \"rxjs\";\nimport {abilitaScrollPagina} from \"../../../../utils/Util\";\n\nconst KEYCODE_TAB = 9;\n\n@Component({\n selector: 'inail-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ModalComponent extends BasicUxElementComponent implements OnInit, OnChanges {\n\n @Input()\n titolo: string;\n @Output()\n close: EventEmitter<void> = new EventEmitter();\n @Input()\n show: Observable<boolean>;\n @Input()\n width: 'M' | 'L' | 'XL';\n\n pageActiveElement: any;\n previusFocusableElements: any;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes.show) {\n\n changes.show.currentValue.subscribe((show: boolean) => {\n\n if (show == undefined) {\n\n show = true;\n }\n\n if (show === true) {\n\n this.pageActiveElement = document.activeElement;\n\n // @ts-ignore\n let focusbleElemets = $('body').find(':focusable');\n let i = focusbleElemets.index(this.pageActiveElement)\n this.previusFocusableElements = focusbleElemets.filter((index) => index < focusbleElemets.index(this.pageActiveElement));\n\n // console.warn('this.pageActiveElement', this.pageActiveElement)\n // console.warn('this.previusFocusableElement', this.previusFocusableElements)\n }\n\n this.showModal(show);\n })\n }\n }\n\n showModal(show: boolean) {\n\n // @ts-ignore\n jQuery(\"#\" + this.id).modal(show ? 'show' : 'hide');\n\n if (show) {\n\n setTimeout(() => {\n this.trapFocus()\n }, 500);\n\n abilitaScrollPagina(false);\n } else {\n this.close.emit();\n abilitaScrollPagina(true);\n setTimeout(() => this.setFocusOnLastPageActiveElement(), 500);\n }\n }\n\n trapFocus() {\n\n // @ts-ignore\n let thisModal = jQuery(\"#\" + this.id);\n\n let focusableEls = thisModal.find(\".modal-content\").find(':focusable');\n let firstFocusableEl = focusableEls[0];\n let lastFocusableEl = focusableEls[focusableEls.length - 1];\n\n firstFocusableEl.focus();\n\n // @ts-ignore\n thisModal[0].addEventListener('keydown', (e) => {\n if (e.key === 'Tab' || e.keyCode === KEYCODE_TAB) {\n\n if (e.shiftKey) /* shift + tab */ {\n if (document.activeElement === firstFocusableEl) {\n lastFocusableEl.focus();\n e.preventDefault();\n }\n } else /* tab */ {\n if (document.activeElement === lastFocusableEl) {\n firstFocusableEl.focus();\n e.preventDefault();\n }\n }\n }\n });\n }\n\n ngOnInit() {\n\n if (this.width == undefined) {\n\n this.width = 'L';\n }\n }\n\n closeOnClick() {\n\n this.showModal(false);\n }\n\n setFocusOnLastPageActiveElement = () => {\n\n if (this.pageActiveElement != undefined) {\n\n // @ts-ignore\n if ($(this.pageActiveElement).length > 0) {\n\n this.pageActiveElement.focus()\n } else {\n\n this.setFocusOnPreviusFocusableElement(this.previusFocusableElements.length - 1)\n }\n\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // @ts-ignore\n // if ($(this.pageActiveElement).length > 0) {\n //\n // this.pageActiveElement.focus()\n // } else {\n //\n // this.setFocusOnPreviusFocusableElement(this.previusFocusableElements.length - 1)\n // }\n //\n // clearInterval(checkLoading);\n // }\n // }, 50);\n }\n }\n\n setFocusOnPreviusFocusableElement(index: number) {\n\n if (index >= 0) {\n\n // @ts-ignore\n if ($(this.previusFocusableElements[index]).length > 0) {\n\n this.previusFocusableElements[index].focus();\n\n } else {\n\n this.setFocusOnPreviusFocusableElement(index - 1);\n }\n }\n }\n}\n\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\nimport {Observable} from \"rxjs\";\nimport {abilitaScrollPagina, isEmptyOrNull} from \"../../../../utils/Util\";\n\nconst KEYCODE_TAB = 9;\n\n@Component({\n selector: 'inail-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AlertComponent extends BasicUxElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n titolo: string;\n @Input()\n testo: string;\n @Input()\n show: EventEmitter<any>;\n // show: Observable<boolean>;\n @Output()\n close: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('modalContent')\n modalContent: ElementRef;\n visualizzaContent: boolean = true;\n\n // pageActiveElement: any;\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // if (changes.show) {\n //\n // changes.show.currentValue.subscribe((show: boolean) => {\n //\n // if (show == undefined) {\n //\n // show = true;\n // }\n //\n // if (show === true) {\n //\n // this.pageActiveElement = document.activeElement;\n // // console.info('pageActiveElement', this.pageActiveElement)\n // }\n //\n // // @ts-ignore\n // jQuery(\"#\" + this.id).modal(show ? 'show' : 'hide');\n //\n // if (show) {\n //\n // setTimeout(() => {\n // this.trapFocus()\n // }, 500);\n //\n // abilitaScrollPagina(false);\n // }\n // else {\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n // }\n // })\n // }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.titolo)) {\n\n this.titolo = 'Messaggio informativo';\n }\n\n if(this.show == undefined) {\n\n this.show = new EventEmitter<any>();\n }\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {\n this.visualizzaContent = this.modalContent.nativeElement.firstChild.childNodes.length > 0;\n });\n }\n\n // trapFocus() {\n //\n // // @ts-ignore\n // let thisModal = jQuery(\"#\" + this.id);\n //\n // let focusableEls = thisModal.find(\".modal-content\").find(':focusable');\n // let firstFocusableEl = focusableEls[0];\n // let lastFocusableEl = focusableEls[focusableEls.length - 1];\n //\n // firstFocusableEl.focus();\n //\n // // @ts-ignore\n // thisModal[0].addEventListener('keydown', (e) => {\n // if (e.key === 'Tab' || e.keyCode === KEYCODE_TAB) {\n //\n // if (e.shiftKey) /* shift + tab */ {\n // if (document.activeElement === firstFocusableEl) {\n // lastFocusableEl.focus();\n // e.preventDefault();\n // }\n // } else /* tab */ {\n // if (document.activeElement === lastFocusableEl) {\n // firstFocusableEl.focus();\n // e.preventDefault();\n // }\n // }\n // }\n // });\n // }\n\n // xOnClick() {\n // this.close.emit();\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n // }\n\n // closeAlert() {\n // // document.getElementById(this.id + '_close_button').click();\n // // @ts-ignore\n // jQuery(\"#\" + this.id).modal('hide');\n // this.setFocusOnLastPageActiveElement();\n // abilitaScrollPagina(true);\n // }\n\n okOnClick() {\n // this.closeAlert();\n // this.close.emit();\n\n this.show.emit(false);\n }\n\n // setFocusOnLastPageActiveElement = () => {\n //\n // if (this.pageActiveElement != undefined) {\n //\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // console.info('loader-overlay = 0') // todo togliere\n // this.pageActiveElement.focus()\n // clearInterval(checkLoading);\n // }\n // }, 50);\n // }\n // }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isNotEmptyOrNull} from \"../../../../utils/Util\";\n\n@Component({\n selector: 'inail-input-number',\n templateUrl: './input-number.component.html',\n styleUrls: ['./input-number.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputNumberComponent extends FormElementComponent implements OnInit, OnChanges {\n\n @Input()\n max: number;\n @Input()\n min: number;\n @Input()\n step: number;\n @Input()\n defaultValue: number;\n valueValue: number;\n previousValue: number;\n\n @Input()\n numberOfDecimals: number;\n\n @Output()\n valueChange = new EventEmitter<number>();\n\n @ViewChild(\"inputElement\")\n inputElement: ElementRef<HTMLInputElement>;\n\n ngOnChanges(changes: InputTextChanges): void {\n\n if (changes.value) {\n\n // console.info(changes.value.currentValue)\n\n this.previousValue = changes.value.previousValue;\n\n this.normalizzaValore();\n\n if (!changes.value.firstChange && this.cleanErrorOnChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n\n if(this.showPopover()) {\n\n // @ts-ignore\n $(`#${this.id}-popover`).popover();\n }\n }\n\n private normalizzaValore() {\n\n setTimeout(() => {\n\n if (!this.disabled) {\n\n if (this.min != undefined && this.valueValue < this.min) {\n\n this.value = this.previousValue != undefined ? this.previousValue : this.min;\n\n } else if (this.max != undefined && this.valueValue > this.max) {\n\n this.value = this.previousValue != undefined ? this.previousValue : this.max;\n }\n }\n })\n }\n\n @Input()\n get value() {\n\n return this.valueValue;\n }\n\n set value(val) {\n\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n onKeyUp() {\n\n // console.info('onKeyUp', )\n\n if(this.valueValue != undefined && !this.checkDecimal()) {\n\n // console.info('BAD')\n this.valueValue = this.previousValue;\n this.valueChange.emit(this.valueValue);\n }\n\n // Serve per fare in modo che non rimanga visualizzato\n // qualcosa di diverso da un numero.\n // Nativamente l'elemento html restituisce undefined\n // se si prova a scrivere qualcosa diverso da un numero\n // ma mantiene il valore non numerico visualizzato nell'input\n if(this.valueValue == undefined) {\n\n this.inputElement.nativeElement.value = undefined;\n }\n }\n\n checkDecimal() {\n\n // console.info('checkDecimal', this.valueValue)\n\n if (this.numberOfDecimals != undefined) {\n\n let a = (String(this.valueValue)).split('.');\n\n // console.info('a', a, a.length < 2, a[1].length)\n\n return (this.numberOfDecimals > 0 && (a.length == 1 || a[1].length <= this.numberOfDecimals)) || (this.numberOfDecimals == 0 && a.length == 1);\n }\n\n return true;\n }\n}\n\ninterface InputTextChanges extends SimpleChanges {\n\n value: SimpleChange;\n}\n","import {AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, QueryList, SimpleChanges, ViewChildren, ViewEncapsulation} from '@angular/core';\nimport {NavigationEnd, Router} from \"@angular/router\";\nimport {BaseComponent} from \"../../base/base.component\";\nimport {Observable} from \"rxjs\";\nimport {isFunction} from 'rxjs/internal-compatibility';\nimport {v4 as uuid} from 'uuid';\nimport {filter} from \"rxjs/operators\";\nimport {call} from \"../../../../utils/Util\";\n\nexport declare type CheckFn = () => boolean;\nexport declare type GetStringFn = () => string;\n\nconst FOCUSABLE_ITEMS_SELECTOR = 'ul.inail-menu-style-encapsulation > li > a:not([tabindex=\"-1\"])';\n\n// declare var $: any;\n\n@Component({\n selector: 'inail-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MenuComponent extends BaseComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n id: string;\n\n /**\n * id dell'elemento che si vuole attivare.\n * Se specificato fa diventare bold la voce di menu associata\n */\n @Input()\n activeElement: string;\n\n /**\n * Reimposta gli elementi del menu con quelli specificato in input.\n * Se non vengono specificati nuovi elementi ricarica quelli attuali.\n */\n @Input()\n reload: Observable<MenuElement[]>;\n\n /**\n * Emette l'elemento del menu\n * che corrisponde all'url corrente.\n */\n @Input()\n emitCurrent: Observable<any>;\n\n /**\n * Collassa il menu\n */\n @Input()\n collapse: Observable<string>;\n\n /**\n * Espande le voci di menu del livello principale.\n * Se specificato un id espande il ramo del menu\n * che porta all'elemento con l'id specificato.\n */\n @Input()\n show: Observable<string>;\n\n /**\n * Effettua il toggle sulle voci di menu del livello principale.\n * Se specificato un id effettua il toggle\n * dell'elemento con l'id specificato.\n */\n @Input()\n toggle: Observable<string>;\n\n /**\n * Espande tutte le voci del menu\n * comprese quelle dei livelli annidati\n */\n @Input()\n showAll: Observable<any>;\n\n /**\n * Effettua il toggle di tutte le voci di menu\n * comprese quelle dei livelli annidati\n */\n @Input()\n toggleAll: Observable<any>;\n\n /**\n * Elementi del menu\n */\n @Input()\n elements: MenuElement[];\n\n /**\n * Elemento parent del menu.\n * ( Questo input non dovrebbe essere dato se non per motivi particolari )\n */\n @Input()\n parent: MenuElement;\n\n /**\n * Se true disabilita il meccanismo che imposta in maniera automatica\n * i parent degli elementi\n */\n @Input()\n disabilitaImpostazioneParents: boolean;\n\n /**\n * Se true disabilita la sovrascrittura della proprieta\n * link negli elementi del menu\n * quando la proprieta linkRegex matcha\n * con l'url corrente\n */\n disabilitaOverrideLink: boolean;\n\n /**\n * Se true abilita l'effetto fisarmonica\n * sulle voci di menu espandibili.\n * Questa impostazione viene sovrascritta se specificato diversamente\n * negli elementi del menu\n */\n @Input()\n collapsOtherEffetc: boolean;\n\n /**\n * Se true indica che le voci del menu sono collassabili.\n * Questa impostazione viene sovrascritta se specificato diversamente\n * negli elementi del menu\n */\n @Input()\n collapsible: boolean;\n\n /**\n * Indica lo stato iniziale del menu, se colassato o espanso.\n * Questa impostazione viene sovrascritta se specificato diversamente\n * negli elementi del menu\n */\n @Input()\n collapsed: boolean;\n\n /**\n * Se true espande automaticamente il percorso\n * verso un elemento\n * quando questo si riferisce all'url corrente\n */\n @Input()\n espandiPercorsoAutomaticamente: boolean = true;\n\n @Input()\n menuClass: string;\n\n /**\n * Emette la voce di menu selezionata.\n */\n @Output()\n select: EventEmitter<MenuElement> = new EventEmitter<MenuElement>();\n\n /**\n * Emette la voce di menu che corrisponde\n * con l'url corrente\n * dopo un evento di routing\n */\n @Output()\n currentElement: EventEmitter<MenuElement> = new EventEmitter<MenuElement>();\n\n // @ContentChildren(MenuComponent)\n // sottoMenu: QueryList<MenuComponent>;\n\n @ViewChildren(MenuComponent)\n sottoMenu: QueryList<MenuComponent>;\n\n innerMenu: boolean = false;\n inizializzazioneCompletata: boolean = false;\n mostraElemento: EventEmitter<string> = new EventEmitter<string>();\n\n getPropertyValue = (property: string | GetStringFn) => isFunction(property) ? (property as GetStringFn)() : property;\n\n getItemTitle = (item: MenuElement): string => this.getPropertyValue(item.title);\n getItemAriaLabel = (item: MenuElement): string => this.getPropertyValue(item.ariaLabel);\n\n constructor(public router: Router, private cdr: ChangeDetectorRef) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n this.emitDebug('MenuComponent changes:')\n this.emitDebug(changes)\n\n if (changes.elements && changes.elements.currentValue) {\n\n this.setParents(changes.elements.currentValue, this.parent);\n this.impostaUrlEffettivi();\n this.emitCurrentElement();\n }\n\n if (changes.reload && changes.reload.currentValue) {\n\n changes.reload.currentValue.subscribe((elements: MenuElement[]) => {\n\n this.elements = [].concat(elements || this.elements);\n this.setParents(this.elements, this.parent);\n this.impostaUrlEffettivi();\n this.emitCurrentElement();\n })\n }\n\n if (changes.emitCurrent && changes.emitCurrent.currentValue) {\n\n changes.emitCurrent.currentValue.subscribe(() => {\n\n // console.warn('Emit current!!!!')\n // console.warn('this.router.url', this.router.url)\n // console.warn('this.elements', this.elements)\n // console.warn('this.elements.link', this.elements.map(value => this.getElementLink(value)))\n // console.warn('this.elements.linkRegex', this.elements.map(value => this.getElementLinkRegex(value)))\n\n this.emitCurrentElement()\n })\n }\n\n\n if (changes.collapse && changes.collapse.currentValue) {\n\n changes.collapse.currentValue.subscribe((id: string) => {\n\n id == undefined ? this.collassaLivello() : this.collassaElemento(id);\n })\n }\n\n if (changes.show && changes.show.currentValue) {\n\n changes.show.currentValue.subscribe((id: string) => {\n\n id == undefined ? this.espandiLivello() : this.espandiPercorso(id);\n })\n }\n\n if (changes.toggle && changes.toggle.currentValue) {\n\n changes.toggle.currentValue.subscribe((id: string) => {\n\n id == undefined ? this.toggleLivello() : this.toggleElemento(id);\n })\n }\n\n if (changes.showAll && changes.showAll.currentValue) {\n\n changes.showAll.currentValue.subscribe(() => this.espandiTutti());\n }\n\n if (changes.toggleAll && changes.toggleAll.currentValue) {\n\n changes.toggleAll.currentValue.subscribe(() => this.toggleTutti());\n }\n }\n\n ngOnInit() {\n\n // Impostazioni di default\n\n if (this.disabilitaImpostazioneParents == undefined) {\n\n this.disabilitaImpostazioneParents = false;\n }\n\n if (this.disabilitaOverrideLink == undefined) {\n\n this.disabilitaOverrideLink = false;\n }\n\n if (this.collapsible == undefined) {\n\n this.collapsible = false;\n }\n\n if (this.collapsible === false) {\n\n this.collapsed = false;\n }\n\n if (this.collapsed == undefined) {\n\n this.collapsed = this.collapsible === true;\n }\n\n if (this.collapsOtherEffetc == undefined) {\n\n this.collapsOtherEffetc = false;\n }\n\n if (this.elements != undefined && this.elements.length > 0) {\n\n // Impostazioni di default per gli elementi\n this.elements.forEach((elem: MenuElement) => {\n\n if (elem.id == undefined) {\n\n elem.id = uuid();\n }\n\n // if(elem.autoShow == undefined) {\n //\n // elem.autoShow = false;\n // }\n\n if (elem.show == undefined) {\n\n // elem.show = elem.autoShow !== true;\n elem.show = true;\n }\n\n if (elem.collapsible == undefined) {\n\n elem.collapsible = this.collapsible;\n }\n\n if (elem.collapsible === false) {\n\n elem.collapsed = false;\n }\n\n if (elem.collapsed == undefined) {\n\n elem.collapsed = elem.collapsible === true;\n }\n\n if (elem.collapseOther == undefined) {\n\n elem.collapseOther = this.collapsOtherEffetc;\n }\n })\n }\n\n this.inizializzazioneCompletata = true;\n\n this.impostaUrlEffettivi();\n this.emitCurrentElement();\n\n // Ricerca ed emissione della voce di menu\n // corrispondente all'elemento corrente.\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(() => {\n // console.warn(`[${this.id}] NavigationEnd`)\n this.impostaUrlEffettivi();\n this.emitCurrentElement();\n });\n }\n\n ngAfterViewInit(): void {\n\n this.sottoMenu.forEach((inner: MenuComponent) => inner.innerMenu = true);\n // this.removeAriaExpanded(this.id, 500);\n }\n\n /**\n * Serve per rimuovere l'attributo aria-expanded dagli elementi ul\n * perche da specifiche W3C dovrebbe trovarsi solo sull'elemento a\n *\n * @param id\n * @param ms\n */\n removeAriaExpanded(id: string, ms?: number) {\n\n let elem = document.getElementById(id)\n\n if (elem) {\n setTimeout(() => {\n elem.removeAttribute('aria-expanded');\n }, ms || 50);\n }\n }\n\n /**\n * Sovrascrive la proprieta link degli elementi del menu\n * se la proprieta linkRegex matcha con l'url corrente.\n */\n impostaUrlEffettivi() {\n\n if (this.elements && this.elements.length > 0) {\n\n this.elements.forEach(this.impostaUrlEffettivo);\n }\n }\n\n /**\n * Sovrascrive la proprieta link dell'elemento del menu\n * se la proprieta linkRegex matcha con l'url corrente.\n */\n impostaUrlEffettivo = (element: MenuElement) => {\n\n if (!this.disabilitaOverrideLink && element && this.isCurrentUrl(this.getElementLinkRegex(element))) {\n\n element.link = this.router.url;\n }\n }\n\n /**\n * Emette l'elemento\n * associato all'url corrente\n */\n emitCurrentElement() {\n\n // console.warn(`[${this.id}] emitCurrentElement`)\n\n let element: MenuElement = this.findCurrentElement(this.elements);\n\n // console.warn(`[${this.id}] elemento trovato`, element)\n\n if (element != undefined) {\n\n this.impostaUrlEffettivo(element);\n\n this.emitDebug(\"Emissione elemento menu url corrente:\");\n this.emitDebug(element);\n // console.warn('Elemento emesso: ', element)\n this.currentElement.emit(element);\n\n if (this.isEffettoFisarmonicaAbilitato(element)) {\n\n this.collapseOther(element);\n }\n }\n }\n\n /**\n * Ricerca l'elemento di menu inerente\n * l'url corrente\n *\n * @param elements\n */\n private findCurrentElement(elements: MenuElement[]): MenuElement {\n\n let element: MenuElement = undefined;\n\n if (elements != undefined && elements.length > 0) {\n\n elements.forEach((elem: MenuElement) => {\n\n if (element == undefined && elem != undefined && this.isCurrentPageElement(elem)) {\n\n element = elem;\n }\n })\n }\n\n return element;\n }\n\n /**\n *\n * @param id\n * @param elements\n */\n findElement(id: string, elements: MenuElement[]) {\n\n let element: MenuElement = undefined;\n\n if (elements != undefined && elements.length > 0) {\n\n elements.forEach((elem: MenuElement) => {\n\n if (element == undefined && elem != undefined) {\n\n element = elem.id == id ? elem : this.findElement(id, elem.subElements);\n }\n })\n }\n\n return element;\n }\n\n isCollapsed(element: MenuElement) {\n\n return element && element.collapsed === true;\n }\n\n /**\n *\n * @param element\n */\n isActive(element: MenuElement) {\n\n return this.activeElement\n ? (element.id == this.activeElement)\n : this.isCurrentPageElement(element);\n }\n\n /**\n * Verifica che l'elemento in input\n * sia associato all'url corrente\n *\n * @param element\n */\n isCurrentPageElement = (element: MenuElement): boolean => {\n\n if (element.debug === true) {\n // console.warn('isCurrentPageElement', element);\n // console.warn('getElementLinkRegex', this.getElementLinkRegex(element));\n // console.warn('isCurrentUrl', this.isCurrentUrl(this.getElementLinkRegex(element)));\n\n let result = this.isCurrentUrl(this.getElementLink(element))\n || this.isCurrentUrl(this.getElementLinkRegex(element))\n || (element.activeLinks != undefined\n && element.activeLinks.some(this.isCurrentUrl));\n\n // console.warn('result', result);\n }\n\n return this.isCurrentUrl(this.getElementLink(element))\n || this.isCurrentUrl(this.getElementLinkRegex(element))\n || (element.activeLinks != undefined\n && element.activeLinks.some(this.isCurrentUrl))\n }\n\n getElementLink(element: MenuElement): string {\n\n return isFunction(element.link) ? (element.link as GetStringFn)() : element.link\n }\n\n getElementLinkRegex(element: MenuElement): string {\n\n return isFunction(element.linkRegex) ? (element.linkRegex as GetStringFn)() : element.linkRegex;\n }\n\n getElementLabel(element: MenuElement): string {\n\n return isFunction(element.label) ? (element.label as GetStringFn)() : element.label\n }\n\n /**\n * Verifica che l'url dato in input\n * sia quello corrente\n *\n * @param url\n */\n isCurrentUrl = (url: string): boolean => {\n\n // console.warn('isCurrentUrl', url)\n // console.warn('url corrente', this.router.url)\n\n return url != undefined\n && this.router.url\n .split('?')[0]\n .match(new RegExp('^'.concat(url).concat('$'), 'i')) != null;\n // .match(new RegExp(url, 'i')) != null;\n };\n\n /**\n * Restituisce true se l'elemento\n * deve essere visualizzato\n *\n * @param element\n */\n showElement = (element: MenuElement): boolean => {\n\n return element.show === true\n || element.show == undefined\n || (isFunction(element.show) && (element.show as CheckFn)() === true)\n || this.isAutoShowElement(element);\n }\n\n /**\n * Restituisce true se l'elemento\n * deve essere visualizzato in automatico\n * quando corrisponde all'url corrente\n * o se uno dei suoi nodi figli\n * e' un elemento che deve essere visualizzato in automatico.\n *\n * @param element\n */\n isAutoShowElement = (element: MenuElement): boolean => {\n\n return element.show === AUTO_SHOW\n && (this.isCurrentPageElement(element)\n || (element.subElements && element.subElements.some(this.isAutoShowElement)));\n }\n\n hasSubElements(element: MenuElement): boolean {\n\n return element && element.subElements && element.subElements.length > 0\n }\n\n /**\n * Collassa gli elementi del livello corrente\n */\n public collassaLivello() {\n\n this.doCollapse(\"hide\");\n }\n\n public collassaElemento(id: string) {\n\n this.doCollapseElement(id, \"hide\");\n }\n\n public espandiLivello() {\n\n this.doCollapse(\"show\");\n }\n\n public espandiElemento(id: string) {\n\n // console.warn(`[${this.id}] espandiElemento`, id)\n\n this.doCollapseElement(id, \"show\");\n }\n\n /**\n *\n * @param id\n */\n public espandiPercorso(id: string) {\n\n // console.warn(`[${this.id}] espandiPercorso`, this.id, id)\n\n if (this.elements) {\n\n this.elements.forEach((elem: MenuElement) => {\n\n // console.warn(`[${this.id}] Elemento menu`, this.id, elem)\n\n let innerElem: MenuElement = this.findElement(id, elem.subElements);\n\n // console.warn(`[${this.id}] innerElem`, this.id, innerElem)\n\n if ((elem && elem.id == id) || innerElem != undefined) {\n\n this.espandiElemento(elem.id);\n\n if (innerElem) {\n\n this.mostraElemento.emit(id);\n }\n }\n })\n }\n }\n\n // TODO: Non toggla solo il livello ma toggla tutto!\n public toggleLivello() {\n\n this.doCollapse(\"toggle\");\n }\n\n public toggleElemento(id: string) {\n\n // // @ts-ignore\n // let ariaExpandedValue = $('#' + id).attr('aria-expanded') == 'true'\n //\n // if (ariaExpandedValue != undefined) {\n //\n // // Questo lo faccio per modificare il valore dell'attributo aria-expanded\n // // prima che Jaws catturi l'elemento\n // // in modo da evitare che, alla commutazione dello stato aperto/chiuso,\n // // Jaws legga l'opposto di quello che dovrebbe leggere.\n // // @ts-ignore\n // $('#' + id).attr('aria-expanded', (ariaExpandedValue == 'true' ? 'false' : 'true'));\n // }\n\n this.doCollapseElement(id, \"toggle\");\n }\n\n /**\n * Collassa tutti gli elementi, anche quelli dei livelli sottostanti\n */\n public collassaTutti() {\n\n this.doCollapseAll(\"hide\")\n }\n\n public espandiTutti() {\n\n this.doCollapseAll(\"show\")\n }\n\n public toggleTutti() {\n\n this.doCollapseAll(\"toggle\")\n }\n\n public doCollapse(mode: string) {\n\n // @ts-ignore\n // jQuery(`#${this.id} > li > inail-menu > ul.collapse`).collapse(mode);\n\n // @ts-ignore\n let e = $(`#${this.id} > li > inail-menu > ul.collapse`);\n call(e, 'collapse', mode)\n }\n\n public doCollapseElement(id: string, mode: string) {\n\n // @ts-ignore\n // jQuery(`#${this.id} > li > a#${id}`).next().find('>ul.collapse').collapse(mode);\n\n // @ts-ignore\n let e = $(`#${this.id} > li > a#${id}`);\n call(e, 'next').call('find', '>ul.collapse').call('collapse', mode);\n }\n\n public doCollapseAll(mode: string) {\n\n // @ts-ignore\n // jQuery(`#${this.id} .collapse`).collapse(mode);\n\n // @ts-ignore\n let e = $(`#${this.id} .collapse`);\n call(e, 'collapse', mode);\n }\n\n setParents(elements: MenuElement[], parent: MenuElement) {\n\n if (!this.disabilitaImpostazioneParents && elements != undefined && elements.length > 0) {\n\n elements.forEach((element: MenuElement) => {\n\n if (element != undefined) {\n\n if (parent) {\n\n element.parent = this.toLightElement(parent);\n }\n\n this.setParents(element.subElements, element);\n }\n })\n }\n }\n\n toLightElement(e: MenuElement): MenuElement {\n\n return e != undefined\n ? {\n id: e.id,\n label: e.label,\n link: e.link,\n parent: this.toLightElement(e.parent)\n }\n : undefined\n }\n\n elementOnClick(element: MenuElement) {\n\n if (element) {\n\n if (element.callback && isFunction(element.callback)) {\n\n element.callback();\n }\n\n if (this.isEffettoFisarmonicaAbilitato(element)) {\n\n this.collapseOther(element);\n }\n\n // this.removeAriaExpanded(element.id + '-items');\n }\n\n this.select.emit(element)\n }\n\n /**\n * Effetto fisarmonica\n *\n * @param element\n */\n collapseOther(element: MenuElement) {\n\n if (element) {\n\n this.elements.forEach((elem: MenuElement) => {\n\n if (elem && elem.id != element.id) {\n\n this.collassaElemento(elem.id);\n }\n })\n\n // this.sottoMenu.forEach((menu: MenuComponent) => {\n //\n // if (menu != undefined && menu.id != element.id + '-items') {\n //\n // // console.warn(`[${this.id}] menu`, menu.id)\n //\n // menu.collassaLivello();\n // }\n // })\n }\n }\n\n /**\n *\n * @param element\n */\n isEffettoFisarmonicaAbilitato(element: MenuElement): boolean {\n\n return element\n && element.collapseOther === true\n && element.subElements != undefined\n && element.subElements.length > 0\n }\n\n /**\n *\n * @param element\n */\n forwardCurrent(element: MenuElement) {\n\n if (element) {\n\n // console.warn(`[${this.id}] forwardCurrent`, element)\n\n this.currentElement.emit(element)\n\n // console.warn(`[${this.id}] Inner menu`, this.innerMenu)\n\n if (this.innerMenu === false && this.espandiPercorsoAutomaticamente === true) {\n\n this.espandiPercorso(element.id);\n }\n }\n }\n\n onKeyupSpace($event: Event) {\n\n // @ts-ignore\n $($event.target).click();\n }\n\n // @ts-ignore\n isExpanded = (element: MenuElement) => element && $('#' + element.id).attr('aria-expanded') == 'true';\n isCollapsible = (element: MenuElement) => element.collapsible && this.hasSubElements(element);\n\n itemOnArrowDown() {\n\n let focusableItems = this.focusableItems;\n let item = focusableItems.filter((index) => index > focusableItems.index(document.activeElement)).first();\n\n if(item) {\n\n item.focus();\n }\n }\n\n itemOnArrowUp() {\n\n let focusableItems = this.focusableItems;\n let item = focusableItems.filter((index) => index < focusableItems.index(document.activeElement)).last();\n\n if(item) {\n\n item.focus();\n }\n }\n\n get focusableItems() {\n\n return window['$']('body').find(FOCUSABLE_ITEMS_SELECTOR);\n }\n}\n\nconst AUTO_SHOW = 'auto'\n\nexport declare type MenuElementShowMode = 'auto'\n\nexport class MenuElement {\n\n id: string;\n label: string | GetStringFn;\n title?: string | GetStringFn;\n ariaLabel?: string | GetStringFn;\n link?: string | GetStringFn;\n linkRegex?: string | GetStringFn;\n queryParams?: {\n [k: string]: any;\n }\n callback?: Function;\n activeLinks?: string[];\n show?: boolean | CheckFn | MenuElementShowMode;\n collapsible?: boolean;\n collapsed?: boolean;\n collapseOther?: boolean\n subElements?: MenuElement[];\n parent?: MenuElement;\n debug?: boolean;\n}\n","import {ExternalResource, ExternalScript} from \"./static-resources\";\n\nconst REL_STYLESHEET = 'stylesheet';\nconst REL_ICON = 'icon';\nconst MEDIA_SCREEN = 'screen';\nconst MEDIA_PRINT = 'print';\nconst TYPE_CSS = 'text/css';\nconst TYPE_IMAGE_ICON = 'image/x-icon';\nconst TYPE_JAVASCRIPT = 'text/javascript';\n\n// const BASE_PATH = '/assets/app/ssi';\nconst BASE_PATH = '/assets/app/webkit-addon/1.0.0/static_Inail';\n\nexport const webkitExternalResources: ExternalResource[] = [\n\n // Favicon\n // {href: `/img/favicon.ico`, rel: REL_ICON, type: TYPE_IMAGE_ICON},\n\n // CSS Media screen\n // {href: `/css/bootstrap.min.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/bootstrap.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN, assetUrl: BASE_PATH},\n {href: `/css/foglia.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/custom.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN, assetUrl: BASE_PATH},\n {href: `/css/form.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/font-awesome.min.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN, assetUrl: `${BASE_PATH}/font-awesome-4.3.0`},\n {href: `/js/datepicker/bootstrap-datepicker3.standalone.min.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/home_sezione.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/servizi.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/intranet.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n {href: `/css/jquery-ui.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN, assetUrl: BASE_PATH},\n\n // CSS Media print\n {href: `/css/print.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_PRINT}, // TODO inserire in cdn\n {href: `/css/print_intranet.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_PRINT}, // TODO inserire in cdn\n\n // Questo CSS e' del webkit. Da specifiche non andrebbe importato,\n // risulta pero' necessario per la corretta visualizzazione.\n {href: `/css/custom-webkit.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN}, // TODO inserire in cdn\n\n // CSS Webkit v3.1.0\n {href: `/css/slick.css`, rel: REL_STYLESHEET, type: TYPE_CSS, media: MEDIA_SCREEN} // TODO inserire in cdn\n]\n\nexport const webkitExternalScripts: ExternalScript[] = [\n\n // JS Head Intranet\n {src: `/js/modernizr.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n {src: `/js/jquery-1.11.1.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n // {src: `/js/jquery-ui.min.js`, type: TYPE_JAVASCRIPT}, // TODO inserire in cdn\n {src: `/js/jquery-ui.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n {src: `/js/bootstrap.min.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n\n // Inizializzazione date picker\n // {src: `/js/datepicker/bootstrap-datepicker.min.js`, type: TYPE_JAVASCRIPT}, // TODO inserire in cdn\n {src: `/js/datepicker/bootstrap-datepicker.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n {src: `/js/datepicker/bootstrap-datepicker.it.min.js`, type: TYPE_JAVASCRIPT, assetUrl: BASE_PATH},\n\n // SCRIPT per SLIDER MENU\n // {src: `/vendor/jquery-ui-1.11.4.custom/jquery-ui.min.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/main.js`, type: TYPE_JAVASCRIPT}, // TODO inserire in cdn\n\n // Altro // TODO inserire in cdn\n {src: `/js/print.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/spid-sp-access-button.min.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/jquery.rwdImageMaps.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/custom-webkit.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/combobox.js`, type: TYPE_JAVASCRIPT},\n {src: `/js/slick.js`, type: TYPE_JAVASCRIPT}\n];\n\n","export const DEFAULT_ASSETS_URL = '/static';\nexport const DEFAULT_ASSETS_INTRA_URL = '/static_intra';\nexport const API_DEFAULT_URL = '/api';\n","import {AfterViewInit, Component, Directive, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\n\nexport const VALIDATION_BTN_CLASS: string = 'validation-btn'\n\n@Component({\n selector: 'inail-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonComponent extends FormElementComponent implements OnInit, AfterViewInit {\n\n validationBtnClass: string = VALIDATION_BTN_CLASS;\n\n @Input()\n btnSuccess: boolean;\n\n @Input()\n btnLink: boolean;\n\n @Input()\n submit: boolean;\n\n @Input()\n angleRight: boolean;\n\n @Input()\n angleLeft: boolean;\n\n @Input()\n iconLeft: string;\n\n @Input()\n iconRight: string;\n\n @Output()\n onclick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>()\n\n @ViewChild('buttonContent')\n buttonContent: ElementRef;\n visualizzaContent: boolean = true;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {\n this.visualizzaContent = this.buttonContent.nativeElement.childNodes.length > 0;\n });\n }\n\n onClick($event: MouseEvent) {\n\n this.onclick.emit($event)\n }\n}\n","import {AfterViewInit, Component, ContentChildren, ElementRef, HostListener, Input, OnInit, QueryList, Renderer2, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent, LogLevel} from \"../../../base/base.component\";\nimport {HeaderConfigurations} from \"../header/header.component\";\nimport {InfoDipendente} from \"../navigazione-utente/navigazione-utente.component\";\nimport {MODAL_CONFIRM_CLASS} from \"../../confirm/confirm.component\";\nimport {GetStringFn, MenuComponent, MenuElement} from \"../../menu/menu.component\";\nimport {PaginaApplicativa} from \"../../breadcrumb/breadcrumb.component\";\nimport {Router} from \"@angular/router\";\nimport {isFunction} from \"rxjs/internal-compatibility\";\nimport {ExternalResource, ExternalScript} from \"../../../../../static-resources\";\nimport {webkitExternalResources, webkitExternalScripts} from \"../../../../../webkit-resources\";\nimport {isAbsolute, isNotEmptyOrNull} from \"../../../../../utils/Util\";\nimport {API_DEFAULT_URL, DEFAULT_ASSETS_INTRA_URL, DEFAULT_ASSETS_URL} from \"../layout-common-config\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {VALIDATION_BTN_CLASS} from \"../../button/button.component\";\n\ntype ResourceType = 'script' | 'link';\n\ninterface LoadedResource {\n\n loaded: boolean,\n resource: ExternalResource | ExternalScript\n}\n\ninterface LoadedResourceResponse {\n\n resource: string\n loaded: boolean,\n status: string\n}\n\n/**\n * Il componente renderizza l'intero layout dell'applicazione.\n *\n * Comprende gli elementi comuni a tutte le applicazioni INAIL:\n * Header, footer, spazio per breadcrumb e menu laterale.\n *\n * Il componente implementa autonomamente il meccanismo per rendere responsive l'applicazione,\n * secondo quanto richiesto nelle linee guida INAIL.\n *\n * E' possibile iniettare nel layout renderizzato il contenuto principale delle pagine,\n * il breadcrumb, il menu applicativo ed il sottomenu.\n *\n * Inoltre e' possibile permettere al componente di recuperare in automatico le informazioni inerenti\n * l'utente loggato e gli html visulizzati nell'header e nel footer\n * oppure passare esplicitamente queste informazioni dall'esterno.\n *\n * Infine e' possibile far iniettare al componente le risorse statiche necessarie,\n * passandole in input e facendole recuperare in automatico\n * senza doverle specificare nell'index.html\n */\n@Component({\n selector: 'inail-layout',\n templateUrl: './inail-layout.component.html',\n styleUrls: ['./inail-layout.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InailLayoutComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n headerConfig: HeaderConfigurations;\n\n /**\n * Se true visualizza il loader\n */\n @Input()\n showLoader: boolean;\n\n @Input()\n config: InailLayoutConfigurations;\n\n @Input()\n infoDipendente: InfoDipendente;\n\n /**\n * Lista delle risorse esterne da utilizzare per la corretta visualizzazione del layout.\n * Vengono caricate automaticamente solo se il comportamento viene abilitato\n * tramite la proprieta di configrazione caricamentoDinamicoRisorseEsterne.\n * Se per le risorse non vengono specificati degli url assoluti\n * vegono recuperate in base a quanto specificato nelle proprita di configurazione\n * cdnEndpoint ed assetsUrl.\n */\n @Input()\n externalResources: ExternalResource[];\n\n /**\n * Lista degli scripts esterni da utilizzare per il corretto funzionamento del layout.\n * Vengono caricati automaticamente solo se il comportamento viene abilitato\n * tramite la proprieta di configrazione caricamentoDinamicoScriptEsterni.\n * Se per gli script non vengono specificati degli url assoluti\n * vegono recuperati in base a quanto specificato nelle proprita di configurazione\n * cdnEndpoint ed assetsUrl.\n */\n @Input()\n externalScripts: ExternalScript[];\n\n @ViewChild('breadcrumbContainer')\n breadcrumbContainer: ElementRef;\n\n @ContentChildren(MenuComponent)\n menuList: QueryList<MenuComponent>;\n\n paginaCorrente: PaginaApplicativa;\n\n breadcrumbEsterno: boolean = true;\n inizializzazioneTerminata: boolean = false;\n\n constructor(private renderer: Renderer2,\n private http: HttpClient,\n private _elementRef: ElementRef,\n private router: Router) {\n\n super()\n }\n\n @HostListener('click', ['$event.target'])\n onClick(elem: HTMLElement) {\n\n // console.warn('onClick', elem) // todo togliere\n\n // Controllo che il click sia stato fatto\n // su un pulsante submit\n if (this.config.focusOnFirstError && this.isSubmitButton(elem)) {\n\n this.log.emit({level: LogLevel.DEBUG, message: 'Submit button clicked'})\n // console.warn('Submit button clicked') // todo togliere\n\n setFocusOnFirstError(this.config.scrollToFirstError);\n }\n }\n\n private isSubmitButton(elem: HTMLElement): boolean {\n\n return elem\n && ((elem.nodeName == \"BUTTON\"\n && elem.attributes\n && elem.attributes.getNamedItem('type')\n && elem.attributes.getNamedItem('type').nodeValue === 'submit') || this.isSubmitButton(elem.parentElement));\n }\n\n /**\n * @Deprecato\n * Verifica se l'elemento e' un button di validazione\n *\n * @param elem\n */\n private isValidationButton(elem: HTMLElement): boolean {\n\n return elem && ((elem.nodeName == \"BUTTON\" && this.hasClassValidationBtn(elem)) || this.isValidationButton(elem.parentElement));\n }\n\n /**\n *\n * @param elem\n */\n hasClassValidationBtn(elem: HTMLElement): boolean {\n\n return elem && elem.classList && elem.classList.contains(VALIDATION_BTN_CLASS);\n }\n\n ngOnInit() {\n\n this.init();\n }\n\n private async init() {\n\n this.removeNgVersion(this._elementRef.nativeElement)\n\n this.gestioneEventiFineNavigazione();\n\n if (this.config) {\n\n this.emitDebug(\"Configurazioni InailLayoutComponent\");\n this.emitDebug(this.config);\n\n if (!this.config.cdnEndpoint && this.config.recuperoAutomaticoCdnEnpoint === true) {\n\n await this.recuperaCdnEnpoint();\n }\n\n this.headerConfig = {\n\n clientId: this.config.clientId,\n domainUrl: this.config.domainUrl,\n apiGatewayUrl: this.config.apiGatewayUrl,\n assetsUrl: this.config.assetsUrl,\n intranet: this.config.intranet,\n logoutUrl: this.config.logoutUrl,\n cdnEndpoint: this.config.cdnEndpoint,\n menuIntranetUrl: this.config.menuIntranetUrl,\n menuIntranetHtml: this.config.menuIntranetHtml,\n navigazionePrincipaleUrl: this.config.navigazionePrincipaleUrl,\n navigazionePrincipaleHtml: this.config.navigazionePrincipaleHtml,\n profiloUtenteUrl: this.config.profiloUtenteUrl,\n visualizzaNotificheUtente: this.config.visualizzaNotificheUtente,\n visualizzaMenuCercaUtente: this.config.visualizzaMenuCercaUtente,\n cercaPersonePageUrl: this.config.cercaPersonePageUrl,\n recuperoAutomaticoDatiUtente: this.config.recuperoAutomaticoDatiUtente\n }\n }\n\n if (this.config.caricamentoDinamicoRisorseEsterne === true) {\n\n await this.loadRisorseEsterne(this.externalResources || webkitExternalResources, 'link');\n }\n\n if (this.config.caricamentoDinamicoScriptEsterni === true) {\n\n await this.loadRisorseEsterne(this.externalScripts || webkitExternalScripts, 'script');\n }\n\n this.inizializzazioneTerminata = true;\n }\n\n private removeNgVersion(nativeElement) {\n\n if (nativeElement) {\n\n if (nativeElement.hasAttribute && nativeElement.hasAttribute('ng-version')) {\n\n nativeElement.removeAttribute(\"ng-version\");\n } else {\n this.removeNgVersion(nativeElement.parentElement);\n }\n }\n }\n\n /**\n *\n * @param risorseEsterne\n * @param type\n */\n private async loadRisorseEsterne(risorseEsterne: (ExternalResource | ExternalScript)[], type: ResourceType) {\n\n if (isNotEmptyOrNull(this.config.cdnEndpoint)) {\n\n risorseEsterne.forEach((resource: ExternalResource | ExternalScript) => this.impostaPathRisorsa2(resource, type));\n }\n\n let loadedResources: LoadedResource[] = [];\n risorseEsterne.forEach((risorsa: ExternalResource | ExternalScript) => loadedResources.push({loaded: false, resource: risorsa}));\n\n switch (type) {\n\n case \"link\":\n await this.caricaRisorseEsterne(loadedResources);\n break;\n case \"script\":\n await this.caricaScriptEsterni(loadedResources);\n break;\n }\n }\n\n /**\n *\n * @param risorsaEsterna\n * @param type\n */\n private impostaPathRisorsa(risorsaEsterna: ExternalResource | ExternalScript, type: ResourceType) {\n\n let url = '';\n\n if (!isAbsolute(risorsaEsterna.assetUrl)) {\n\n url = risorsaEsterna.cdnEndpoint || this.config.cdnEndpoint || '';\n }\n\n url = url.concat(risorsaEsterna.assetUrl || this.config.assetsUrl || (this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL));\n\n switch (type) {\n\n case \"link\":\n\n if (!isAbsolute((risorsaEsterna as ExternalResource).href)) {\n\n // (resourceEsterna as ExternalResource).href = `${this.config.cdnEndpoint}${(resourceEsterna as ExternalResource).href}`\n (risorsaEsterna as ExternalResource).href = `${url}${(risorsaEsterna as ExternalResource).href}`\n }\n break;\n\n case \"script\":\n\n if (!isAbsolute((risorsaEsterna as ExternalScript).src)) {\n\n // (resourceEsterna as ExternalScript).src = `${this.config.cdnEndpoint}${(resourceEsterna as ExternalScript).src}`\n (risorsaEsterna as ExternalScript).src = `${url}${(risorsaEsterna as ExternalScript).src}`\n }\n break;\n }\n }\n\n /**\n *\n * @param risorsaEsterna\n * @param type\n */\n private impostaPathRisorsa2(risorsaEsterna: ExternalResource | ExternalScript, type: ResourceType) {\n\n let urlProperty: string;\n\n switch (type) {\n\n case \"link\":\n urlProperty = 'href'\n break;\n\n case \"script\":\n urlProperty = 'src'\n break;\n }\n\n risorsaEsterna.assetUrl = !isAbsolute(risorsaEsterna[urlProperty])\n ? risorsaEsterna.assetUrl || this.config.assetsUrl || (this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL)\n : '';\n\n risorsaEsterna.cdnEndpoint = !isAbsolute(risorsaEsterna.assetUrl)\n ? risorsaEsterna.cdnEndpoint || this.config.cdnEndpoint || ''\n : '';\n }\n\n /**\n *\n * @param resources\n * @param index\n */\n private async caricaRisorseEsterne(resources: LoadedResource[], index: number = 0) {\n\n if (index < resources.length) {\n\n try {\n\n this.emitDebug('Caricamento risorsa esterna:');\n this.emitDebug(resources[index]);\n\n let response: LoadedResourceResponse = await this.creaElementoRisorsaEsterna(resources[index], 'link');\n\n this.emitDebug('...caricamento risorsa esterna completato');\n this.emitDebug(response);\n\n } catch (e) {\n this.emitError('Errore caricamento risorsa esterna!');\n this.emitError(e);\n }\n\n await this.caricaRisorseEsterne(resources, index + 1);\n }\n }\n\n /**\n *\n * @param scripts\n * @param index\n */\n private async caricaScriptEsterni(scripts: LoadedResource[], index: number = 0) {\n\n if (index < scripts.length) {\n\n setTimeout(() => {\n this.emitDebug('Caricamento script esterno:');\n this.emitDebug(scripts[index]);\n\n this.creaElementoRisorsaEsterna(scripts[index], 'script')\n .then((response: LoadedResourceResponse) => {\n\n this.emitDebug('...caricamento script esterno completato');\n this.emitDebug(response);\n })\n .catch((e) => {\n this.emitError('Errore caricamento script esterno!');\n this.emitError(e);\n })\n .finally(() => this.caricaScriptEsterni(scripts, index + 1));\n\n }, this.config.scriptLoadingDeelay || 300);\n }\n }\n\n /**\n *\n *\n * @param resource\n * @param type\n */\n private async creaElementoRisorsaEsterna(resource: LoadedResource, type: ResourceType): Promise<LoadedResourceResponse> {\n\n return new Promise((resolve, reject) => {\n\n let resourceUrl: string = resource.resource['src'] || resource.resource['href']\n\n //resolve if already loaded\n if (resource.loaded) {\n\n resolve({resource: resourceUrl, loaded: true, status: 'Already Loaded'});\n } else {\n\n let resourceElement: any;\n\n switch (type) {\n\n case 'script':\n resourceElement = createScriptElement((resource.resource as ExternalScript));\n break;\n case 'link':\n resourceElement = createLinkElement((resource.resource as ExternalResource));\n break;\n }\n\n if (resourceElement.readyState) { //IE\n\n resourceElement.onreadystatechange = () => {\n\n if (resourceElement.readyState === \"loaded\" || resourceElement.readyState === \"complete\") {\n resourceElement.onreadystatechange = null;\n resource.loaded = true;\n resolve({resource: resourceUrl, loaded: true, status: 'Loaded'});\n }\n };\n\n } else { //Others\n resourceElement.onload = () => {\n resource.loaded = true;\n resolve({resource: resourceUrl, loaded: true, status: 'Loaded'});\n };\n }\n\n resourceElement.onerror = (error: any) => reject({resource: resource.resource, loaded: false, status: 'Loaded'});\n document.head.appendChild(resourceElement);\n }\n });\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {\n this.breadcrumbEsterno = this.breadcrumbContainer ? this.breadcrumbContainer.nativeElement.childElementCount > 0 : false;\n });\n\n if (this.menuList && this.menuList.length > 0) {\n\n this.menuList.forEach((menu: MenuComponent) => {\n\n menu.currentElement.subscribe((currentElement: MenuElement) => {\n\n if (currentElement != undefined) {\n\n this.paginaCorrente = this.toPaginaApplicativa(currentElement);\n }\n })\n })\n }\n }\n\n private gestioneEventiFineNavigazione() {\n\n // this.router.events\n // .pipe(filter(event => event instanceof NavigationEnd))\n // .subscribe((event: NavigationEnd) => {\n //\n // let element: MenuElement = this.findMenuElement(event.urlAfterRedirects);\n // this.paginaCorrente = this.toPaginaApplicativa(element);\n // });\n }\n\n // private findMenuElement(urlAfterRedirects: string): MenuElement {\n //\n // let element: MenuElement = undefined;\n //\n // if (this.menuList != undefined && this.menuList.length > 0) {\n //\n // let allMenuElements: MenuElement[] = [];\n //\n // this.menuList.forEach((menu: MenuComponent) => {\n //\n // allMenuElements = allMenuElements.concat(menu.elements);\n // })\n //\n // element = this.findVoceMenu(allMenuElements, urlAfterRedirects);\n // }\n //\n // return element;\n // }\n\n // private findVoceMenu(elements: MenuElement[], url): MenuElement {\n //\n // let element: MenuElement = undefined;\n //\n // if (elements != undefined && elements.length > 0) {\n //\n // elements.forEach((elem: MenuElement) => {\n //\n // if (element == undefined && elem != undefined) {\n //\n // element = (elem.link == url) ? elem : this.findVoceMenu(elem.subElements, url);\n // }\n // })\n // }\n //\n // return element;\n // }\n\n private toPaginaApplicativa(element: MenuElement): PaginaApplicativa {\n\n return element != undefined\n ? {\n titolo: this.getElementLabel(element),\n url: this.getElementLink(element),\n parent: this.toPaginaApplicativa(element.parent)\n }\n : undefined\n }\n\n getElementLink(element: MenuElement): string {\n\n return isFunction(element.link) ? (element.link as GetStringFn)() : element.link\n }\n\n getElementLabel(element: MenuElement): string {\n\n return isFunction(element.label) ? (element.label as GetStringFn)() : element.label\n }\n\n /**\n * Recupera da Api Gateway l'endpoint della cdn\n * e lo imposta nella configurazione del componente.\n */\n private async recuperaCdnEnpoint() {\n\n try {\n\n let url = (!isAbsolute(this.config.apiGatewayUrl) ? (this.config.domainUrl || '') : '')\n + (this.config.apiGatewayUrl || API_DEFAULT_URL)\n + '/.well-known/inail-configuration';\n\n let response: InailConfigurationResponse = await this.http.get<InailConfigurationResponse>(url, {withCredentials: true}).toPromise();\n this.config.cdnEndpoint = response.cdn_endpoint;\n\n } catch (e) {\n\n this.emitError(\"Errore nel recupero del cdnEnpoint da api gateway\");\n this.emitError(e);\n }\n }\n}\n\ninterface InailConfigurationResponse {\n\n cdn_endpoint: string;\n}\n\nconst scrollToElement = (id: string) => {\n\n setTimeout(() => {\n const elem = document.getElementById(id);\n if (elem) {\n scrollTo(elem.getBoundingClientRect().top + window.pageYOffset - 50);\n }\n });\n};\n\nconst scrollTo = (top: number) => {\n setTimeout(() => {\n window.scroll({top, left: 0, behavior: 'smooth'});\n });\n};\n\nconst createLinkElement = (resource: ExternalResource) => {\n\n let element = document.createElement('link');\n\n let url = resource.cdnEndpoint + resource.assetUrl + resource.href;\n\n addProperty(element, 'rel', resource.rel);\n addProperty(element, 'type', resource.type);\n addProperty(element, 'href', url);\n addProperty(element, 'media', resource.media);\n addProperty(element, 'hreflang', resource.hreflang);\n\n return element;\n}\n\nconst createScriptElement = (script: ExternalScript) => {\n\n let element = document.createElement('script');\n\n let url = script.cdnEndpoint + script.assetUrl + script.src;\n\n addProperty(element, 'src', url);\n addProperty(element, 'type', script.type);\n addProperty(element, 'charset', script.charset);\n\n if (script.async === true) {\n\n element.async = true;\n }\n\n if (script.defer === true) {\n\n element.defer = true;\n }\n\n return element;\n}\n\nconst addProperty = (elem: any, name: string, value: string) => {\n\n if (elem != undefined && value != undefined) {\n\n elem[name] = value;\n }\n}\n\nexport class InailLayoutConfigurations {\n\n /**\n * Se true visualizza il menu intranet\n */\n intranet?: boolean;\n\n /**\n * Se true imposta automaticamente il focus sul primo elemento\n * di input andato in errore\n */\n focusOnFirstError?: boolean;\n\n /**\n * Se true imposta effettua uno scrolling all'elemento\n * andato in errore prima di impostare il focus\n */\n scrollToFirstError?: boolean;\n\n /**\n * Se true visualizza le notifiche utente\n */\n visualizzaNotificheUtente?: boolean;\n\n /**\n * Se true visulizza il menu cerca utente\n */\n visualizzaMenuCercaUtente?: boolean;\n\n /**\n * Se true permette al layout di occupare l'intera larghezza dello schermo\n */\n containerWide?: boolean;\n\n /**\n * Se true abilita il caricamento automatico delle risorse esterne.\n * Vengono creati ed inettati nel tag <head> i tag <link>\n * inerenti le risorse esterne necessarie alla\n * corretta visualizzazione dell'applicazione.\n * Se non passate in input al componente\n * vengono caricate le risorse di default.\n * todo: inserire lista risorse (vedere file webkit-resources.ts)\n * Le risorse di default vengono recuperate dal dominio\n * specificato tramite la proprieta cdnEndpoint e cercate\n * nel sottopath specificato tramite proprieta assetsUrl\n */\n caricamentoDinamicoRisorseEsterne?: boolean;\n\n /**\n * Se true abilita il caricamento automatico degli script esterni.\n * Vengono creati ed inettati nel tag <head> i tag <script>\n * inerenti gli script necessari al\n * corretto funzionamento dell'applicazione.\n * Se non passati in input al componente\n * vengono caricati gli script di default.\n * todo: inserire lista scripts (vedere file webkit-resources.ts)\n * Gli scripts di default vengono recuperati dal dominio\n * specificato tramite la proprieta cdnEndpoint e cercati\n * nel sottopath specificato tramite proprieta assetsUrl\n */\n caricamentoDinamicoScriptEsterni?: boolean;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente per customizzare i comportamenti automatici\n * (come il recupero dei frammenti html che costituiscono l'header ed il recupero\n * delle info inerenti l'utente loggato)\n * e per customizzare gli href negli html di default (header e footer) nel caso in cui non vengano passati\n * degli specifici html o non sia stato possibile recuperare quelli in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n domainUrl?: string;\n\n /**\n * Endpoint della cdn.\n * (e.g. https://cdncoll.inailcloud.it)\n * Se non specificato viene utilizzato il dominio corrente.\n * Non viene utilizzato se e' stato specificato un url assoluto nell'input assetsUrl.\n */\n cdnEndpoint?: string;\n\n /**\n * Url per il recupero degli assets.\n * Se non specificato viene utilizzato l'indirizzo relativo /static (in caso di applicazione non intranet)\n * oppure /static_intra (in caso di applicazione intranet)\n * del dominio (se passato) specificato tramite la proprieta' cdnEndpoint.\n * Se viene specificato un path assoluto l'input cdnEndpoint non viene preso in considerazione.\n */\n assetsUrl?: string;\n\n /**\n * Recupera automaticamente l'endpoint della cdn.\n * L'endpoint viene recuperato contattando l'api gateway all'indirizzo\n * '/.well-known/inail-configuration'\n * l'endpoint utilizzato sara' quello specificato\n * nella proprieta cdn_endpoint dell'oggetto restituito.\n * Il recupero dell'endpoint non viene effettutato se e' stata\n * impostata la proprieta di configurazione cdnEndpoint.\n * L'api gateway viene contattato prendendo in considerazione\n * quanto specificato tramite la proprieta' di configurazione\n * apiGatewayUrl\n * */\n recuperoAutomaticoCdnEnpoint?: boolean;\n\n /**\n * Tempo di attesa in millisecondi\n * del caricamento tra gli script.\n * Il valore di default e' 300.\n */\n scriptLoadingDeelay?: number;\n\n /**\n * Url da cui recuperare l'html della navigazione principale.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/header.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n navigazionePrincipaleUrl?: string;\n\n /**\n * Html della navigazione principale da visualizzare\n */\n navigazionePrincipaleHtml?: string;\n\n /**\n * Url da cui recuperare l'html del menu intranet.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/headersecondariointranet.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n menuIntranetUrl?: string;\n\n /**\n * Html del menu intranet da visualizzare\n */\n menuIntranetHtml?: string;\n\n /**\n * Url da cui recuperare l'html del footer.\n * Se non specificato il footer viene recuperato dall'indirizzo relativo /cs/internet/footer.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n footerUrl?: string;\n\n /**\n * Html del footer da visualizzare\n */\n footerHtml?: string;\n\n /**\n * Url della pagina di gestione del profilo utente.\n * Se non specificato viene usato l'indirizzo relativo /cs/intranet/home/consultazione/gestione-profilo.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n */\n profiloUtenteUrl?: string;\n\n /**\n * Url della pagina per la ricerca delle persone.\n * Se non specificato viene usato l'indirizzo relativo /csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n cercaPersonePageUrl?: string;\n\n /**\n * Url del pulsante di logout.\n * Se non specificato viene usato l'url relativo /cs/LogoutUser?excludedCookies=SMSESSION\n * del dominio (se passato) specificato tramite l'input domainUrl\n */\n logoutUrl?: string;\n\n /**\n * Identificativo dell'applicazione corrente in accordo\n * con l'API Gateway.\n */\n clientId: string;\n\n /**\n * Url a cui contattare l'Api Gateway.\n * Se non specificato viene contattato all'indirizzo relativo /api\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n apiGatewayUrl?: string;\n\n /**\n * Abilita esplicitamente il recupero automatico delle informazioni utente.\n * Le informazioni dell'utente vengono recuperate contattando i servizi:\n * /au/dipendente/estrai-dati-dipendente\n * /au/dipendente/estrai-foto-dipendente\n * esposti dall'api gateway.\n * Il recupero automatico non viene effettuato se i dati dell'utente\n * vengono esplicitamente passati in input.\n */\n recuperoAutomaticoDatiUtente?: boolean;\n}\n\n/**\n * Trova e restituisce tutti gli elementi focusable\n * all'interno dell'elemento dato\n *\n * @param containerElement\n */\nexport const findFormFocusableElement = (containerElement: any): any => containerElement ? containerElement.find('input:focusable,select:focusable,textarea:focusable,.ck-editor__editable,.feedback-focusable') : undefined;\n\n/**\n * Imposta il focus sul primo errore se esiste\n */\nexport const setFocusOnFirstError = (scrollToFirstError?: boolean) => {\n\n setFocusOnError(scrollToFirstError);\n\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // console.info('loader-overlay = 0') // todo togliere\n // setFocusOnError(scrollToFirstError);\n // clearInterval(checkLoading);\n // }\n // }, 100);\n}\n\nconst setFocusOnError = (scrollToFirstError: boolean) => {\n\n // console.warn('setFocusOnError') // todo togliere\n\n // @ts-ignore\n let modaleInPagina: boolean = $('.modal.fade.in').not(`.${MODAL_CONFIRM_CLASS}`).length > 0\n\n // Se esiste una modale in pagina che non e' una modale di conferma\n if (modaleInPagina) {\n\n setFocusOnFirstModalError();\n } else {\n\n setFocusOnFirstPageError(scrollToFirstError);\n\n // let checkModalExist = setInterval(() => {\n //\n // // Aspetto che le eventuali altre modali\n // // siano state rimosse dal DOM\n // // @ts-ignore\n // if ($('.modal.fade.in').length == 0) {\n //\n // setFocusOnFirstPageError(scrollToFirstError);\n // clearInterval(checkModalExist);\n // }\n //\n // }, 100);\n }\n}\n\n/**\n * Imposta il focus sul primo elemento nella modale andato in errore se esiste.\n */\nexport const setFocusOnFirstModalError = () => {\n\n // console.warn('setFocusOnFirstModalError') // todo togliere\n\n setTimeout(() => {\n\n // @ts-ignore\n let firstModalErrorElement = findFormFocusableElement($('.modal-body .has-error'))[0];\n\n // @ts-ignore\n let firstModalErrorFeedback = findFormFocusableElement($('.modal-body .feedback-box-error'))[0];\n\n if (firstModalErrorElement) {\n\n firstModalErrorElement.focus();\n } else if (firstModalErrorFeedback) {\n\n firstModalErrorFeedback.focus();\n }\n\n }, 100);\n}\n\n/**\n * Imposta il focus sul primo elemento in pagina andato in errore se esiste.\n */\nexport const setFocusOnFirstPageError = (scrollToError?: boolean) => {\n\n // console.warn('setFocusOnFirstPageError') // todo togliere\n\n setTimeout(() => {\n\n // @ts-ignore\n let firstErrorElement = findFormFocusableElement($('.has-error,.feedback-box-error').not('.global-feedback'))[0];\n\n // @ts-ignore\n if (firstErrorElement && $(firstErrorElement).is(\":visible\")) {\n\n if (scrollToError === true) {\n\n scrollToElement(firstErrorElement.id)\n }\n\n setTimeout(function () {\n\n if (firstErrorElement) {\n\n firstErrorElement.focus();\n }\n }, 500); // Il delay serve ad aspettare che termini lo scroll\n } else {\n setFocusOnFirstErrorFeedback(scrollToError);\n }\n }, 100);\n}\n\n/**\n * Imposta il focus sul feedback globale\n */\nexport const setFocusOnGlobalFeedback = (scrollToFeedback?: boolean) => {\n\n setFocusOnFirstFeedback('.global-feedback', scrollToFeedback);\n\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // setFocusOnFirstFeedback('.global-feedback', scrollToFeedback);\n // clearInterval(checkLoading);\n // }\n // }, 100);\n}\n\n/**\n * Imposta il focus sul feedback globale\n */\nexport const setFocusOnFirstErrorFeedback = (scrollToFeedback?: boolean) => {\n\n setFocusOnFirstFeedback('.feedback-box-error', scrollToFeedback);\n}\n\n/**\n * Imposta il focus sul primo feedback in pagina\n *\n * @param selector\n * @param scrollToFeedback\n */\nexport const setFocusOnFirstFeedback = (selector: string, scrollToFeedback?: boolean) => {\n\n setTimeout(() => {\n\n // @ts-ignore\n let feedback = $(selector);\n if (feedback) {\n\n if (scrollToFeedback && feedback[0] != undefined) {\n\n\n scrollTo(feedback[0].id);\n }\n\n let feedbackFocusable = feedback.find('.feedback-focusable')[0];\n\n if (feedbackFocusable != undefined) {\n\n setTimeout(() => {\n\n feedbackFocusable.focus();\n }, 500); // Il delay serva ad aspettare che termini lo scroll\n }\n }\n }, 100);\n}\n\nexport const setFocusOnFeedback = (id: string, ms?: number) => {\n\n setTimeout(() => {\n\n let elem = document.querySelectorAll<HTMLElement>(`#${id} .feedback-focusable`)[0];\n\n if(elem) {\n\n elem.focus();\n }\n\n }, ms || 100);\n}\n","import {Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class LoaderComponent implements OnInit {\n\n @Input()\n show: boolean;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {AfterViewInit, Component, Input, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {DEFAULT_ASSETS_INTRA_URL, DEFAULT_ASSETS_URL} from \"../layout-common-config\";\nimport {InfoDipendente, NavigazioneUtenteConfigurations} from \"../navigazione-utente/navigazione-utente.component\";\nimport {isAbsolute} from \"../../../../../utils/Util\";\n\n/**\n * Il componente renderizza tutto l'header della pagina.\n *\n * L'header di pagina e' composto da:\n * Logo INAIL\n * Navigazione interna\n * Navigazione principale (Barra blu con pulsante esci)\n * Menu' di navigazione utente loggato (barra verde con foto utente e menu intranet).\n *\n * E' possibile passare al componente degli specifici frammenti html da visualizzare\n * per la navigazione principale e per il menu intranet\n * oppure indicare al componente i rispettivi url da cui recuperare i frammenti html.\n *\n * Il componente visualizzera' gli html seguendo la seguente priorita:\n * Html passato in input, recupero tramite url, html di default.\n */\n@Component({\n // E' stato scelto di utilizzare come selettore il nome del tag\n // per consentire alle regole css definite dall'INAIL di\n // matchare con gli elementi html,\n // cosa che non avverrebbe se venisse utilizzato un tag custom\n // frapposto tra il tag header e quello contenitore.\n selector: 'header[id=\"inail-header\"]',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class HeaderComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n configurazioniNavigazioneUtente: NavigazioneUtenteConfigurations;\n\n @Input()\n config: HeaderConfigurations;\n\n @Input()\n infoDipendente: InfoDipendente;\n\n @ViewChild('logoInail') logoInail;\n\n constructor() {\n super();\n }\n\n ngAfterViewInit(): void {\n\n this.logoInail.nativeElement.focus();\n }\n\n ngOnInit() {\n\n if (!this.config) {\n\n this.config = {clientId: ''};\n }\n\n if (!this.config.domainUrl) {\n\n this.config.domainUrl = '';\n }\n\n if(this.config.cdnEndpoint == undefined) {\n\n this.config.cdnEndpoint = '';\n }\n\n if (this.config.assetsUrl == undefined) {\n\n this.config.assetsUrl = this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL;\n }\n\n if (!isAbsolute(this.config.assetsUrl) && this.config.cdnEndpoint != undefined) {\n\n this.config.assetsUrl = this.config.cdnEndpoint + this.config.assetsUrl;\n }\n\n this.configurazioniNavigazioneUtente = {\n apiGatewayUrl: this.config.apiGatewayUrl,\n clientId: this.config.clientId,\n domainUrl: this.config.domainUrl,\n assetsUrl: this.config.assetsUrl,\n cdnEndpoint: this.config.cdnEndpoint,\n intranet: this.config.intranet,\n menuIntranetUrl: this.config.menuIntranetUrl,\n menuIntranetHtml: this.config.menuIntranetHtml,\n profiloUtenteUrl: this.config.profiloUtenteUrl,\n visualizzaNotificheUtente: this.config.visualizzaNotificheUtente,\n visualizzaMenuCercaUtente: this.config.visualizzaMenuCercaUtente,\n cercaPersonePageUrl: this.config.cercaPersonePageUrl,\n recuperoAutomaticoDatiUtente: this.config.recuperoAutomaticoDatiUtente\n }\n }\n}\n\nexport class HeaderConfigurations {\n\n /**\n * Se true visualizza il menu intranet\n */\n intranet?: boolean;\n\n /**\n * Se true visulizza il menu cerca utente\n */\n visualizzaMenuCercaUtente?: boolean;\n\n /**\n * Se true visualizza le notifiche utente\n */\n visualizzaNotificheUtente?: boolean;\n\n /**\n * Url da cui recuperare l'html della navigazione principale.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/header.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n navigazionePrincipaleUrl?: string;\n\n /**\n * Html della navigazione principale da visualizzare\n */\n navigazionePrincipaleHtml?: string;\n\n /**\n * Url da cui recuperare l'html del menu intranet.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/headersecondariointranet.html\n * del dominio (se passato) specificato tramite l'input domainUrl\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n menuIntranetUrl?: string;\n\n /**\n * Html del menu intranet da visualizzare\n */\n menuIntranetHtml?: string;\n\n /**\n * Url della pagina per la ricerca delle persone.\n * Se non specificato viene usato l'indirizzo relativo /csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n cercaPersonePageUrl?: string;\n\n /**\n * Url della pagina di gestione del profilo utente.\n * Se non specificato viene usato l'indirizzo relativo /cs/intranet/home/consultazione/gestione-profilo.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n */\n profiloUtenteUrl?: string;\n\n /**\n * Url del pulsante di logout.\n * Se non specificato viene usato l'url relativo /cs/LogoutUser?excludedCookies=SMSESSION\n * del dominio (se passato) specificato tramite l'input domainUrl\n */\n logoutUrl?: string;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente esclusivamente per customizzare i comportamenti di default e gli href\n * dgli html di default nel caso non vengano passati\n * degli specifici html o non sia stato possibile recuperare quelli in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n domainUrl?: string;\n\n /**\n * Endpoint della cdn.\n * (e.g. https://cdncoll.inailcloud.it)\n * Se non specificato viene utilizzato il dominio corrente.\n */\n cdnEndpoint?: string;\n\n /**\n * Url per il recupero degli assets.\n * Se non specificato viene utilizzato l'indirizzo relativo /static (in caso di applicazione non intranet)\n * oppure /static_intra (in caso di applicazione intranet)\n * del dominio (se passato) specificato tramite la proprieta' cdnEndpoint.\n */\n assetsUrl?: string;\n\n /**\n * Identificativo dell'applicazione corrente in accordo\n * con l'API Gateway\n */\n clientId?: string;\n\n /**\n * Url a cui contattare l'Api Gateway.\n * Se non specificato viene contattato all'indirizzo relativo /api\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n apiGatewayUrl?: any;\n\n /**\n * Abilita esplicitamente il recupero automatico delle informazioni utente.\n * Le informazioni dell'utente vengono recuperate contattando i servizi:\n * /au/dipendente/estrai-dati-dipendente\n * /au/dipendente/estrai-foto-dipendente\n * esposti dall'api gateway.\n * Il recupero automatico non viene effettuato se i dati del'utente\n * vengono esplicitamente passati in input.\n */\n recuperoAutomaticoDatiUtente?: boolean;\n}\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'inail-navigazione-interna',\n templateUrl: './navigazione-interna.component.html',\n styleUrls: ['./navigazione-interna.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NavigazioneInternaComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Component, OnInit, ViewEncapsulation} from '@angular/core';\n\nexport const toggleMenuNavigazioneSecondaria = () => {\n // Set the effect type\n var effect = 'slide';\n // Set the options for the effect type chosen\n var options = 'direction: left';\n // Set the duration (default: 400 milliseconds)\n var duration = 500;\n\n // Questo trick serve per verificare che non sia gia in corso\n // un effetto di sliding sul menu\n setTimeout(() => {\n\n // @ts-ignore\n if ($('.ui-effects-wrapper').length == 0) {\n\n // @ts-ignore\n jQuery('.slider-menu').toggle(effect, options, duration);\n }\n })\n};\n\n@Component({\n selector: 'inail-trigger-slider-menu-button',\n templateUrl: './trigger-slider-menu-button.component.html',\n styleUrls: ['./trigger-slider-menu-button.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TriggerSliderMenuButtonComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n open() {\n toggleMenuNavigazioneSecondaria();\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {DomSanitizer, SafeScript} from \"@angular/platform-browser\";\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {DEFAULT_ASSETS_URL} from \"../layout-common-config\";\nimport {isAbsolute} from \"../../../../../utils/Util\";\n\nconst DEFAULT_URL = '/cs/internet/footer.html';\n\n/**\n * Il componente renderizza il footer.\n * E' possibile passare al componente uno specifico frammento html da visualizzare o\n * indicare al componente una url da cui recuperare l'html.\n * Nal caso in cui il recupero dell'html non vada a buon fine il componente renderizza un html di default.\n * Il componente visualizzera' l'html seguendo la seguente priorita:\n * Html passato in input, recupero tramite url, html di default.\n */\n@Component({\n selector: 'inail-footer',\n templateUrl: './cs.internet.footer.html',\n styleUrls: ['./footer.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class FooterComponent extends BaseComponent implements OnInit, OnChanges {\n\n // readonly DEFAULT_URL = '/cs/internet/integration/footer.html';\n // readonly DEFAULT_URL = '/cs/internet/footer.html';\n\n innerHtml: SafeScript;\n\n /**\n * Url da cui recuperare l'html del footer.\n * Se non specificato il footer viene recuperato dall'indirizzo relativo /cs/internet/footer.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n @Input()\n url: string;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente per il recupero dell'html\n * e per customizzare gli href nell'html di default nel caso non venga passato\n * uno specifico html o non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n @Input()\n domainUrl: string;\n\n /**\n * Endpoint della cdn.\n * (e.g. https://cdncoll.inailcloud.it)\n * Utilizzato esclusivamente per customizzare l'html di default nel caso non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n * Non viene utilizzato se e' stato specificato un url assoluto nell'input assetsUrl.\n */\n @Input()\n cdnEndpoint?: string = '';\n\n /**\n * Utilizzato esclusivamente per customizzare l'html di default nel caso non sia stato possibile recuperare quello in remoto.\n * Se non specificato le risorse statiche vengono cercate sotto il path relativo /static\n * del dominio (se passato) specificato tramite l'input cdnEndpoint.\n * Se viene specificato un path assoluto l'input cdnEndpoint non viene preso in considerazione.\n */\n @Input()\n assetsUrl: string;\n\n /**\n * Html da visualizzare\n */\n @Input()\n html: string;\n\n constructor(private sanitizer: DomSanitizer,\n private http: HttpClient) {\n\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n this.emitDebug('FooterComponent changes:');\n this.emitDebug(changes);\n\n // Il footer viene recuperato da remoto solo se non viene\n // passato esplicitamente dall'esterno l'html da visualizzare\n if (changes && changes.url && changes.url.currentValue && !changes.html.currentValue) {\n\n if (changes.url.firstChange) {\n\n this.emitDebug('Inizializzazione Footer');\n }\n\n this.recupera();\n }\n }\n\n ngOnInit() {\n\n if (!this.domainUrl) {\n\n this.domainUrl = '';\n }\n\n if (!this.assetsUrl) {\n\n this.assetsUrl = DEFAULT_ASSETS_URL;\n }\n\n if(!this.cdnEndpoint || isAbsolute(this.assetsUrl)) {\n\n this.cdnEndpoint = '';\n }\n\n if (this.html) {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(this.html);\n\n } else if (!this.url) {\n\n this.emitDebug('Inizializzazione Footer');\n this.emitDebug('Url footer non specificato');\n\n this.url = this.domainUrl + DEFAULT_URL;\n\n this.recupera();\n }\n }\n\n recupera() {\n this.emitDebug(\"Recupero Footer da: \" + this.url);\n\n this.http.get(this.url, {responseType: 'text'})\n\n .subscribe(\n (footer: string) => {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(footer);\n\n this.emitDebug('Footer recuperato!');\n },\n err => {\n this.innerHtml = undefined;\n this.emitError(\"Errore nel recupero del Footer\");\n this.emitError(err);\n this.emitWarn(\"Visualizzazione Footer di default\");\n },\n () => {\n this.emitDebug('Footer inizializzato!');\n }\n );\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {DomSanitizer, SafeScript} from \"@angular/platform-browser\";\nimport {HttpClient} from \"@angular/common/http\";\n\nconst DEFAULT_URL = '/cs/internet/header.html';\nconst DEFAULT_LOGOUT_URL = '/cs/LogoutUser?excludedCookies=SMSESSION';\n\n/**\n * Il componente renderizza la navigazione principale.\n * E' possibile passare al componente uno specifico frammento html da visualizzare o\n * indicare al componente una url da cui recuperare l'html.\n * Nal caso in cui il recupero dell'html non vada a buon fine il componente renderizza un html di default.\n * Il componente visualizzera' l'html seguendo la seguente priorita:\n * Html passato in input, recupero tramite url, html di default.\n */\n@Component({\n selector: 'inail-navigazione-principale',\n templateUrl: './cs.internet.header.html',\n styleUrls: ['./navigazione-principale.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NavigazionePrincipaleComponent extends BaseComponent implements OnInit, OnChanges {\n\n // readonly DEFAULT_URL = '/cs/internet/integration/header.html';\n // readonly DEFAULT_URL = '/cs/internet/header.html';\n // readonly DEFAULT_LOGOUT_URL = '/cs/LogoutUser?excludedCookies=SMSESSION';\n\n innerHtml: SafeScript;\n\n /**\n * Url da cui recuperare l'html della navigazione principale.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/header.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n @Input()\n url: string;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente esclusivamente per customizzare i comportamenti di default e\n * gli href dell'html di default nel caso non venga passato\n * uno specifico html o non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n * Non influisce sull'input logoutUrl se esplicitamente specificato.\n */\n @Input()\n domainUrl: string = '';\n\n /**\n * Url del pulsante di logout.\n * Se non specificato viene usato l'url relativo /cs/LogoutUser?excludedCookies=SMSESSION\n * del dominio (se passato) specificato tramite l'input domainUrl\n */\n @Input()\n logoutUrl: string;\n\n /**\n * Html da visualizzare\n */\n @Input()\n html: string;\n\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // La navigazione principale viene recuperato da remoto solo se non viene\n // passato esplicitamente dall'esterno l'html da visualizzare\n if (changes && changes.url && changes.url.currentValue && !changes.html.currentValue) {\n\n if (changes.url.firstChange) {\n\n this.emitDebug('Inizializzazione Navigazione principale');\n }\n\n this.recupera();\n }\n }\n\n ngOnInit() {\n\n if (!this.logoutUrl) {\n\n this.logoutUrl = this.domainUrl + DEFAULT_LOGOUT_URL;\n }\n\n if (this.html) {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(this.html);\n } else if (!this.url) {\n\n this.emitDebug('Inizializzazione Navigazione principale');\n this.emitDebug('Url Navigazione principale non specificato');\n\n this.url = this.domainUrl + DEFAULT_URL;\n\n this.recupera();\n }\n }\n\n recupera() {\n this.emitDebug(\"Recupero Navigazione principale da: \" + this.url);\n\n this.http.get(this.url, {responseType: 'text'})\n\n .subscribe(\n (menu: string) => {\n\n menu = menu.replace('#logout', this.logoutUrl);\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(menu);\n\n this.emitDebug('Navigazione principale recuperata!');\n },\n err => {\n this.innerHtml = undefined;\n this.emitError(\"Errore nel recupero della Navigazione principale\");\n this.emitError(err);\n this.emitWarn(\"Visualizzazione Navigazione principale di default\");\n },\n () => {\n this.emitDebug('Navigazione principale inizializzata!');\n }\n );\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {HttpClient, HttpHeaders} from \"@angular/common/http\";\nimport {DomSanitizer, SafeScript} from \"@angular/platform-browser\";\nimport {tap} from \"rxjs/operators\";\nimport {isAbsolute, isEmptyOrNull} from \"../../../../../utils/Util\";\nimport {API_DEFAULT_URL, DEFAULT_ASSETS_INTRA_URL, DEFAULT_ASSETS_URL} from \"../layout-common-config\";\n\nexport class NavigazioneUtenteConfigurations {\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente esclusivamente per customizzare i comportamenti automatici\n * (recupero dei frammento html menu intranet e recupero info dipendente da API Gateway)\n * e per customizzare gli href nell'html di default del menu intranet nel caso non venga passato\n * uno specifico html per esso o non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n domainUrl?: string;\n\n /**\n * Endpoint della cdn.\n * (e.g. https://cdncoll.inailcloud.it)\n * Se non specificato viene utilizzato il dominio corrente.\n * Non viene utilizzato se e' stato specificato un url assoluto nell'input assetsUrl.\n */\n cdnEndpoint?: string = '';\n\n /**\n * Url per il recupero degli assets.\n * Se non specificato viene utilizzato l'indirizzo relativo /static (in caso di applicazione non intranet)\n * oppure /static_intra (in caso di applicazione intranet)\n * del dominio (se passato) specificato tramite l'input cdnEndpoint.\n * Nel caso di questo componente serve esclusivamente per il recupero dell'immagine utilizzata per l'utente anonimo.\n * Se viene specificato un path assoluto l'input cdnEndpoint non viene preso in considerazione.\n */\n assetsUrl?: string;\n\n /**\n * Se true visualizza il menu intranet.\n */\n intranet?: boolean;\n\n /**\n * Se true visualizza il menu cerca utente.\n */\n visualizzaMenuCercaUtente?: boolean;\n\n /**\n * Se true visulizza la notifiche utente.\n */\n visualizzaNotificheUtente?: boolean;\n\n /**\n * Url della pagina per la ricerca delle persone.\n * Se non specificato viene usato l'indirizzo relativo /csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n cercaPersonePageUrl?: string;\n\n /**\n * Url da cui recuperare l'html del menu intranet.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/headersecondariointranet.html\n * del dominio (se passato) specificato tramite l'input domainUrl\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n menuIntranetUrl?: string;\n\n /**\n * Html del menu intranet da visualizzare\n */\n menuIntranetHtml?: string;\n\n /**\n * Identificativo dell'applicazione corrente in accordo\n * con l'API Gateway\n */\n clientId?: string;\n\n /**\n * Url a cui contattare l'Api Gataway.\n * Se non specificato viene contattato all'indirizzo relativo /api\n * nel dominio (se passato) specificato tramite l'input domainUrl.\n */\n apiGatewayUrl?: string;\n\n /**\n * Url della pagina di gestione del profilo utente.\n * Se non specificato viene usato l'indirizzo relativo /cs/intranet/home/consultazione/gestione-profilo.html\n * del dominio (se passato) specificato tramite l'input domainUrl.\n */\n profiloUtenteUrl?: string;\n\n /**\n * Abilita esplicitamente il recupero automatico delle informazioni utente.\n * Le informazioni dell'utente vengono recuperate contattando i servizi:\n * /au/dipendente/estrai-dati-dipendente\n * /au/dipendente/estrai-foto-dipendente\n * esposti dall'api gateway.\n * Il recupero automatico non viene effettuato se i dati del'utente\n * vengono esplicitamente passati in input.\n */\n recuperoAutomaticoDatiUtente?: boolean;\n}\n\nconst DATI_DIPENDENTE_URL = '/au/dipendente/estrai-dati-dipendente?matricola=';\nconst FOTO_DIPENDENTE_URL = '/au/dipendente/estrai-foto-dipendente?matricola=';\nconst CHECKSESSION_URL = '/checksession';\nconst PROFILO_UTENTE_DEFAULT_URL = '/cs/intranet/home/consultazione/gestione-profilo.html';\nconst CERCA_PERSONE_DEFAULT_URL = '/csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html';\nconst PATH_FOTO_ANONIMO = '/img/anonimo.jpg ';\n\n/**\n * Il componente renderizza la navigazione utente,\n * cioe' l'elemento html con id='menusecondario' secondo la struttura definita da INAIL.\n * L'elemento visualizza le informazioni inerenti l'utente loggato ed opzionalmente il menu intranet,\n * il form per la ricerca degli utenti, e le notifiche utente.\n *\n */\n@Component({\n selector: 'inail-navigazione-utente',\n templateUrl: './navigazione-utente.component.html',\n styleUrls: ['./navigazione-utente.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NavigazioneUtenteComponent extends BaseComponent implements OnInit, OnChanges {\n\n // readonly DATI_DIPENDENTE_URL = '/au/dipendente/estrai-dati-dipendente?matricola=';\n // readonly FOTO_DIPENDENTE_URL = '/au/dipendente/estrai-foto-dipendente?matricola=';\n // readonly CHECKSESSION_URL = '/checksession';\n // readonly PROFILO_UTENTE_DEFAULT_URL = '/cs/intranet/home/consultazione/gestione-profilo.html';\n // readonly CERCA_PERSONE_DEFAULT_URL = '/csintra/intranet/home/consultazione/cerca-persone-e-strutture/cerca-persone-fp.html';\n // readonly PATH_FOTO_ANONIMO = '/img/anonimo.jpg ';\n\n _immagineProfilo: SafeScript;\n testoRicercaUtente: string;\n\n @Input()\n config: NavigazioneUtenteConfigurations;\n\n @Input()\n infoDipendente: InfoDipendente;\n\n constructor(private http: HttpClient,\n private sanitizer: DomSanitizer) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if(changes && changes.infoDipendente && changes.infoDipendente.currentValue) {\n\n this._immagineProfilo =\n\n changes.infoDipendente.currentValue.foto\n\n ? this.sanitizer.bypassSecurityTrustUrl('data:image/png;base64,' + this.infoDipendente.foto)\n : this.urlFotoUtenteAnonimo;\n }\n }\n\n ngOnInit() {\n\n this.init();\n }\n\n async init() {\n\n if (!this.config) {\n\n this.config = {};\n }\n\n if (!this.config.domainUrl) {\n\n this.config.domainUrl = '';\n }\n\n if(this.config.cdnEndpoint == undefined) {\n\n this.config.cdnEndpoint = '';\n }\n\n if (this.config.assetsUrl == undefined) {\n\n this.config.assetsUrl = this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL;\n }\n\n if (!isAbsolute(this.config.assetsUrl) && this.config.cdnEndpoint != undefined) {\n\n this.config.assetsUrl = this.config.cdnEndpoint + this.config.assetsUrl;\n }\n\n if (!this.config.apiGatewayUrl) {\n\n this.config.apiGatewayUrl = this.config.domainUrl + API_DEFAULT_URL;\n }\n\n if (!this.config.profiloUtenteUrl) {\n\n this.config.profiloUtenteUrl = PROFILO_UTENTE_DEFAULT_URL;\n }\n\n if (!this.infoDipendente) {\n\n this.infoDipendente = {};\n\n // Se le informazioni dell'utente connesso\n // non sono state date in input\n // allora vengono recuperate automaticamente in remoto\n if (this.config.recuperoAutomaticoDatiUtente) {\n\n let datiDipendente: DatiDipendente = await this.recuperaDatiDipendente();\n\n if (datiDipendente) {\n\n this.infoDipendente.nome = datiDipendente.nome;\n this.infoDipendente.cognome = datiDipendente.cognome;\n }\n\n this.infoDipendente.foto = await this.recuperaFotoDipendente();\n }\n }\n\n this._immagineProfilo =\n\n this.infoDipendente.foto\n\n ? this.sanitizer.bypassSecurityTrustUrl('data:image/png;base64,' + this.infoDipendente.foto)\n : this.urlFotoUtenteAnonimo;\n }\n\n get immagineProfilo() {\n\n return this._immagineProfilo || this.urlFotoUtenteAnonimo;\n }\n\n get urlFotoUtenteAnonimo(): string {\n\n return this.config.assetsUrl + PATH_FOTO_ANONIMO\n }\n\n // Deprecato\n get assetUrl(): string {\n\n return (isAbsolute(this.config.assetsUrl) ? '' : this.config.cdnEndpoint)\n + (this.config.assetsUrl\n || (this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL));\n\n // OLD\n // return this.config.assetsUrl\n // || (this.config.domainUrl\n // + (this.config.intranet ? DEFAULT_ASSETS_INTRA_URL : DEFAULT_ASSETS_URL));\n }\n\n async getMatricolaDipendente(): Promise<string> {\n\n if (isEmptyOrNull(this.infoDipendente.matricola)) {\n\n this.infoDipendente.matricola = await this.recuperaMatricolaDipendente();\n }\n\n return this.infoDipendente.matricola;\n }\n\n async recuperaMatricolaDipendente(): Promise<string> {\n\n let matricola: string;\n\n try {\n\n let url: string = this.config.apiGatewayUrl + CHECKSESSION_URL;\n\n this.emitDebug(\"Recupero matricola dipendente per Navigazione utente da \" + url);\n\n let response: ChecksessionResponse = await this.get(url).toPromise();\n\n if (response && response.result) {\n\n matricola = response.User;\n }\n\n } catch (e) {\n this.emitError(\"Errore nel recupero della matricola dipendente\");\n this.emitError(e);\n }\n\n return matricola;\n }\n\n async recuperaDatiDipendente(): Promise<DatiDipendente> {\n\n let matricola = await this.getMatricolaDipendente();\n let url = this.config.apiGatewayUrl + DATI_DIPENDENTE_URL + matricola;\n\n let datiDipendente: DatiDipendente;\n\n try {\n this.emitDebug(\"Recupero dati dipendente per Navigazione utente da \" + url);\n\n let response: DatiDipendenteResponse = await this.get(url).toPromise();\n\n if (!response || !response.dipendente || response.dipendente.length == 0 || !response.dipendente[0]) {\n\n this.emitError(\"Dipendente non trovato\");\n\n } else {\n\n datiDipendente = response.dipendente[0];\n }\n\n } catch (e) {\n this.emitError(\"Errore nel recupero dei dati dipendente\");\n this.emitError(e);\n }\n\n return datiDipendente;\n }\n\n async recuperaFotoDipendente(): Promise<string> {\n\n let matricola = await this.getMatricolaDipendente();\n let url = this.config.apiGatewayUrl + FOTO_DIPENDENTE_URL + matricola;\n\n let fotoDipendente: string;\n\n try {\n this.emitDebug(\"Recupero foto dipendente per Navigazione utente da \" + url);\n\n let response: FotoDipendenteResponse = await this.get(url).toPromise();\n\n if (!response || !response.fotoDipendente || response.fotoDipendente.length == 0 || !response.fotoDipendente[0]) {\n\n this.emitError(\"Foto dipendente non trovata\");\n\n } else {\n\n fotoDipendente = response.fotoDipendente[0].foto;\n }\n\n } catch (e) {\n this.emitError(\"Errore nel recupero della foto dipendente\");\n this.emitError(e);\n }\n\n return fotoDipendente;\n }\n\n get(url: string) {\n\n let headers = new HttpHeaders().set('client_id', this.config.clientId);\n\n return this.http.get<any>(url, {headers: headers, withCredentials: true})\n .pipe(\n tap(response => {\n\n this.emitDebug(\"Risposta richiesta get per navigazione utente:\");\n this.emitDebug(response);\n })\n )\n }\n\n onCercaUtenteSubmit() {\n\n let url = this.config.cercaPersonePageUrl || this.config.domainUrl + CERCA_PERSONE_DEFAULT_URL;\n\n location.href = `${url}?campo_unico_menu=${this.testoRicercaUtente}&_authkey_=null&cerca=cercaHeader`;\n }\n}\n\ninterface FotoDipendenteResponse {\n\n fotoDipendente: FotoDipendente[];\n}\n\ninterface FotoDipendente {\n\n foto: string;\n}\n\ninterface ChecksessionResponse {\n result: boolean,\n 'http-status': number,\n message: string,\n sid?: string,\n 'XSRF-TOKEN'?: string,\n redirect?: string,\n User?: string\n}\n\ninterface DatiDipendenteResponse {\n\n dipendente: DatiDipendente[];\n}\n\ninterface DatiDipendente {\n\n \"contratto\": string,\n \"mail\": string,\n \"cognome\": string,\n \"flagVisibilitaCellulare\": string,\n \"qualifica\": string,\n \"codiceUnita\": string,\n \"nome\": string,\n \"codiceFiscale\": string,\n \"pec\": string,\n \"numeroCellularePrivato\": string,\n \"descrizioneUnita\": string,\n \"utenteHr\": string,\n \"netFax\": string,\n \"numeroCellulare\": string,\n \"matricola\": string,\n \"livello\": string,\n \"numeroBreve\": string,\n \"numeroTelefono\": string\n}\n\nexport interface InfoDipendente {\n\n matricola?: string,\n nome?: string,\n cognome?: string,\n\n /**\n * Immagine della foto del dipendente codificata in base64\n */\n foto?: string\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {BaseComponent} from \"../../../base/base.component\";\nimport {DomSanitizer, SafeScript} from \"@angular/platform-browser\";\nimport {HttpClient} from \"@angular/common/http\";\n\nconst DEFAULT_URL = '/cs/internet/headersecondariointranet.html';\n\n/**\n * Il componente renderizza il menu intranet.\n * E' possibile passare al componente uno specifico frammento html da visualizzare o\n * indicare al componente una url da cui recuperare l'html.\n * Nal caso in cui il recupero dell'html non vada a buon fine il componente renderizza un html di default.\n * Il componente visualizzera' l'html seguendo la seguente priorita:\n * Html passato in input, recupero tramite url, html di default.\n */\n@Component({\n selector: 'inail-menu-intranet',\n templateUrl: './cs.internet.headersecondariointranet.html',\n styleUrls: ['./menu-intranet.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class MenuIntranetComponent extends BaseComponent implements OnInit, OnChanges {\n\n // readonly DEFAULT_URL = '/cs/internet/integration/headersecondariointranet.html';\n // readonly DEFAULT_URL = '/cs/internet/headersecondariointranet.html';\n\n innerHtml: SafeScript;\n\n /**\n * Url da cui recuperare l'html del menu intranet.\n * Se non specificato la navigazione principale viene recuperata dall'indirizzo relativo /cs/internet/headersecondariointranet.html\n * del dominio (se passato) specificato tramite l'input domainUrl\n * Nel caso in cui non sia possibile recuperare l'html viene visualizzato quello di default.\n */\n @Input()\n url: string;\n\n /**\n * Indica il dominio applicativo.\n * (e.g. https://collportale.inail.it)\n * Viene utilizzato dal componente per il recupero automatico dell'html dell'header secondario\n * e per la customizzazione degli href nell'html di default nel caso non venga passato\n * uno specifico html o non sia stato possibile recuperare quello in remoto.\n * Se non specificato viene utilizzato il dominio corrente.\n */\n @Input()\n domainUrl: string;\n\n /**\n * Html da visualizzare\n */\n @Input()\n html: string;\n\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) {\n super()\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // Il menu intranet viene recuperato da remoto solo se non viene\n // passato esplicitamente dall'esterno l'html da visualizzare\n if (changes && changes.url && changes.url.currentValue && !changes.html.currentValue) {\n\n if (changes.url.firstChange) {\n\n this.emitDebug('Inizializzazione Menu intranet');\n }\n\n this.recupera();\n }\n }\n\n ngOnInit() {\n\n if (!this.domainUrl) {\n\n this.domainUrl = '';\n }\n\n if (this.html) {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(this.html);\n } else if (!this.url) {\n\n this.emitDebug('Inizializzazione Menu intranet');\n this.emitDebug('Url Menu intranet non specificato');\n\n this.url = this.domainUrl + DEFAULT_URL;\n\n this.recupera();\n }\n }\n\n recupera() {\n this.emitDebug(\"Recupero menu intranet da: \" + this.url);\n\n this.http.get(this.url, {responseType: 'text'})\n\n .subscribe(\n (menu: string) => {\n\n this.innerHtml = this.sanitizer.bypassSecurityTrustHtml(menu);\n\n this.emitDebug('Menu intranet recuperato!');\n },\n err => {\n this.innerHtml = undefined;\n this.emitError(\"Errore nel recupero del Menu intranet\");\n this.emitError(err);\n this.emitWarn(\"Visualizzazione Menu intranet di default\");\n },\n () => {\n this.emitDebug('Menu intranet inizializzato!');\n }\n );\n }\n\n}\n","import {AfterViewInit, Component, ElementRef, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {toggleMenuNavigazioneSecondaria} from \"../trigger-slider-menu-button/trigger-slider-menu-button.component\";\n\n@Component({\n selector: 'inail-navigazione-secondaria',\n templateUrl: './navigazione-secondaria.component.html',\n styleUrls: ['./navigazione-secondaria.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NavigazioneSecondariaComponent implements OnInit, AfterViewInit {\n\n @ViewChild('sidebarInferiore')\n sidebarInferiore: ElementRef;\n\n visualizzaSidebarInferiore: boolean = true;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n close() {\n\n toggleMenuNavigazioneSecondaria()\n }\n\n visualizza() {\n\n return this.sidebarInferiore.nativeElement.childeNodes.length > 0;\n }\n\n ngAfterViewInit(): void {\n\n setTimeout(() => {this.visualizzaSidebarInferiore = this.sidebarInferiore.nativeElement.childElementCount > 0;});\n }\n}\n","import {Component, ContentChildren, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, QueryList, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {PagedTableRendererComponent, Pagination} from \"../paged-table-renderer/paged-table-renderer.component\";\nimport {ResponsiveElementComponent} from \"../responsive-element/responsive-element.component\";\nimport {ThLabelComponent} from \"../th-label/th-label.component\";\nimport {Observable} from \"rxjs\";\n\n@Component({\n selector: 'inail-paged-table',\n templateUrl: './paged-table.component.html',\n styleUrls: ['./paged-table.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PagedTableComponent extends ResponsiveElementComponent implements OnInit, OnChanges {\n\n // Obbligatorio se paginazione INTERNA\n @Input()\n elements: any[];\n\n // Obbligatorio se paginazione INTERNA\n @Input()\n subset: any[];\n\n // Obbligatorio se paginazione INTERNA: Da usare in 2-way-data-binding\n @Output()\n subsetChange = new EventEmitter<any[]>();\n\n // Solo per paginazione interna\n @Input()\n initialSort: SortInfo;\n\n // Obbligatorio se paginazione ESTERNA\n @Input()\n paginationInfo: Pagination;\n\n // Da usare solamente in caso di paginazione INTERNA\n @Input()\n doPagination: Observable<Pagination>;\n\n @Input()\n pageSize: number\n\n @Input()\n recuperoInCorso: boolean;\n\n @Input()\n testoRecuperoInCorso: string;\n\n @Input()\n noItemsFound: boolean;\n\n @Input()\n noItemsFoundText: string;\n\n // Obbligatorio se paginazione ESTERNA\n @Output()\n pagination = new EventEmitter<Pagination>();\n\n @Input()\n tallRows: boolean;\n\n @Input()\n tabellaAlternativa: boolean;\n\n @Input()\n caption: string;\n\n @Input()\n descrizione: string;\n\n @Input()\n tableClass: string;\n\n @Input()\n titolo: string;\n\n @Input()\n disabilitaPaginazione: boolean;\n\n @Input()\n LinkDettagli: string;\n\n @Output()\n clickLinkDettagli = new EventEmitter<any[]>();\n\n @ViewChild(PagedTableRendererComponent)\n pagedTableRendererComponent: PagedTableRendererComponent;\n\n @ContentChildren(ThLabelComponent, {descendants: true})\n thLabelComponents: QueryList<ThLabelComponent>;\n\n @ViewChild('baseFooter')\n baseFooter: ElementRef;\n\n visualizzaBaseFooter: boolean = true;\n\n numeroColonne: number;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n // console.warn('changes', changes)\n\n if (changes && changes.noItemsFound && changes.noItemsFound.currentValue === true) {\n\n // @ts-ignore\n setTimeout(() => this.numeroColonne = $(`#${this.id} th`).length);\n }\n\n // Se nella paginazione esterna viene specificata una proprieta di sorting\n // modifico il componente thLabel associato\n if (changes\n && changes.paginationInfo\n && changes.paginationInfo.currentValue\n && this.paginationInfo\n && this.paginationInfo.sortProperty) {\n\n // console.warn('>>>>>>>', this.paginationInfo, this.thLabelComponents)\n\n if (this.thLabelComponents) {\n\n let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == this.paginationInfo.sortProperty);\n this.pagedTableRendererComponent.setSortDirection(thLabel, this.paginationInfo.sortDirection as ('asc' | 'desc'));\n }\n }\n\n // In caso di paginazione interna se specificato un ordinamento iniziale\n if(!this.paginationInfo\n && changes\n && changes.initialSort\n && changes.initialSort.currentValue\n && this.initialSort) {\n\n this.impostaOrdinamentoIniziale();\n }\n }\n\n ngOnInit() {\n\n if (this.tallRows == undefined) {\n\n this.tallRows = false;\n }\n\n if (this.tabellaAlternativa == undefined) {\n\n this.tabellaAlternativa = false;\n }\n }\n\n ngAfterViewInit(): void {\n\n // console.warn('pagedTableRendererComponent', this.pagedTableRendererComponent)\n // console.warn('thLabelComponents', this.thLabelComponents)\n\n // setTimeout(() => {\n // console.warn('thLabelComponents ST', this.thLabelComponents)\n // });\n\n setTimeout(() => {\n this.visualizzaBaseFooter = this.baseFooter.nativeElement.childElementCount > 0;\n });\n\n if (this.pagedTableRendererComponent) {\n\n this.pagedTableRendererComponent.inizializzaTabella(this.thLabelComponents);\n this.pagedTableRendererComponent.lookAtThLabel(this.thLabelComponents);\n }\n\n // Se nella paginazione esterna viene specificata una proprieta di sorting\n // modifico il componente thLabel associato\n if (this.paginationInfo && this.paginationInfo.sortProperty) {\n\n if (this.thLabelComponents) {\n\n let thLabel: ThLabelComponent = this.thLabelComponents.find(item => item.property == this.paginationInfo.sortProperty);\n this.pagedTableRendererComponent.setSortDirection(thLabel, this.paginationInfo.sortDirection as ('asc' | 'desc'));\n }\n }\n\n // In caso di paginazione interna se specificato un ordinamento iniziale\n if(!this.paginationInfo && this.initialSort) {\n\n this.impostaOrdinamentoIniziale();\n }\n }\n\n impostaOrdinamentoIniziale() {\n\n if (this.thLabelComponents) {\n\n this.thLabelComponents.forEach(thLabel => {\n\n if(thLabel.property == this.initialSort.sortProperty) {\n\n this.pagedTableRendererComponent.setSortDirection(thLabel, this.initialSort.sortDirection as ('asc' | 'desc'));\n }\n else {\n\n this.pagedTableRendererComponent.setSortDirection(thLabel, undefined);\n }\n });\n }\n }\n\n subsetOnChange(list: any[]) {\n\n setTimeout(() => {\n\n this.subsetChange.emit(list);\n });\n }\n\n getNumeroColonne(): number {\n\n // @ts-ignore\n return $(`#${this.id} th`).length;\n }\n}\n\nexport class SortInfo {\n\n sortProperty?: string;\n sortDirection?: string;\n}\n","import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isNotEmptyOrNull} from \"../../../../utils/Util\";\n\n@Component({\n selector: 'inail-file-upload',\n templateUrl: './inail-file-upload.component.html',\n styleUrls: ['./inail-file-upload.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InailFileUploadComponent extends FormElementComponent implements OnInit {\n\n @ViewChild(\"inputTypeFile\")\n inputTypeFile: ElementRef;\n @Input()\n placeholder: string;\n @Input()\n description: string;\n @Input()\n chooseButtonText: string = 'Scegli il file';\n @Input()\n submitButtonText: string = 'aggiungi';\n @Input()\n submitButton: boolean = true;\n /** Estensioni accettate separate da uno spazio (esempio: \".pdf .txt .doc\") */\n @Input()\n accept: string;\n @Output()\n uploadFile = new EventEmitter<File>();\n\n fileModel: File;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n promptUpload() {\n document.getElementById(this.id).click();\n }\n\n changeModel($event: Event) {\n\n // @ts-ignore\n this.fileModel = $event.target.files && $event.target.files[0];\n\n if(!this.submitButton) {\n this.uploadFile.emit(this.fileModel);\n }\n }\n\n reset() {\n\n this.fileModel = undefined;\n this.uploadFile.emit(undefined);\n this.inputTypeFile.nativeElement.value = '';\n }\n}\n","import {Component, Input, OnChanges, OnInit, SimpleChange, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {ActivatedRoute, Router} from \"@angular/router\";\n\n@Component({\n selector: 'inail-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BreadcrumbComponent implements OnInit, OnChanges {\n\n @Input()\n paginaCorrente: PaginaApplicativa;\n\n @Input()\n steps: BreadCrumbStep[];\n\n constructor(private activatedRoute: ActivatedRoute,\n public router: Router) {\n\n }\n\n ngOnChanges(changes: BreadcrumbChanges) {\n\n if (changes.paginaCorrente) {\n\n setTimeout(() => {\n this.buildBreadCrumb(changes.paginaCorrente.currentValue);\n })\n }\n }\n\n ngOnInit() {\n }\n\n buildBreadCrumb(pagina: PaginaApplicativa) {\n\n if (pagina != undefined) {\n\n const genealogicalTree: PaginaApplicativa[] = this.getGenealogicalTree(pagina);\n\n if (genealogicalTree) {\n\n this.steps = genealogicalTree.map((pagina: PaginaApplicativa): BreadCrumbStep => {\n\n return {label: pagina.titolo, url: pagina.url};\n });\n }\n }\n }\n\n private getParentsList(pagina: PaginaApplicativa): PaginaApplicativa[] {\n\n let parents: PaginaApplicativa[];\n\n if (pagina) {\n\n parents = this.getGenealogicalTree(pagina.parent);\n }\n\n return parents;\n }\n\n private getGenealogicalTree(pagina: PaginaApplicativa): PaginaApplicativa[] {\n\n let genealogicalTree: PaginaApplicativa[];\n\n if (pagina) {\n\n genealogicalTree = this.getGenealogicalTree(pagina.parent);\n genealogicalTree.push(pagina);\n\n } else {\n genealogicalTree = [];\n }\n\n return genealogicalTree;\n }\n\n onClick(url: string) {\n\n this.router.navigateByUrl(url);\n }\n}\n\nexport interface BreadCrumbStep {\n label: string;\n url: string;\n}\n\nexport interface PaginaApplicativa {\n\n titolo: string;\n url: string;\n parent: PaginaApplicativa;\n}\n\ninterface BreadcrumbChanges extends SimpleChanges {\n\n paginaCorrente: BreadcrumbChange;\n}\n\ninterface BreadcrumbChange extends SimpleChange {\n\n currentValue: PaginaApplicativa;\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChange, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {DateUtil} from \"../../../../utils/DateUtil\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {NgbDateStruct} from \"@ng-bootstrap/ng-bootstrap\";\n\nexport type DateFormat = 'RFC3339' | 'IT'; // ISO8601\n\ninterface DatePickerChanges extends SimpleChanges {\n\n data: SimpleChange;\n}\n\n@Component({\n selector: 'inail-input-date',\n templateUrl: './input-date.component.html',\n styleUrls: ['./input-date.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputDateComponent extends FormElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @ViewChild('input')\n protected input: ElementRef;\n\n visibleData: string;\n\n changed: boolean;\n\n @Output()\n dataChange = new EventEmitter<string>();\n\n @Input()\n modelFormat: DateFormat;\n\n @Input()\n datepickerOptions: any;\n\n @Input()\n enabledDates: string[];\n\n @Input()\n disabledDates: string[];\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: DatePickerChanges) {\n\n // console.warn('changes', changes)\n\n if (changes.data && !changes.data.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n ngOnInit() {\n // console.warn('ngOnInit')\n\n if (!this.datepickerOptions) {\n\n this.datepickerOptions = {\n autoclose: true,\n format: 'dd/mm/yyyy',\n weekStart: 1,\n todayBtn: 'linked',\n language: 'it',\n todayHighlight: true,\n orientation: 'auto top',\n enableOnReadonly: false\n };\n }\n\n if ((this.disabledDates != undefined && this.disabledDates.length > 0)\n || (this.enabledDates != undefined && this.enabledDates.length > 0)) {\n\n this.datepickerOptions.beforeShowDay = this.isEnabledDate\n }\n }\n\n private isEnabledDate = (date) => {\n\n // @ts-ignore\n var dateString = $.datepicker.formatDate('yy-mm-dd', date);\n // console.warn(dateString)\n return this.isDataAbilitata(dateString) && !this.isDataDisabilitata(dateString);\n };\n\n private isDataAbilitata = (data: string) => this.enabledDates == undefined || !this.enabledDates.length || this.enabledDates.some(regex => this.match(data, regex) != undefined);\n private isDataDisabilitata = (data: string) => this.disabledDates != undefined && this.disabledDates.some(regex => this.match(data, regex) != undefined);\n\n match = (date: string, regex: string) => date != undefined && date.match(new RegExp('^'.concat(regex).concat('$'), 'i'));\n\n ngAfterViewInit(): void {\n\n // console.info('ngAfterViewInit', this.dataValue)\n\n // Inizializzazione della libreria datepicker\n window['$'](this.input.nativeElement).datepicker(this.datepickerOptions);\n\n if (this.visibleData && DateUtil.isDate(this.visibleData)) {\n\n // window['$'](this.input.nativeElement).datepicker('setDate', this.visibleData);\n this.setDatepickerDate(this.visibleData)\n }\n\n setTimeout(() => {\n\n // @ts-ignore\n // console.warn('elem', this.id, $('#' + this.id))\n\n // @ts-ignore\n $('#' + this.id).on(\"change\", () => {\n\n // console.warn('elem on change', this.id)\n\n // @ts-ignore\n let elem = $('#' + this.id)[0]\n // console.warn('elem', this.id, elem)\n // console.info('CHANGE', this.visibleData, elem.value)\n\n if (elem != undefined && elem.value != this.visibleData) {\n\n // console.info('modifica', this.visibleData, elem.value)\n this.data = elem.value;\n }\n });\n });\n\n if (this.showPopover()) {\n\n // @ts-ignore\n $(`#${this.id}-popover`).popover();\n }\n }\n\n @Input()\n set data(val) {\n\n // console.warn('set data', val)\n\n let validFormat = isValidInputFormat(val);\n\n // console.warn('validFormat', validFormat)\n\n if (isNotEmptyOrNull(val)) {\n\n this.visibleData = validFormat ? DateUtil.toItalianFormat(val) : val;\n } else {\n\n this.visibleData = undefined\n }\n\n // console.warn('visibleData', this.visibleData)\n\n setTimeout(() => {\n\n // let dChange = validFormat ? reformat(this.visibleData, \"RFC3339\") : this.visibleData\n // console.warn('dataChange', dChange)\n\n this.dataChange.emit(validFormat ? reformat(this.visibleData, \"RFC3339\") : this.visibleData);\n\n if (validFormat) {\n\n this.setDatepickerDate(this.visibleData);\n }\n });\n }\n\n @Input()\n set _data(val) {\n\n // console.info('set data', val)\n // console.info('this.visibleData', this.visibleData)\n\n // if (val != this.visibleData) {\n if (true) {\n\n // console.info('inner')\n\n let validFormat: boolean = isValidInputFormat(val);\n\n // Se il formato non e' valido\n // ma il valore ricevuto rappresenta comunque\n // un oggetto data valido\n if (!validFormat && DateUtil.isValidDateObject(DateUtil.toDateObject(val))) {\n\n val = reformat(val); // TODO da rivedere\n validFormat = true;\n }\n\n // console.info('validFormat', validFormat)\n // console.info('visibleData prima', this.visibleData)\n\n if (isNotEmptyOrNull(val)) {\n\n this.visibleData = validFormat ? reformat(val, \"IT\") : (this.visibleData || val);\n } else {\n\n this.visibleData = undefined\n }\n\n // console.info('visibleData dopo', this.visibleData)\n\n setTimeout(() => {\n\n // console.info('emit data')\n\n this.dataChange.emit(validFormat ? reformat(this.visibleData, \"RFC3339\") : this.visibleData);\n\n if (validFormat) {\n\n this.setDatepickerDate(this.visibleData);\n }\n });\n }\n }\n\n get isValid(): boolean {\n\n return isEmptyOrNull(this.visibleData)\n || (DateUtil.isInItalianFormat(this.visibleData) && DateUtil.isValidDate(this.visibleData));\n }\n\n checkDescError(): boolean {\n\n let descError: string = this.getDescError();\n return this.checkError() && isNotEmptyOrNull(descError);\n }\n\n checkError(): boolean {\n\n return !this.isValid || this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n getDescError(): string {\n\n return (isEmptyOrNull(this.descError) && !this.isValid)\n ? 'La data inserita non è valida'\n : this.descError;\n }\n\n onChange($event: any) {\n\n // console.warn('onChange', $event.target.value)\n this.data = $event.target.value;\n\n // setTimeout(() => {\n // this.data = $event.target.value;\n // }, 200);\n }\n\n private setDatepickerDate(date: string) {\n\n // console.warn('setDatepickerDate', date)\n\n window['$'](this.input.nativeElement).datepicker('setDate', date);\n }\n}\n\nconst isLongTime = (o: any) => {\n\n // return o && (typeof o === 'number') && o.toString().length == 13;\n return o && (typeof o === 'number');\n}\n\nconst isValidInputFormat = (s: string) => {\n\n return DateUtil.isInItalianFormat(s) || DateUtil.isInISO8601Format(s) || isLongTime(s);\n}\n\nconst toNgbDateStruct = (s: string): NgbDateStruct => {\n\n let date: NgbDateStruct = null;\n\n if (s) {\n\n let dateObj = DateUtil.toDateObject(s.trim ? s.trim() : s);\n\n date = {year: dateObj.getFullYear(), month: dateObj.getMonth() + 1, day: dateObj.getDate()};\n }\n\n return date;\n}\n\n/**\n * Riformatta la stringa nel formato specificato\n *\n * @param s\n * @param dateFormat\n */\nconst reformat = (s: string, dateFormat?: DateFormat): string => {\n\n let data: string = null;\n let dateObj: NgbDateStruct = toNgbDateStruct(s);\n\n // console.info('dateObj', dateObj)\n\n if (dateObj) {\n\n data = dateFormat && dateFormat == \"IT\" ? toItalianFormatString(dateObj) : toRFC3339FormatString(dateObj);\n }\n\n // console.info('data', data)\n\n return data;\n}\n\nconst toItalianFormatString = (date: NgbDateStruct): string => {\n\n let s: string = null;\n\n if (date) {\n s = pad(date.day) + '/' + pad(date.month) + '/' + date.year;\n }\n\n return s;\n}\n\nconst toRFC3339FormatString = (date: NgbDateStruct): string => {\n\n let s: string = null;\n\n if (date) {\n s = pad(date.year) + '-' + pad(date.month) + '-' + pad(date.day);\n }\n\n return s;\n}\n\nconst pad = (n: number): string => {\n\n return n ? ((n < 10 ? '0' : '') + n) : '';\n}\n","import {AfterViewInit, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {BasicUxElementComponent} from \"../basic-ux-element/basic-ux-element.component\";\n\n@Component({\n selector: 'inail-page-title',\n templateUrl: './page-title.component.html',\n styleUrls: ['./page-title.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PageTitleComponent extends BasicUxElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @Input()\n titolo: string;\n\n @Input()\n spanTitolo: string;\n\n @Input()\n spanClass: string;\n\n @Input()\n getFocus: boolean = true;\n\n @ViewChild('divTitolo') divTitolo;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n\n this.catchFocus();\n }\n\n catchFocus() {\n\n // console.warn('catchFocus', this.getFocus, document.activeElement)\n\n // Il secondo controllo serve ad evitare che al primo accesso\n // all'applicazione il focus vada sul titolo invece che\n // sul primo elemento del documento\n if (this.getFocus\n && (document.activeElement == undefined\n || document.activeElement.id != 'logo-inail-header')) {\n\n // console.warn('catchFocus 2')\n\n setTimeout(() => {\n\n // console.warn('catchFocus 3', this.divTitolo.nativeElement)\n\n this.divTitolo.nativeElement.focus();\n this.emitDebug(\"Focus impostato su elemento titolo: \");\n this.emitDebug(this.divTitolo.nativeElement);\n }, 500);\n\n // let checkLoading = setInterval(() => {\n //\n // // Aspetto che il loader\n // // sia stato rimosso dal DOM prima\n // // di impostare il focus\n // // @ts-ignore\n // if ($('.loader-overlay').length == 0) {\n //\n // // console.warn('loader-overlay = 0') // todo togliere\n //\n // this.divTitolo.nativeElement.focus();\n // this.emitDebug(\"Focus impostato su elemento titolo: \");\n // this.emitDebug(this.divTitolo.nativeElement);\n // clearInterval(checkLoading);\n // }\n // }, 500);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes != undefined\n && changes.titolo != undefined\n && changes.titolo.currentValue != undefined\n && !changes.titolo.isFirstChange()) {\n\n this.catchFocus();\n }\n }\n}\n","import {Directive, ViewContainerRef} from '@angular/core';\n\n@Directive({\n selector: '[comment]'\n})\nexport class CommentDirective {\n\n constructor(private viewContainer: ViewContainerRef) {\n\n }\n\n ngOnInit() {\n\n this.viewContainer.clear();\n }\n\n}\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isEmptyOrNull, isListNotEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\nimport {v4 as uuid} from 'uuid';\nimport {BehaviorSubject} from \"rxjs\";\n\n@Component({\n selector: 'inail-radio-select',\n templateUrl: './radio-select.component.html',\n styleUrls: ['./radio-select.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class RadioSelectComponent extends FormElementComponent implements OnInit, OnChanges {\n\n @Input()\n options: RadioSelectOption[];\n @Input()\n name: string;\n @Input()\n sort: \"ASC\" | \"DESC\";\n @Input()\n inline: boolean;\n\n valueValue: string;\n\n @Output()\n valueChange = new EventEmitter();\n\n // isChecked$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n // selctedOption$: BehaviorSubject<RadioSelectOption> = new BehaviorSubject<RadioSelectOption>(undefined);\n\n constructor() {\n\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n\n if (changes.options && changes.options.currentValue && this.options) {\n\n this.options.forEach(opt => {\n\n if (isEmptyOrNull(opt.id)) {\n\n opt.id = uuid();\n }\n })\n }\n\n if (this.sort) {\n\n let direction: number = \"ASC\" == this.sort.toUpperCase() ? 1 : \"DESC\" == this.sort.toUpperCase() ? -1 : 0;\n\n if (direction != 0 && this.options != undefined) {\n\n this.options.sort((a: RadioSelectOption, b: RadioSelectOption) => {\n return a.label < b.label ? -direction : a.label > b.label ? direction : 0\n });\n }\n }\n\n if (changes.value && !changes.value.firstChange) {\n\n this.hasError = false;\n this.descError = undefined;\n }\n }\n\n ngOnInit() {\n\n if (isEmptyOrNull(this.valueValue)) {\n this.valueValue = '';\n }\n\n // setTimeout(() => {\n //\n // let optionSelected = this.options.find(opt => opt && opt.value === this.valueValue);\n //\n // if (optionSelected) {\n // this.selctedOption$.next(optionSelected)\n // }\n // })\n }\n\n @Input()\n get value() {\n return this.valueValue;\n }\n\n set value(val) {\n this.valueValue = val;\n this.valueChange.emit(this.valueValue);\n }\n\n checkDescError(): boolean {\n\n return this.checkError() && isNotEmptyOrNull(this.getDescError());\n }\n\n checkError(): boolean {\n\n return this.hasError || isNotEmptyOrNull(this.descError);\n }\n\n getDescError(): string {\n\n return this.descError;\n }\n\n static isValidOption(opzioniValide: RadioSelectOption[], opzioneScelta: string): boolean {\n\n return ((!opzioneScelta || opzioneScelta.length == 0)) || (isListNotEmptyOrNull(opzioniValide) &&\n\n opzioniValide.findIndex(element => {\n return element.value == opzioneScelta;\n }) >= 0);\n }\n\n radioOnChange(option: RadioSelectOption) {\n\n this.value = option ? option.value : undefined;\n // this.selctedOption$.next(option);\n }\n\n isChecked(option: RadioSelectOption) {\n\n return option && option.value == this.valueValue;\n }\n}\n\nexport class RadioSelectOption {\n id?: string;\n label: string;\n value: string;\n title?: string;\n class?: string;\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';\nimport {FormElementComponent} from \"../form-element/form-element.component\";\nimport {isEmptyOrNull, isNotEmptyOrNull} from \"../../../../utils/Util\";\n\nexport type Currency = 'EURO' | 'DOLLARS';\n\nconst CURRENCY_SYMBOL = {\n 'EURO': 'â¬',\n 'DOLLARS': '$'\n};\n\nconst NUMBERS_INPUTS: string[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\nconst ACCEPTED_INPUTS: string[] = [...NUMBERS_INPUTS, ',', '-', 'Backspace', 'Delete', 'Tab', 'ArrowLeft', 'ArrowRight'];\n\nconst CLEAN_VALUE_REGEX: RegExp = new RegExp(/[ $â¬]+/g);\nconst COMMA_REGEX: RegExp = new RegExp(/[,]/g);\nconst DOT_REGEX: RegExp = new RegExp(/[.]/g);\nconst THOUSANDS_REGEX: RegExp = new RegExp(/(\\d+)(\\d{3})/);\n\n@Component({\n selector: 'inail-input-money',\n templateUrl: './input-money.component.html',\n styleUrls: ['./input-money.component.css']\n})\nexport class InputMoneyComponent extends FormElementComponent implements OnInit, OnChanges, AfterViewInit {\n\n @ViewChild('formControl')\n formControlElement: ElementRef<HTMLInputElement>;\n\n @Input()\n max: number;\n @Input()\n min: number;\n @Input()\n numberOfDecimals: number = 2;\n @Input()\n placeholder: string;\n @Input()\n preventPasting: boolean = false;\n @Input()\n currency: Currency = 'EURO';\n @Input()\n selfValidation: boolean = true;\n @Input()\n selfValidationError: string = 'Importo non valido';\n @Input()\n showThousandsSeparator: boolean = true;\n // @Input()\n // decimalSeparatorSymbol: ',' | '.' = getConfigValue(this.libConfig?.inputMoneyComponent?.decimalSeparatorSymbol, ',');\n // @Input()\n // thousandsSeparatorSymbol: ',' | '.' = getConfigValue(this.libConfig?.inputMoneyComponent?.thousandsSeparatorSymbol, '.');\n\n @Output()\n valueChange: EventEmitter<number> = new EventEmitter<number>();\n\n numberValue: number;\n inputValue: string;\n selfValidationErrorMsg: string;\n\n getCurrencySymbol = (): string => CURRENCY_SYMBOL[this.currency];\n getCleanedValue = (s: string): string => s ? s.replace(CLEAN_VALUE_REGEX, '') : '';\n\n getNumberValue = (s: string): number => {\n let v: string = this.getCleanedValue(s).replace(COMMA_REGEX, '.');\n return parseFloat(v);\n };\n\n isNotBlankOrUndefined = (value: string): boolean => isNotEmptyOrNull(value) && value != 'undefined' && value != 'null';\n\n checkError = (): boolean => this.hasError || isNotEmptyOrNull(this.descError);\n checkDescError = (): boolean => this.checkError() && isNotEmptyOrNull(this.getDescError());\n getDescError = (): string => this.descError;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n }\n\n @Input()\n set value(value: number) {\n\n this.emitDebug(`@Input set value: ${this.numberValue} -> ${value}`);\n this.inputValue = value != undefined ? `${value}` : '';\n this.setValue(this.inputValue);\n }\n\n writeValue(value: number): void {\n\n this.emitDebug(`writeValue: ${value}`);\n this.inputValue = value != undefined ? `${value}` : '';\n this.setValue(this.inputValue);\n }\n\n set inputTextValue(value: string) {\n\n this.emitDebug(`set inputTextValue: ${this.inputValue} -> ${value}`);\n this.inputValue = value;\n this.setValue(this.inputValue);\n }\n\n get inputTextValue(): string {\n\n return this.inputValue;\n }\n\n private setValue(value: string) {\n\n this.emitDebug(`setValue: ${value}`);\n let nextNumberValue: number;\n\n if (this.isNotBlankOrUndefined(value)) {\n\n nextNumberValue = this.getNumberValue(value);\n\n // Se value e' un numero\n if (!isNaN(nextNumberValue)) {\n\n if (this.min != undefined && nextNumberValue < this.min) {\n\n nextNumberValue = this.min;\n\n } else if (this.max != undefined && nextNumberValue > this.max) {\n\n nextNumberValue = this.max;\n }\n }\n // Il valore inserito nell'input text non e' un numero\n else {\n\n nextNumberValue = undefined;\n\n if (this.selfValidation) {\n\n this.selfValidationErrorMsg = `${this.selfValidationError}`;\n }\n }\n\n } else {\n nextNumberValue = undefined;\n this.selfValidationErrorMsg = undefined;\n }\n\n if (this.cleanErrorOnChange) {\n\n this.cleanError();\n }\n\n if (nextNumberValue != this.numberValue) {\n\n this.numberValue = nextNumberValue;\n this.valueChange.emit(this.numberValue);\n }\n\n this.impostaValoreVisibile();\n }\n\n impostaValoreVisibile() {\n\n if (this.numberValue != undefined) {\n\n let nextInputValue: string = `${this.numberValue}`.replace(DOT_REGEX, ',');\n\n if (!this.hasFocus()) {\n\n let a: string[] = nextInputValue.split(',');\n\n if(this.showThousandsSeparator) {\n while (THOUSANDS_REGEX.test(a[0])) {\n a[0] = a[0].replace(THOUSANDS_REGEX, `$1.$2`);\n }\n }\n\n if (this.numberOfDecimals > 0) {\n let decimals = `${a[1] != undefined ? a[1] : ''}000000000000000000000`;\n a[1] = decimals.substring(0, this.numberOfDecimals);\n nextInputValue = a.join(',');\n } else {\n nextInputValue = a[0];\n }\n }\n\n this.inputValue = `${nextInputValue} ${!this.hasFocus() ? this.getCurrencySymbol() : ''}`.trim();\n }\n }\n\n onFocusIn() {\n\n this.impostaValoreVisibile();\n }\n\n onFocusOut() {\n\n this.impostaValoreVisibile();\n }\n\n isWrongMinus = (ev: KeyboardEvent) => ev.key == '-' && (isEmptyOrNull(this.inputValue) || this.inputValue.indexOf('-') > 0);\n isWrongComma = (ev: KeyboardEvent) => ev.key == ',' && (isEmptyOrNull(this.inputValue) || this.inputValue.indexOf(',') > 0);\n isCommaWithNoDecimals = (ev: KeyboardEvent) => ev.key == ',' && this.numberOfDecimals <= 0;\n\n isMaximumNumberOfDecimalsReached(ev): boolean {\n let v: string = this.getCleanedValue(this.inputValue);\n return NUMBERS_INPUTS.some(v => v === ev.key) && v != undefined && v.indexOf(',') > 0 && v.split(',')[1].length >= this.numberOfDecimals;\n }\n\n isWrongDigit = (ev: KeyboardEvent) => !ACCEPTED_INPUTS.some(v => v === ev.key)\n || this.isWrongMinus(ev)\n || this.isWrongComma(ev)\n || this.isCommaWithNoDecimals(ev)\n || this.isMaximumNumberOfDecimalsReached(ev);\n\n onKeyDown(ev: KeyboardEvent) {\n\n if (this.isWrongDigit(ev)) {\n\n ev.preventDefault();\n }\n }\n\n onPaste($event: ClipboardEvent) {\n\n if (this.preventPasting === true) {\n\n $event.preventDefault();\n }\n }\n\n ngOnDestroy(): void {\n\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule, DecimalPipe} from '@angular/common';\nimport {NgInailCommonComponent} from './ng-inail-common.component';\nimport {AccordionComponent} from './components/ux/accordion/accordion.component';\nimport {CheckboxComponent} from \"./components/ux/checkbox/checkbox.component\";\nimport {ConfirmComponent} from \"./components/ux/confirm/confirm.component\";\nimport {DatePickerComponent} from \"./components/ux/date-picker/date-picker.component\";\nimport {FeedbackComponent} from \"./components/ux/feedback/feedback.component\";\nimport {InputTextComponent} from \"./components/ux/input-text/input-text.component\";\nimport {BasicUxElementComponent} from './components/ux/basic-ux-element/basic-ux-element.component';\nimport {FormElementComponent} from './components/ux/form-element/form-element.component';\nimport {ResponsiveElementComponent} from './components/ux/responsive-element/responsive-element.component';\nimport {SelectComponent} from \"./components/ux/select/select.component\";\nimport {TextareaComponent} from \"./components/ux/textarea/textarea.component\";\nimport {ThLabelComponent} from \"./components/ux/th-label/th-label.component\";\nimport {TablePageLengthSelectorComponent} from \"./components/ux/table-page-length-selector/table-page-length-selector.component\";\nimport {TablePageSelectorComponent} from \"./components/ux/table-page-selector/table-page-selector.component\";\nimport {PagedTableRendererComponent} from \"./components/ux/paged-table-renderer/paged-table-renderer.component\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {NgbModule} from \"@ng-bootstrap/ng-bootstrap\";\nimport {InputDateRangeComponent} from './components/ux/input-date-range/input-date-range.component';\nimport {TabPaneComponent} from './components/ux/tab-pane/tab-pane.component';\nimport {TabGroupComponent} from './components/ux/tab-group/tab-group.component';\nimport {InailWizardComponent} from './components/ux/inail-wizard/inail-wizard.component';\nimport {TextEditorComponent} from './components/ux/text-editor/text-editor.component';\nimport {FormGreyComponent} from './components/ux/form-grey/form-grey.component';\nimport {SelectorComponent} from './components/ux/selector/selector.component';\nimport {ModalComponent} from './components/ux/modal/modal.component';\nimport {AlertComponent} from './components/ux/alert/alert.component';\nimport {InputNumberComponent} from './components/ux/input-number/input-number.component';\nimport {InailLayoutComponent} from './components/ux/layout/inail-layout/inail-layout.component';\nimport {LoaderComponent} from './components/ux/layout/loader/loader.component';\nimport {HeaderComponent} from './components/ux/layout/header/header.component';\nimport {NavigazioneInternaComponent} from './components/ux/layout/navigazione-interna/navigazione-interna.component';\nimport {TriggerSliderMenuButtonComponent} from './components/ux/layout/trigger-slider-menu-button/trigger-slider-menu-button.component';\nimport {FooterComponent} from './components/ux/layout/footer/footer.component';\nimport {BaseComponent} from './components/base/base.component';\nimport {NavigazionePrincipaleComponent} from './components/ux/layout/navigazione-principale/navigazione-principale.component';\nimport {NavigazioneUtenteComponent} from './components/ux/layout/navigazione-utente/navigazione-utente.component';\nimport {MenuIntranetComponent} from './components/ux/layout/menu-intranet/menu-intranet.component';\nimport {NavigazioneSecondariaComponent} from './components/ux/layout/navigazione-secondaria/navigazione-secondaria.component';\nimport {PagedTableComponent} from \"./components/ux/paged-table/paged-table.component\";\nimport {InailFileUploadComponent} from './components/ux/inail-file-upload-component/inail-file-upload.component';\nimport {MenuComponent} from './components/ux/menu/menu.component';\nimport {RouterModule} from \"@angular/router\";\nimport {BreadcrumbComponent} from './components/ux/breadcrumb/breadcrumb.component';\nimport {ButtonComponent} from './components/ux/button/button.component';\nimport {InputDateComponent} from './components/ux/input-date/input-date.component';\nimport {PageTitleComponent} from './components/ux/page-title/page-title.component';\nimport {CommentDirective} from './directives/comment.directive';\nimport {RadioSelectComponent} from './components/ux/radio-select/radio-select.component';\nimport {ContentComponent} from './components/ux/content/content.component';\nimport { InputMoneyComponent } from './components/ux/input-money/input-money.component';\n\n@NgModule({\n declarations: [\n NgInailCommonComponent,\n AccordionComponent,\n CheckboxComponent,\n ConfirmComponent,\n DatePickerComponent,\n FeedbackComponent,\n InputTextComponent,\n BasicUxElementComponent,\n FormElementComponent,\n ResponsiveElementComponent,\n SelectComponent,\n TextareaComponent,\n ThLabelComponent,\n TablePageLengthSelectorComponent,\n TablePageSelectorComponent,\n PagedTableRendererComponent,\n InputDateRangeComponent,\n TabPaneComponent,\n TabGroupComponent,\n InailWizardComponent,\n TextEditorComponent,\n FormGreyComponent,\n SelectorComponent,\n ModalComponent,\n AlertComponent,\n InputNumberComponent,\n InailLayoutComponent,\n LoaderComponent,\n HeaderComponent,\n NavigazioneInternaComponent,\n TriggerSliderMenuButtonComponent,\n FooterComponent,\n BaseComponent,\n NavigazionePrincipaleComponent,\n NavigazioneUtenteComponent,\n MenuIntranetComponent,\n NavigazioneSecondariaComponent,\n PagedTableComponent,\n InailFileUploadComponent,\n MenuComponent,\n BreadcrumbComponent,\n ButtonComponent,\n InputDateComponent,\n PageTitleComponent,\n CommentDirective,\n RadioSelectComponent,\n ContentComponent,\n InputMoneyComponent\n ],\n imports: [\n FormsModule,\n CommonModule,\n NgbModule,\n RouterModule,\n ReactiveFormsModule\n ],\n providers: [DecimalPipe],\n exports: [\n NgInailCommonComponent,\n AccordionComponent,\n CheckboxComponent,\n ConfirmComponent,\n DatePickerComponent,\n FeedbackComponent,\n InputTextComponent,\n SelectComponent,\n TextareaComponent,\n ThLabelComponent,\n TablePageLengthSelectorComponent,\n TablePageSelectorComponent,\n PagedTableRendererComponent,\n InputDateRangeComponent,\n TabGroupComponent,\n TabPaneComponent,\n InailWizardComponent,\n TextEditorComponent,\n FormGreyComponent,\n SelectorComponent,\n ModalComponent,\n AlertComponent,\n InputNumberComponent,\n InailLayoutComponent,\n PagedTableComponent,\n InailFileUploadComponent,\n MenuComponent,\n BreadcrumbComponent,\n ButtonComponent,\n InputDateComponent,\n PageTitleComponent,\n RadioSelectComponent,\n ContentComponent,\n BaseComponent,\n InputMoneyComponent\n ]\n})\nexport class NgInailCommonModule {\n}\n"],"names":["Injectable","Component","ViewEncapsulation","EventEmitter","Output","Input","tslib_1.__extends","uuid","isFunction","ViewChild","NgbDatepickerI18n","NgbDateAdapter","NgbDateParserFormatter","NgbDatepickerConfig","ElementRef","ChangeDetectorRef","Renderer2","ContentChildren","ViewChildren","KEYCODE_TAB","router","filter","NavigationEnd","Router","http","HttpClient","HostListener","DomSanitizer","DEFAULT_URL","HttpHeaders","tap","ActivatedRoute","Directive","ViewContainerRef","NgModule","FormsModule","CommonModule","NgbModule","RouterModule","ReactiveFormsModule","DecimalPipe"],"mappings":"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"}
|