@ajf/material 12.1.5 → 12.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/material-barcode.umd.js +3 -7
- package/bundles/material-barcode.umd.js.map +1 -1
- package/bundles/material-calendar.umd.js +5 -17
- package/bundles/material-calendar.umd.js.map +1 -1
- package/bundles/material-checkbox-group.umd.js +4 -14
- package/bundles/material-checkbox-group.umd.js.map +1 -1
- package/bundles/material-form-builder.umd.js +523 -484
- package/bundles/material-form-builder.umd.js.map +1 -1
- package/bundles/material-forms.umd.js +95 -63
- package/bundles/material-forms.umd.js.map +1 -1
- package/bundles/material-image.umd.js +3 -10
- package/bundles/material-image.umd.js.map +1 -1
- package/bundles/material-monaco-editor.umd.js +4 -7
- package/bundles/material-monaco-editor.umd.js.map +1 -1
- package/bundles/material-node-icon.umd.js +3 -10
- package/bundles/material-node-icon.umd.js.map +1 -1
- package/bundles/material-page-slider.umd.js +2 -7
- package/bundles/material-page-slider.umd.js.map +1 -1
- package/bundles/material-reports.umd.js +68 -12
- package/bundles/material-reports.umd.js.map +1 -1
- package/bundles/material-time.umd.js +4 -12
- package/bundles/material-time.umd.js.map +1 -1
- package/calendar/index.metadata.json +1 -1
- package/checkbox-group/index.metadata.json +1 -1
- package/esm2015/barcode/barcode-module.js +3 -7
- package/esm2015/barcode/barcode.js +3 -3
- package/esm2015/calendar/calendar-module.js +4 -14
- package/esm2015/calendar/calendar.js +4 -6
- package/esm2015/checkbox-group/checkbox-group-item.js +3 -3
- package/esm2015/checkbox-group/checkbox-group-module.js +4 -14
- package/esm2015/form-builder/branch-line.js +2 -2
- package/esm2015/form-builder/choices-origin-data-source.js +1 -1
- package/esm2015/form-builder/choices-origin-editor-dialog.js +7 -4
- package/esm2015/form-builder/choices-origin-editor.js +1 -1
- package/esm2015/form-builder/condition-editor-dialog.js +1 -1
- package/esm2015/form-builder/condition-editor.js +9 -8
- package/esm2015/form-builder/form-builder-module.js +29 -14
- package/esm2015/form-builder/form-builder-service.js +132 -125
- package/esm2015/form-builder/form-builder-utils.js +4 -3
- package/esm2015/form-builder/form-builder.js +30 -26
- package/esm2015/form-builder/node-entry.js +7 -5
- package/esm2015/form-builder/node-properties.js +317 -312
- package/esm2015/form-builder/node-type-entry.js +2 -2
- package/esm2015/form-builder/string-identifier-dialog.js +5 -7
- package/esm2015/form-builder/validation-condition-editor-dialog.js +1 -1
- package/esm2015/form-builder/warning-condition-editor-dialog.js +1 -1
- package/esm2015/forms/barcode-field.js +3 -3
- package/esm2015/forms/boolean-field.js +3 -3
- package/esm2015/forms/date-field.js +2 -2
- package/esm2015/forms/date-input-field.js +3 -3
- package/esm2015/forms/empty-field.js +3 -3
- package/esm2015/forms/field-service.js +42 -42
- package/esm2015/forms/field-warning-dialog.js +1 -1
- package/esm2015/forms/field.js +2 -2
- package/esm2015/forms/form.js +2 -2
- package/esm2015/forms/forms-module.js +55 -23
- package/esm2015/forms/input-field.js +2 -2
- package/esm2015/forms/multiple-choice-field.js +3 -3
- package/esm2015/forms/range-field.js +3 -3
- package/esm2015/forms/single-choice-field.js +3 -3
- package/esm2015/forms/table-field.js +3 -3
- package/esm2015/forms/text-field.js +2 -2
- package/esm2015/forms/time-field.js +3 -3
- package/esm2015/forms/video-url-field.js +2 -2
- package/esm2015/forms/warning-alert-service.js +1 -1
- package/esm2015/image/image-module.js +4 -11
- package/esm2015/image/image.js +2 -2
- package/esm2015/monaco-editor/autocomplete-singleton-model.js +3 -2
- package/esm2015/monaco-editor/editor-options-model.js +1 -1
- package/esm2015/monaco-editor/monaco-editor-module.js +3 -7
- package/esm2015/monaco-editor/monaco-editor.js +3 -3
- package/esm2015/node-icon/node-icon-module.js +4 -11
- package/esm2015/node-icon/node-icon.js +1 -1
- package/esm2015/page-slider/page-slider-module.js +3 -8
- package/esm2015/page-slider/page-slider.js +2 -2
- package/esm2015/reports/chart-widget.js +2 -2
- package/esm2015/reports/filter-widget.js +78 -0
- package/esm2015/reports/formula-widget.js +2 -2
- package/esm2015/reports/image-container-widget.js +2 -2
- package/esm2015/reports/image-widget.js +2 -2
- package/esm2015/reports/map-widget.js +2 -2
- package/esm2015/reports/page-break-widget.js +2 -2
- package/esm2015/reports/public-api.js +2 -1
- package/esm2015/reports/report.js +2 -2
- package/esm2015/reports/reports-module.js +7 -6
- package/esm2015/reports/table-widget.js +3 -3
- package/esm2015/reports/text-widget.js +2 -2
- package/esm2015/reports/widget.js +7 -4
- package/esm2015/time/time-module.js +4 -12
- package/esm2015/time/time.js +3 -3
- package/fesm2015/barcode.js +3 -7
- package/fesm2015/barcode.js.map +1 -1
- package/fesm2015/calendar.js +5 -17
- package/fesm2015/calendar.js.map +1 -1
- package/fesm2015/checkbox-group.js +4 -14
- package/fesm2015/checkbox-group.js.map +1 -1
- package/fesm2015/form-builder.js +521 -485
- package/fesm2015/form-builder.js.map +1 -1
- package/fesm2015/forms.js +95 -63
- package/fesm2015/forms.js.map +1 -1
- package/fesm2015/image.js +3 -10
- package/fesm2015/image.js.map +1 -1
- package/fesm2015/monaco-editor.js +5 -8
- package/fesm2015/monaco-editor.js.map +1 -1
- package/fesm2015/node-icon.js +3 -10
- package/fesm2015/node-icon.js.map +1 -1
- package/fesm2015/page-slider.js +2 -7
- package/fesm2015/page-slider.js.map +1 -1
- package/fesm2015/reports.js +89 -13
- package/fesm2015/reports.js.map +1 -1
- package/fesm2015/time.js +4 -12
- package/fesm2015/time.js.map +1 -1
- package/form-builder/index.metadata.json +1 -1
- package/form-builder/node-properties.d.ts +1 -0
- package/forms/index.metadata.json +1 -1
- package/image/index.metadata.json +1 -1
- package/monaco-editor/index.metadata.json +1 -1
- package/node-icon/index.metadata.json +1 -1
- package/package.json +2 -4
- package/page-slider/index.metadata.json +1 -1
- package/{report-builder/widget-toolbar-button.d.ts → reports/filter-widget.d.ts} +11 -5
- package/reports/index.metadata.json +1 -1
- package/reports/public-api.d.ts +1 -0
- package/time/index.metadata.json +1 -1
- package/bundles/material-report-builder.umd.js +0 -5814
- package/bundles/material-report-builder.umd.js.map +0 -1
- package/esm2015/report-builder/column.js +0 -97
- package/esm2015/report-builder/condition-editor.js +0 -159
- package/esm2015/report-builder/content.js +0 -255
- package/esm2015/report-builder/custom-widget-dialog.js +0 -51
- package/esm2015/report-builder/custom-widget-toolbar-button.js +0 -70
- package/esm2015/report-builder/custom-widgets-toolbar.js +0 -124
- package/esm2015/report-builder/forms-analyzer-dialog.js +0 -315
- package/esm2015/report-builder/forms-analyzer.js +0 -264
- package/esm2015/report-builder/image-filter.js +0 -32
- package/esm2015/report-builder/image-group.js +0 -106
- package/esm2015/report-builder/index.js +0 -25
- package/esm2015/report-builder/models.js +0 -23
- package/esm2015/report-builder/operations.js +0 -23
- package/esm2015/report-builder/properties.js +0 -765
- package/esm2015/report-builder/public-api.js +0 -26
- package/esm2015/report-builder/quill-editor.js +0 -299
- package/esm2015/report-builder/renderer-widget.js +0 -238
- package/esm2015/report-builder/report-builder-drag-data.js +0 -23
- package/esm2015/report-builder/report-builder-module.js +0 -114
- package/esm2015/report-builder/report-builder-service.js +0 -1685
- package/esm2015/report-builder/report-builder.externs.js +0 -6
- package/esm2015/report-builder/report-builder.js +0 -69
- package/esm2015/report-builder/theme-color-dialog.js +0 -90
- package/esm2015/report-builder/theme-color.js +0 -215
- package/esm2015/report-builder/tokens.js +0 -24
- package/esm2015/report-builder/toolbar-dialog.js +0 -56
- package/esm2015/report-builder/toolbar.js +0 -90
- package/esm2015/report-builder/utils.js +0 -48
- package/esm2015/report-builder/widget-toolbar-button.js +0 -47
- package/esm2015/report-builder/widgets-row-buttons.js +0 -133
- package/esm2015/report-builder/widgets-toolbar.js +0 -79
- package/fesm2015/report-builder.js +0 -5332
- package/fesm2015/report-builder.js.map +0 -1
- package/report-builder/_report-builder.scss +0 -0
- package/report-builder/column.d.ts +0 -63
- package/report-builder/condition-editor.d.ts +0 -67
- package/report-builder/content.d.ts +0 -142
- package/report-builder/custom-widget-dialog.d.ts +0 -31
- package/report-builder/custom-widget-toolbar-button.d.ts +0 -45
- package/report-builder/custom-widgets-toolbar.d.ts +0 -71
- package/report-builder/forms-analyzer-dialog.d.ts +0 -91
- package/report-builder/forms-analyzer.d.ts +0 -102
- package/report-builder/image-filter.d.ts +0 -25
- package/report-builder/image-group.d.ts +0 -69
- package/report-builder/index.d.ts +0 -24
- package/report-builder/index.metadata.json +0 -1
- package/report-builder/models.d.ts +0 -43
- package/report-builder/operations.d.ts +0 -45
- package/report-builder/package.json +0 -9
- package/report-builder/properties.d.ts +0 -365
- package/report-builder/public-api.d.ts +0 -26
- package/report-builder/quill-editor.d.ts +0 -113
- package/report-builder/renderer-widget.d.ts +0 -80
- package/report-builder/report-builder-drag-data.d.ts +0 -32
- package/report-builder/report-builder-module.d.ts +0 -23
- package/report-builder/report-builder-service.d.ts +0 -722
- package/report-builder/report-builder.d.ts +0 -36
- package/report-builder/theme-color-dialog.d.ts +0 -42
- package/report-builder/theme-color.d.ts +0 -108
- package/report-builder/tokens.d.ts +0 -24
- package/report-builder/toolbar-dialog.d.ts +0 -30
- package/report-builder/toolbar.d.ts +0 -48
- package/report-builder/utils.d.ts +0 -29
- package/report-builder/widgets-row-buttons.d.ts +0 -57
- package/report-builder/widgets-toolbar.d.ts +0 -44
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"material-report-builder.umd.js","sources":["../../../../../external/npm/node_modules/tslib/tslib.es6.js","../../../../../src/material/report-builder/tokens.ts","../../../../../src/material/report-builder/report-builder-service.ts","../../../../../src/material/report-builder/column.ts","../../../../../src/material/report-builder/utils.ts","../../../../../src/material/report-builder/condition-editor.ts","../../../../../src/material/report-builder/content.ts","../../../../../src/material/report-builder/custom-widget-dialog.ts","../../../../../src/material/report-builder/custom-widget-toolbar-button.ts","../../../../../src/material/report-builder/custom-widgets-toolbar.ts","../../../../../src/material/report-builder/forms-analyzer-dialog.ts","../../../../../src/material/report-builder/forms-analyzer.ts","../../../../../src/material/report-builder/image-filter.ts","../../../../../src/material/report-builder/image-group.ts","../../../../../src/material/report-builder/properties.ts","../../../../../src/material/report-builder/quill-editor.ts","../../../../../src/material/report-builder/renderer-widget.ts","../../../../../src/material/report-builder/report-builder.ts","../../../../../src/material/report-builder/theme-color-dialog.ts","../../../../../src/material/report-builder/theme-color.ts","../../../../../src/material/report-builder/toolbar-dialog.ts","../../../../../src/material/report-builder/toolbar.ts","../../../../../src/material/report-builder/widget-toolbar-button.ts","../../../../../src/material/report-builder/widgets-row-buttons.ts","../../../../../src/material/report-builder/widgets-toolbar.ts","../../../../../src/material/report-builder/report-builder-module.ts","../../../../../src/material/report-builder/public-api.ts","../../../../../src/material/report-builder/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\n/** @deprecated */\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\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {InjectionToken} from '@angular/core';\n\nimport {AjfReportsConfig} from './models';\n\nexport const AJF_REPORTS_CONFIG = new InjectionToken<AjfReportsConfig>('AJF_REPORTS_CONFIG');\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfField, AjfFieldType, AjfForm, AjfNode, AjfNodeType, flattenNodes} from '@ajf/core/forms';\nimport {AjfFormula, createFormula} from '@ajf/core/models';\nimport {\n AjfAggregation,\n AjfChartWidget,\n AjfColumnWidget,\n AjfCustomWidget,\n AjfDataWidget,\n AjfImageWidget,\n AjfLayoutWidget,\n AjfReport,\n AjfReportContainer,\n AjfStyles,\n AjfTableWidget,\n AjfTextWidget,\n AjfWidget,\n AjfWidgetType,\n createAggregation,\n createWidget\n} from '@ajf/core/reports';\nimport {deepCopy} from '@ajf/core/utils';\nimport {EventEmitter, Inject, Injectable, Optional} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\nimport {\n combineLatest,\n filter,\n map,\n publishReplay,\n refCount,\n scan,\n share,\n startWith\n} from 'rxjs/operators';\n\nimport {AjfFormVariables, AjfReportIcons, AjfReportsConfig, AjfWidgetsContainer} from './models';\nimport {\n AjfColorOperation,\n AjfCustomWidgetsOperation,\n AjfFormVariablesOperation,\n AjfReportFormsOperation,\n AjfStylesOperation,\n AjfWidgetOperation,\n AjfWidgetsOperation\n} from './operations';\nimport {AJF_REPORTS_CONFIG} from './tokens';\n\n/**\n * This service contains all the logic to model the report widget.\n *\n * @export\n */\n@Injectable()\nexport class AjfReportBuilderService {\n /**\n * this Observable observe the customWidgets obj\n *\n * @memberOf AjfReportBuilderService\n */\n private _customWidgets: Observable<AjfCustomWidget[]>;\n private _customWidgetsUpdate: Subject<AjfCustomWidgetsOperation> =\n new Subject<AjfCustomWidgetsOperation>();\n\n /**\n * this Observable observe the name of the section that contains the current widget.\n *\n * @memberOf AjfReportBuilderService\n */\n private _origin: Observable<string>;\n private _originUpdate: Subject<string> = new Subject<string>();\n\n /**\n * this Observable observe the exported json\n *\n * @memberOf AjfReportBuilderService\n */\n private _savedReport: Observable<AjfReport>;\n private _savedReportUpdate: Subject<AjfReport> = new Subject<AjfReport>();\n\n private _jsonStack: BehaviorSubject<string[]> = new BehaviorSubject<string[]>([]);\n\n private _lastDeletedJson: string|undefined;\n\n private _emptyContent: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * this Observable observe if is fired drag mouse event.\n *\n * @memberOf AjfReportBuilderService\n */\n private _onDragged: Observable<boolean>;\n private _onDraggedUpdate: Subject<boolean> = new Subject<boolean>();\n\n\n private _onOver: Observable<boolean>;\n private _onOverUpdate: Subject<boolean> = new Subject<boolean>();\n\n\n /**\n * this Observable observe the status of permanent zoom\n *\n * @memberOf AjfReportBuilderService\n */\n private _fixedZoom: Observable<boolean>;\n private _fixedZoomUpdate: Subject<boolean> = new Subject<boolean>();\n\n\n /**\n * this Observable observe if is fired drag mouse event.\n *\n * @memberOf AjfReportBuilderService\n */\n private _onDragEnter: Observable<any>;\n private _onDragEnterUpdate: Subject<any> = new Subject<any>();\n\n /**\n * Observe the header widget array.\n *\n * @memberOf AjfReportBuilderService\n */\n private _headerWidgets: Observable<AjfWidgetsContainer>;\n private _headerWidgetsUpdate: Subject<AjfWidgetsOperation> = new Subject<AjfWidgetsOperation>();\n\n /**\n * observe the header styles.\n *\n * @memberOf AjfReportBuilderService\n */\n private _headerStyles: Observable<AjfStyles>;\n\n /**\n * Observe the content widget array\n *\n * @memberOf AjfReportBuilderService\n */\n private _contentWidgets: Observable<AjfWidgetsContainer>;\n private _contentWidgetsUpdate: Subject<AjfWidgetsOperation> = new Subject<AjfWidgetsOperation>();\n\n /**\n * this Observable observe the content styles.\n *\n * @memberOf AjfReportBuilderService\n */\n private _contentStyles: Observable<AjfStyles>;\n\n /**\n * this Observable observe the footer widget array.\n *\n * @memberOf AjfReportBuilderService\n */\n private _footerWidgets: Observable<AjfWidgetsContainer>;\n private _footerWidgetsUpdate: Subject<AjfWidgetsOperation> = new Subject<AjfWidgetsOperation>();\n\n\n private _color: Observable<string[]>;\n private _colorUpdate: Subject<AjfColorOperation> = new Subject<AjfColorOperation>();\n private _defaultColor: string[] = [\n 'rgba(0, 0, 0, 1)', 'rgba(51, 153, 255, 1)', 'rgba(153, 204, 0, 1)',\n 'rgba(255, 102, 0, 1)', 'rgba(0, 204, 204, 1)', 'rgba(204, 204, 153, 1)',\n 'rgba(255, 153, 0, 1)', 'rgba(230, 0, 0, 1)', 'rgba(255, 153, 0, 1)',\n 'rgba(255, 255, 0, 1)', 'rgba(0, 138, 0, 1)', 'rgba(0, 102, 204, 1)',\n 'rgba(153, 51, 255, 1)', 'rgba(255, 255, 255, 1)', 'rgba(250, 204, 204, 1)',\n 'rgba(255, 235, 204, 1)', 'rgba(255, 255, 204, 1)', 'rgba(204, 232, 204, 1)',\n 'rgba(204, 224, 245, 1)', 'rgba(235, 214, 255, 1)', 'rgba(187, 187, 187, 1)',\n 'rgba(240, 102, 102, 1)', 'rgba(255, 194, 102, 1)', 'rgba(255, 255, 102, 1)',\n 'rgba(102, 185, 102, 1)', 'rgba(102, 163, 224, 1)', 'rgba(194, 133, 255, 1)',\n 'rgba(136, 136, 136, 1)', 'rgba(161, 0, 0, 1)', 'rgba(178, 107, 0, 1)',\n 'rgba(178, 178, 0, 1)', 'rgba(0, 97, 0, 1)', 'rgba(0, 71, 178, 1)',\n 'rgba(107, 36, 178, 1)', 'rgba(68, 68, 68, 1)', 'rgba(92, 0, 0, 1)',\n 'rgba(102, 61, 0, 1)', 'rgba(102, 102, 0, 1)', 'rgba(0, 55, 0, 1)',\n 'rgba(0, 41, 102, 1)', 'rgba(61, 20, 102, 1)'\n ];\n\n\n /**\n * this Observable observe the footer styles.\n *\n * @memberOf AjfReportBuilderService\n */\n private _footerStyles: Observable<AjfStyles>;\n\n /**\n * this Observable observe the current widget which holds the focus.\n *\n * @memberOf AjfReportBuilderService\n */\n private _currentWidget: Observable<AjfWidget|null>;\n private _currentWidgetUpdate: BehaviorSubject<AjfWidgetOperation|null> =\n new BehaviorSubject<AjfWidgetOperation|null>(null);\n\n\n /**\n * Observe the AjfFormVariables exploit for field selecting from forms\n *\n * @memberOf AjfReportBuilderService\n */\n private _formsVariables: Observable<AjfFormVariables[]>;\n private _formsVariablesUpdate: BehaviorSubject<AjfFormVariablesOperation|null> =\n new BehaviorSubject<AjfFormVariablesOperation|null>(null);\n\n /**\n * Observe the AjfFormVariables exploit for field selecting from forms\n *\n * @memberOf AjfReportBuilderService\n */\n private _conditionNames: Observable<AjfFormVariables[]>;\n private _conditionNamesUpdate: BehaviorSubject<AjfFormVariablesOperation|null> =\n new BehaviorSubject<AjfFormVariablesOperation|null>(null);\n\n /**\n * this BehaviorSubject update export report.\n *\n * @memberOf AjfReportBuilderService\n */\n private _saveReport: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n\n /**\n * this BehaviorSubject contains the AjfReport.\n *\n * @memberOf AjfReportBuilderService\n */\n private _report: BehaviorSubject<AjfReport|null> = new BehaviorSubject<AjfReport|null>(null);\n\n /**\n * this Observable observe the styles of report.\n *\n * @memberOf AjfReportBuilderService\n */\n private _reportStyles: Observable<AjfStyles>;\n private _reportStylesUpdate: Subject<AjfStylesOperation> = new Subject<AjfStylesOperation>();\n\n /**\n * observe the forms fetched\n *\n * @memberOf AjfReportBuilderService\n */\n private _reportForms: Observable<AjfForm[]>;\n private _reportFormsUpdate: Subject<AjfReportFormsOperation> =\n new Subject<AjfReportFormsOperation>();\n\n /**\n * dictionary for widgetsUpdate\n *\n * @memberOf AjfReportBuilderService\n */\n private _updates: any = {\n header: this._headerWidgetsUpdate,\n content: this._contentWidgetsUpdate,\n footer: this._footerWidgetsUpdate,\n color: this._colorUpdate,\n customWidgets: this._customWidgetsUpdate\n };\n\n /**\n * event emitter that notify when wont to save report\n *\n * @memberOf AjfReportBuilderService\n */\n private _saveReportEvent: EventEmitter<void> = new EventEmitter<void>();\n\n private _saveFormulaTOHtml: EventEmitter<any> = new EventEmitter<any>();\n\n getFormulaToHtmlEvent(): Observable<string> {\n return this._saveFormulaTOHtml as Observable<string>;\n }\n\n /**\n * event emitter that notify when column width changed\n *\n * @memberOf AjfReportBuilderService\n */\n columnWidthChangedEmitter: EventEmitter<void> = new EventEmitter<void>();\n\n private _iconSets: AjfReportIcons = {'ajf-icon': []};\n get iconSets(): AjfReportIcons {\n return this._iconSets;\n }\n\n /**\n * Creates an instance of AjfReportBuilderService.\n *\n * @memberOf AjfReportBuilderService\n */\n constructor(@Optional() @Inject(AJF_REPORTS_CONFIG) reportsConfig: AjfReportsConfig) {\n this._lastDeletedJson = '';\n\n if (reportsConfig != null) {\n if (reportsConfig.icons != null) {\n this._iconSets = {...this._iconSets, ...reportsConfig.icons};\n }\n }\n\n this._origin = (<Observable<string>>this._originUpdate).pipe(startWith('header'), share());\n\n this._savedReport = (<Observable<AjfReport>>this._savedReportUpdate).pipe(share());\n\n this._onDragged = (<Observable<boolean>>this._onDraggedUpdate).pipe(startWith(false), share());\n\n this._onOver = (<Observable<boolean>>this._onOverUpdate).pipe(startWith(false), share());\n\n this._fixedZoom = (<Observable<boolean>>this._fixedZoomUpdate).pipe(startWith(false), share());\n\n this._onDragEnter = this._onDragEnterUpdate.pipe(share());\n\n this._reportStyles = (<Observable<AjfStylesOperation>>this._reportStylesUpdate)\n .pipe(scan((styles: AjfStyles, op: AjfStylesOperation) => {\n return op(styles);\n }, <AjfStyles>{}), share(), startWith(<AjfStyles>{}));\n\n this._reportForms = (<Observable<AjfReportFormsOperation>>this._reportFormsUpdate)\n .pipe(scan((forms: AjfForm[], op: AjfReportFormsOperation) => {\n return op(forms);\n }, []), share(), startWith([]));\n\n this._customWidgets =\n (<Observable<AjfCustomWidgetsOperation>>this._customWidgetsUpdate)\n .pipe(scan((widgets: AjfCustomWidget[], op: AjfCustomWidgetsOperation) => {\n return op(widgets);\n }, []), share(), startWith([]));\n\n this._formsVariables =\n (<Observable<AjfFormVariablesOperation>>this._formsVariablesUpdate)\n .pipe(\n filter(s => s != null),\n scan((variables: AjfFormVariables[], op: AjfFormVariablesOperation) => {\n return op(variables);\n }, []), publishReplay(1), refCount());\n\n this._conditionNames =\n (<Observable<AjfFormVariablesOperation>>this._conditionNamesUpdate)\n .pipe(\n filter(s => s != null),\n scan((variables: AjfFormVariables[], op: AjfFormVariablesOperation) => {\n return op(variables);\n }, []), share(), startWith([]));\n\n this._headerWidgets = (<Observable<AjfWidgetsOperation>>this._headerWidgetsUpdate)\n .pipe(\n scan(\n (widgets: AjfWidgetsContainer, op: AjfWidgetsOperation) => {\n return op(widgets);\n },\n <AjfWidgetsContainer>{widgets: [], styles: {}}),\n startWith(<AjfWidgetsContainer>{widgets: [], styles: {}}),\n publishReplay(1), refCount());\n\n this._headerStyles = this._headerWidgets.pipe(map((widgets: AjfWidgetsContainer) => {\n return widgets != null ? widgets.styles : {};\n }));\n\n this._contentWidgets = (<Observable<AjfWidgetsOperation>>this._contentWidgetsUpdate)\n .pipe(\n scan(\n (widgets: AjfWidgetsContainer, op: AjfWidgetsOperation) => {\n return op(widgets);\n },\n <AjfWidgetsContainer>{widgets: [], styles: {}}),\n startWith(<AjfWidgetsContainer>{widgets: [], styles: {}}),\n publishReplay(1), refCount());\n\n this._contentStyles = this._contentWidgets.pipe(map((widgets: AjfWidgetsContainer) => {\n return widgets != null ? widgets.styles : {};\n }));\n\n this._footerWidgets = (<Observable<AjfWidgetsOperation>>this._footerWidgetsUpdate)\n .pipe(\n scan(\n (widgets: AjfWidgetsContainer, op: AjfWidgetsOperation) => {\n return op(widgets);\n },\n <AjfWidgetsContainer>{widgets: [], styles: {}}),\n startWith(<AjfWidgetsContainer>{widgets: [], styles: {}}),\n publishReplay(1), refCount());\n\n this._footerStyles = this._footerWidgets.pipe(map((widgets: AjfWidgetsContainer) => {\n return widgets != null ? widgets.styles : {};\n }));\n\n this._color = (<Observable<AjfColorOperation>>this._colorUpdate)\n .pipe(scan((color: string[], op: AjfColorOperation) => {\n return op(color);\n }, this._defaultColor), share(), startWith(this._defaultColor));\n\n this._currentWidget = this._currentWidgetUpdate.pipe(\n filter(s => s != null),\n map(s => s!),\n scan(\n (widget: AjfWidget|null, op: AjfWidgetOperation) => {\n return op(widget);\n },\n null as unknown as AjfWidget),\n publishReplay(1),\n refCount(),\n );\n\n this._reportForms\n .pipe(filter(f => f.length != 0), map((forms: AjfForm[]) => {\n return (_c: AjfFormVariables[]): AjfFormVariables[] => {\n return this.fillFormsVariables(forms);\n };\n }))\n .subscribe(this._formsVariablesUpdate);\n\n this._reportForms\n .pipe(filter(f => f.length != 0), map((forms: AjfForm[]) => {\n return (_c: AjfFormVariables[]): AjfFormVariables[] => {\n return this.fillFormsVariables(forms);\n };\n }))\n .subscribe(this._conditionNamesUpdate);\n\n const reportObs = this._report;\n\n reportObs\n .pipe(map((r: AjfReport|null) => {\n return (_colors: string[]): string[] => {\n let tempColors: string[] = this._defaultColor;\n if (r == null) {\n return [];\n } else {\n this.parseColor(r.styles, tempColors);\n if (r.content) {\n this.parseColor(r.content.styles, tempColors);\n }\n if (r.footer) {\n this.parseColor(r.footer.styles, tempColors);\n }\n if (r.header) {\n this.parseColor(r.header.styles, tempColors);\n for (let i = 0; i < r.header.content.length; i++) {\n let obj = r.header.content[i];\n this.parseColor(obj.styles, tempColors);\n if (obj.widgetType === AjfWidgetType.Layout) {\n let layoutObj = obj as AjfLayoutWidget;\n for (let j = 0; j < layoutObj.content.length; j++) {\n let columnObj = layoutObj.content[j] as AjfColumnWidget;\n this.parseColor(columnObj.styles, tempColors);\n for (let z = 0; z < columnObj.content.length; z++) {\n let widgetObj = columnObj.content[z];\n this.parseColor(widgetObj.styles, tempColors);\n }\n }\n }\n }\n }\n }\n return <string[]>tempColors;\n };\n }))\n .subscribe(this._colorUpdate);\n\n reportObs\n .pipe(map((r: AjfReport|null) => {\n return (_styles: AjfStyles): AjfStyles => {\n if (r == null || r.styles == null) {\n return <AjfStyles>{};\n } else {\n return <AjfStyles>r.styles;\n }\n };\n }))\n .subscribe(this._reportStylesUpdate);\n\n reportObs\n .pipe(map((r: AjfReport|null) => {\n return (_widgets: AjfWidgetsContainer): AjfWidgetsContainer => {\n if (r == null || r.header == null) {\n return <AjfWidgetsContainer>{widgets: [], styles: {}};\n } else {\n return <AjfWidgetsContainer>{\n widgets: r.header.content || [],\n styles: r.header.styles || {}\n };\n }\n };\n }))\n .subscribe(this._headerWidgetsUpdate);\n\n reportObs\n .pipe(map((r: AjfReport|null) => {\n return (_widgets: AjfWidgetsContainer): AjfWidgetsContainer => {\n if (r == null || r.content == null) {\n return <AjfWidgetsContainer>{widgets: [], styles: {}};\n } else {\n return <AjfWidgetsContainer>{\n widgets: r.content.content || [],\n styles: r.content.styles || {}\n };\n }\n };\n }))\n .subscribe(this._contentWidgetsUpdate);\n\n reportObs\n .pipe(map((r: AjfReport|null) => {\n return (_widgets: AjfWidgetsContainer): AjfWidgetsContainer => {\n if (r == null || r.footer == null) {\n return <AjfWidgetsContainer>{widgets: [], styles: {}};\n } else {\n return <AjfWidgetsContainer>{\n widgets: r.footer.content || [],\n styles: r.footer.styles || {}\n };\n }\n };\n }))\n .subscribe(this._footerWidgetsUpdate);\n\n this._saveReport.pipe(map((json: any) => {\n return (_r: any): any => {\n if (json = null) {\n return {};\n }\n return json;\n };\n }));\n\n this._saveReportEvent\n .pipe(\n combineLatest(this.report, this.reportForms),\n combineLatest(\n this._headerWidgets.pipe(filter(w => w != null)),\n this._contentWidgets.pipe(filter(w => w != null)),\n this._footerWidgets.pipe(filter(w => w != null)),\n this._reportStyles.pipe(filter(w => w != null)),\n ))\n .subscribe(r => {\n let obj: any = {};\n // const curRo = r[0][1];\n // const forms = r[0][2] != null ? r[0][2] || []\n // : (curRo != null ? curRo.forms || [] : []);\n\n const [hco, cco, fco] = [r[1], r[2], r[3]] as AjfWidgetsContainer[];\n\n obj.header = {content: hco.widgets.map(w => deepCopy(w)), styles: hco.styles} as\n AjfReportContainer;\n obj.content = {content: cco.widgets.map(w => deepCopy(w)), styles: cco.styles} as\n AjfReportContainer;\n obj.footer = {content: fco.widgets.map(w => deepCopy(w)), styles: fco.styles} as\n AjfReportContainer;\n obj.styles = r[4];\n\n const ro = {\n header: {content: hco.widgets, styles: hco.styles},\n content: {content: cco.widgets, styles: cco.styles},\n footer: {content: fco.widgets, styles: fco.styles},\n styles: r[4]\n } as AjfReport;\n\n this.setSaveReport(obj);\n this._savedReportUpdate.next(ro);\n this.pushJsonStack(JSON.stringify(obj));\n });\n }\n\n /**\n *\n * functions\n *\n */\n\n /**\n * utils:\n * remove AjfNodeGroup, AjfSlide, AjfRepeatingSlide, AjfStringField from ajfnode array\n *\n * @param nodes\n *\n * @memberOf AjfReportBuilderService\n */\n filterNodes(nodes: AjfNode[]): AjfNode[] {\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.nodeType === AjfNodeType.AjfNodeGroup || node.nodeType === AjfNodeType.AjfSlide ||\n node.nodeType === AjfNodeType.AjfRepeatingSlide ||\n (node.nodeType === AjfNodeType.AjfField &&\n (node as AjfField).fieldType === AjfFieldType.String)) {\n nodes.splice(i, 1);\n i--;\n }\n }\n return nodes;\n }\n\n parseColor(cssStyles: any, colors: string[]): void {\n const styleKeys = ['background-color', 'backgroundColor', 'color'];\n styleKeys.forEach((k) => {\n if (cssStyles[k] && colors.indexOf(cssStyles[k]) == -1) {\n colors.push(cssStyles[k]);\n }\n });\n }\n\n fillFormsVariables(forms: AjfForm[]) {\n let variables: AjfFormVariables[] = [];\n for (let i = 0; i < forms.length; i++) {\n variables[i] = {nodes: [], labels: [], names: [], types: []};\n\n if (forms[i].nodes != null && forms[i].nodes.length > 0) {\n variables[i].nodes = this.filterNodes(flattenNodes(forms[i].nodes));\n }\n variables[i].labels = this.extractLabelsNodes(variables[i].nodes);\n variables[i].names = this.extractNamesNodes(variables[i].nodes);\n variables[i].types = this.extractTypesNodes(variables[i].nodes);\n }\n return variables;\n }\n /**\n * utils:\n * the obj returned contains the label field of ajfNode\n * @param nodes\n *\n * @memberOf AjfReportBuilderService\n */\n extractLabelsNodes(nodes: AjfNode[]): any {\n let obj: string[] = [];\n for (let i = 0; i < nodes.length; i++) {\n obj.push(nodes[i].label);\n }\n return obj;\n }\n\n extractNamesNodes(nodes: AjfNode[]): any {\n let obj: string[] = [];\n for (let i = 0; i < nodes.length; i++) {\n obj.push(nodes[i].name);\n }\n return obj;\n }\n extractTypesNodes(nodes: AjfNode[]): any {\n let obj: AjfFieldType[] = [];\n for (let i = 0; i < nodes.length; i++) {\n let p: AjfField = <AjfField>nodes[i];\n obj.push(p.fieldType);\n }\n return obj;\n }\n\n setOrigin(origin: string): void {\n this._originUpdate.next(origin);\n }\n\n /**\n * utils:\n * This method round the value to the decimal position\n *\n * @param value\n * @param decimalpositions\n *\n * @memberOf AjfReportBuilderService\n */\n roundTo(value: number, decimalPositions: number) {\n let i = value * Math.pow(10, decimalPositions);\n\n i = Math.floor(i);\n\n return i / Math.pow(10, decimalPositions);\n }\n\n /**\n * utils:\n * This validator check if the value is a number.\n *\n * @param value\n *\n * @memberOf AjfReportBuilderService\n */\n isNumber(value: any): boolean {\n return /^\\d+(\\.\\d+)?/.test(value);\n }\n\n isNumberArray(value: any[]): boolean {\n for (let i = 0; i < value.length; i++) {\n if (!this.isNumber(value[i])) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * get _onDragged Observable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get onDragged(): Observable<any> {\n return this._onDragged;\n }\n\n /**\n * get _onOver Observable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get onOver(): Observable<any> {\n return this._onOver;\n }\n\n /**\n * get _fixedZoom Observable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get fixedZoom(): Observable<boolean> {\n return this._fixedZoom;\n }\n\n /**\n * change status of _fixedZoom in true\n *\n *\n * @memberOf AjfReportBuilderService\n */\n fixedZoomIn(): void {\n this._fixedZoomUpdate.next(true);\n }\n\n /**\n * change status of _fixedZoom in false\n *\n *\n * @memberOf AjfReportBuilderService\n */\n fixedZoomOut(): void {\n this._fixedZoomUpdate.next(false);\n }\n\n /**\n * get _onDragEnter observable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get onDragEnter(): Observable<any> {\n return this._onDragEnter;\n }\n\n /**\n * update _onDragEnter with section(header,content,footer) and index\n *\n * @memberOf AjfReportBuilderService\n */\n dragEnter(array: string, index: number): void {\n this._onDragEnterUpdate.next({array, index});\n }\n\n /**\n * update _ondragged with true\n *\n * @memberOf AjfReportBuilderService\n */\n dragStarted(): void {\n this._onDraggedUpdate.next(true);\n }\n\n /**\n * update _onDragged with false\n *\n * @memberOf AjfReportBuilderService\n */\n\n dragEnded(): void {\n this._onDraggedUpdate.next(false);\n }\n\n\n /**\n * update _onOver with true\n *\n *\n * @memberOf AjfReportBuilderService\n */\n overStarted(): void {\n this._onOverUpdate.next(true);\n }\n\n\n /**\n * update _onOver with false\n *\n *\n * @memberOf AjfReportBuilderService\n */\n overEnded(): void {\n this._onOverUpdate.next(false);\n }\n\n /**\n *\n * update _onDragged with false\n *\n * @memberOf AjfReportBuilderService\n */\n dragLeave(): void {\n this._onDragEnterUpdate.next({});\n }\n\n /**\n * Get the report\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get report(): Observable<AjfReport|null> {\n return this._report as Observable<AjfReport|null>;\n }\n\n /**\n * emit save report event\n *\n *\n * @memberOf AjfReportBuilderService\n */\n saveReport() {\n if (this._saveReportEvent != null) {\n this._saveReportEvent.emit();\n }\n }\n\n saveImageFormula(formula: AjfFormula) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return widget;\n }\n const w = widget as AjfImageWidget;\n w.flag = formula;\n w.icon = formula;\n return w;\n });\n }\n\n saveFormulaToHtml(htmlFormula: string, reference: any) {\n if (this._saveFormulaTOHtml != null) {\n const obj = {'formula': htmlFormula, 'reference': reference};\n this._saveFormulaTOHtml.emit(obj);\n }\n }\n\n setEmptyContent(val: boolean): void {\n this._emptyContent.next(val);\n }\n\n\n pushJsonStack(json: string): void {\n let currentStack = this._jsonStack.getValue();\n\n if (currentStack.indexOf(json) === -1 && json !== this._lastDeletedJson) {\n currentStack.push(json);\n }\n\n this._jsonStack.next(currentStack);\n }\n\n popJsonStack(): string|undefined {\n let emptyJson = '{\"header\":{\"content\":[],\"styles\":{}},' +\n '\"content\":{\"content\":[],\"styles\":{}},\"' +\n 'footer\":{\"content\":[],\"styles\":{}},\"styles\":{}}';\n let currentStack = this._jsonStack.getValue();\n currentStack.pop();\n this._lastDeletedJson = currentStack.pop();\n\n if (currentStack.length <= 0) {\n this._lastDeletedJson = '';\n this._jsonStack.next([]);\n this.updateCurrentWidget(null);\n this.setEmptyContent(true);\n return emptyJson;\n }\n this._jsonStack.next(currentStack);\n\n return this._lastDeletedJson;\n }\n\n\n /**\n * get the emitter\n *\n * @readonly\n *\n * @memberOf AjfReportBuilderService\n */\n get columnWidthChanged() {\n return this.columnWidthChangedEmitter;\n }\n\n /**\n * get _customWidgets Observable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get customWidgets(): Observable<AjfCustomWidget[]> {\n return this._customWidgets;\n }\n\n /**\n * Get the header widget\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get headerWidgets(): Observable<AjfWidgetsContainer> {\n return this._headerWidgets;\n }\n\n /**\n * Get the header styles\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get headerStyles(): Observable<AjfStyles> {\n return this._headerStyles;\n }\n\n /**\n * Get the Content widget\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get contentWidgets(): Observable<AjfWidgetsContainer> {\n return this._contentWidgets;\n }\n\n /**\n * Get the content styles\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get contentStyles(): Observable<AjfStyles> {\n return this._contentStyles;\n }\n\n /**\n * Get the footer widget\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get footerWidgets(): Observable<AjfWidgetsContainer> {\n return this._footerWidgets;\n }\n\n /**\n * Get the footer styles\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get footerStyles(): Observable<AjfStyles> {\n return this._footerStyles;\n }\n\n /**\n * Get the colors of report\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get colors(): Observable<string[]> {\n return this._color;\n }\n\n get emptyContent(): Observable<boolean> {\n return <Observable<boolean>>this._emptyContent;\n }\n\n /**\n *\n * @param type\n * @param newWidget\n *\n * @memberOf AjfReportBuilderService\n */\n updateArrayWidgets(type: string, newWidget: AjfWidgetsContainer) {\n if ((type !== 'header') && (type !== 'content') && (type !== 'footer')) {\n throw new Error('Unknown type ' + type);\n }\n this._updates[type].next((_widgets: AjfWidgetsContainer): AjfWidgetsContainer => {\n return newWidget;\n });\n }\n\n /**\n * get _formsVariables Observable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get formsVariables(): Observable<AjfFormVariables[]> {\n return this._formsVariables;\n }\n\n get conditionNames(): Observable<AjfFormVariables[]> {\n return this._conditionNames;\n }\n /**\n * Get the current widget\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get currentWidget(): Observable<AjfWidget|null> {\n return this._currentWidget;\n }\n\n /**\n * This method Update _currentWidgetUpdate with newWidget.\n *\n * @param newWidget\n *\n * @memberOf AjfReportBuilderService\n */\n updateCurrentWidget(newWidget: AjfWidget|null) {\n this._currentWidgetUpdate.next((_widget: AjfWidget|null): AjfWidget|null => {\n this._saveReportEvent.emit();\n return newWidget;\n });\n }\n\n /**\n * Get the report\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get getSaveReport(): Observable<any> {\n return this._saveReport as Observable<any>;\n }\n\n /**\n * get _jsonSavedReport obeservable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get reportSaved(): Observable<AjfReport> {\n return this._savedReport;\n }\n\n\n /**\n * get _reportStyles observable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get reportStyles(): Observable<AjfStyles> {\n return this._reportStyles;\n }\n\n /**\n * get _reportForms observable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get reportForms(): Observable<AjfForm[]> {\n return this._reportForms;\n }\n\n /**\n * get the _origin Observable\n *\n * @readonly\n * @memberOf AjfReportBuilderService\n */\n get origin(): Observable<string> {\n return this._origin;\n }\n\n /**\n * This method assigns the new width to the idx column\n * and recalculates the width of the remaining columns of the layout.\n * The range value are from 0,1 to 1.\n *\n * RULES:\n * The min value for column is 0,1.\n * The sum of all columns width is always 1.\n * The method round the values.\n * If is present only one column the width is always 1.\n *\n * When the new value `>` old value:\n * the width of the remaining columns decreases.\n * When the new value `<` old value:\n * the width of the remaining columns increases.\n *\n * When values are periodic, rounding assigns the gap to the current value.\n * For example: 3 columns with 0,33 believe 1 column 0,34 and 2 columns 0,33.\n *\n * @param newValue\n * @param idx\n *\n * @memberOf AjfReportBuilderService\n */\n instantColumnValue(newValue: number, idx: number) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return widget;\n }\n let myObj = <AjfLayoutWidget>widget;\n\n let size = myObj.columns.length;\n\n let spreadValue = 0;\n let objNum = 0;\n let sum = 0;\n let idxFirstNoObj = -1;\n\n let add = false;\n let foundFirstNoObj = false;\n\n let re1 = new RegExp('(^[0]\\.\\[1-9][0-9]$)');\n let re2 = new RegExp('(^[0]\\.\\[1-9]$)');\n let re3 = new RegExp('^[1]$');\n\n let oldValue = myObj.columns[idx];\n\n newValue = Number(this.roundTo(newValue, 2).toFixed(2));\n\n if (myObj.columns[idx] == null) {\n throw new Error('invalid value');\n }\n\n for (let j = 0; j < size; j++) {\n if (myObj.columns[j] === -1) {\n objNum++;\n }\n }\n\n if (oldValue == -1) {\n oldValue = 0.1;\n objNum--;\n newValue = Number(this.roundTo(1 / (size - objNum), 2).toFixed(2));\n myObj.columns[idx] = 0.1;\n } else if (oldValue < 0.1) {\n oldValue = 0.1;\n }\n\n\n if (newValue !== -1) {\n if (myObj.columns.length === 1) {\n myObj.columns[0] = 1;\n return myObj;\n }\n\n if (newValue < 0.1) {\n newValue = 0.1;\n } else if (newValue + 0.1 * (size - objNum - 1) > 1) {\n newValue = 1 - (0.1 * (size - objNum - 1));\n }\n\n if ((oldValue === newValue) && (oldValue === 0.1)) {\n myObj.columns[idx] = newValue;\n return myObj;\n }\n\n if (oldValue > newValue) {\n add = true;\n spreadValue = (oldValue - newValue) / (size - objNum - 1);\n } else {\n add = false;\n spreadValue = (newValue - oldValue) / (size - objNum - 1);\n }\n\n spreadValue = Number(this.roundTo(spreadValue, 2).toFixed(2));\n\n if (spreadValue < 0.01) {\n spreadValue = 0.1;\n }\n\n } else {\n myObj.columns[idx] = -1;\n objNum++;\n add = true;\n if (myObj.columns.length == 1) {\n spreadValue = 1;\n } else {\n spreadValue = (oldValue) / (size - objNum);\n }\n }\n\n for (let i = 0; i < size; i++) {\n if (myObj.columns[i] !== -1) {\n if ((i == idx)) {\n myObj.columns[idx] = newValue;\n } else {\n if (add) {\n myObj.columns[i] += spreadValue;\n if ((myObj.columns[i] > 0.9) && (myObj.columns.length - objNum != 1)) {\n myObj.columns[i] = 0.90;\n }\n\n } else {\n myObj.columns[i] -= spreadValue;\n if (myObj.columns[i] < 0.1) {\n myObj.columns[i] = 0.10;\n }\n }\n\n myObj.columns[i] = Number(this.roundTo(myObj.columns[i], 2).toFixed(2));\n sum += myObj.columns[i];\n }\n\n sum = Number(this.roundTo(sum, 2).toFixed(2));\n\n if (foundFirstNoObj == false) {\n idxFirstNoObj = i;\n foundFirstNoObj = true;\n }\n }\n }\n\n if (newValue === -1) {\n myObj.columns[idx] = -1;\n if (foundFirstNoObj) {\n myObj.columns[idxFirstNoObj] += Number(this.roundTo(1 - sum, 2).toFixed(2));\n }\n } else {\n myObj.columns[idx] = Number(this.roundTo(1 - sum, 2).toFixed(2));\n }\n\n for (let j = 0; j < myObj.columns.length; j++) {\n if (myObj.columns[j] !== -1 && !re1.test(String(myObj.columns[j])) &&\n !re2.test(String(myObj.columns[j])) && !re3.test(String(myObj.columns[j]))) {\n this.instantColumnValue(0.10, j);\n }\n }\n this.columnWidthChangedEmitter.emit();\n this._saveReportEvent.emit();\n return myObj;\n });\n }\n\n /**\n * This method set the imageUrl on the current AjfImageWidget.\n *\n * @param imageUrl\n *\n * @memberOf AjfReportBuilderService\n */\n setImageUrl(imageUrl: string) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n const myObj = widget as AjfImageWidget;\n myObj.url = createFormula({formula: `\"${imageUrl}\"`});\n return myObj;\n });\n }\n\n setIcon(icon: {fontSet: string, fontIcon: string}) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n const myObj = widget as AjfImageWidget;\n myObj.icon = createFormula({formula: `\"${icon}\"`});\n return myObj;\n });\n }\n\n setFlag(value: string) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n const myObj = widget as AjfImageWidget;\n myObj.flag = createFormula({formula: `\"${value}\"`});\n return myObj;\n });\n }\n\n saveCondition(conditionText: string) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n if (widget.visibility != null) {\n widget.visibility.condition = conditionText;\n }\n return widget;\n });\n }\n\n saveChartFormula(\n _label: string, _level: number, _mainIndex: number, _index: number, formulaText: string,\n aggregationType: number) {\n this._currentWidgetUpdate.next((w: AjfWidget|null): AjfWidget|null => {\n if (w == null) {\n return null;\n }\n const widget = w as AjfChartWidget;\n if (widget != null && widget.dataset != null) {\n let formula: AjfFormula = createFormula({});\n let aggregation: AjfAggregation = createAggregation({});\n // let obj: any;\n\n formula.formula = formulaText;\n aggregation.aggregation = aggregationType;\n\n // obj = {\n // 'formula': formula.toJson(),\n // 'aggregation': aggregation.toJson(),\n // 'label': label\n // };\n\n // dataset = AjfDataset.fromJson(obj);\n // check if the row that contains main data is defined\n /* if (widget.dataset[0] == null) {\n widget.dataset[0] = [];\n }\n\n if (level == 0 && mainIndex == -1 && index == -1) {\n\n widget.dataset[0].push(dataset);\n } else if (level == 1 && mainIndex == -1 && index == -1) {\n\n widget.dataset[widget.dataset.length] = [];\n widget.dataset[widget.dataset.length - 1].push(dataset);\n } else if (index === - 1) {\n widget.dataset[mainIndex + 1].push(dataset);\n } else {\n widget.dataset[mainIndex].splice(index, 1, dataset);\n } */\n }\n return widget;\n });\n }\n\n saveTableFormula(\n _label: string, aggregationType: number, formulaText: string, _mainIndex: number,\n _index: number) {\n this._currentWidgetUpdate.next((w: AjfWidget|null): AjfWidget|null => {\n if (w == null) {\n return null;\n }\n const widget = w as AjfTableWidget;\n if (widget.dataset != null) {\n let formula: AjfFormula = createFormula({});\n let aggregation: AjfAggregation = createAggregation({});\n // let dataset: AjfDataset = new AjfDataset();\n // let rowDataset: AjfDataset[] = [];\n // let obj: any;\n\n formula.formula = formulaText;\n aggregation.aggregation = aggregationType;\n\n // obj = {\n // 'formula': formula.toJson(),\n // 'aggregation': aggregation.toJson(),\n // 'label': label\n // };\n\n // dataset = AjfDataset.fromJson(obj);\n /* if (mainIndex === - 1) {\n widget.dataset[widget.dataset.length] = [];\n widget.dataset[widget.dataset.length - 1].push(dataset);\n } else {\n if (index === -1) {\n widget.dataset[mainIndex].push(dataset);\n } else {\n widget.dataset[mainIndex].splice(index, 1, dataset);\n }\n } */\n }\n return widget;\n });\n }\n\n removeTableMainData(index: number) {\n this._removeFromCurrentWidgetArrayProperty('dataset', index);\n }\n\n removeData(_mainIndex: number, _index: number) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n let myObj = <AjfDataWidget>widget;\n\n /* if (index === -1) {\n myObj.dataset.splice(mainIndex, 1);\n } else {\n myObj.dataset[mainIndex].splice(index, 1);\n } */\n\n return myObj;\n });\n }\n\n /**\n * update type field of AjfChartWidget current widget\n *\n * @param type\n *\n * @memberOf AjfReportBuilderService\n */\n setChartType(type: number) {\n this._setCurrentWidgetProperty('type', type);\n }\n\n /**\n * remove idx element of xLabels field of AjfChartWidget current widget\n *\n * @param idx\n *\n * @memberOf AjfReportBuilderService\n */\n removeMainData(_idx: number) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n let myObj = <AjfChartWidget>widget;\n // myObj.dataset[0].splice(idx, 1);\n\n return myObj;\n });\n }\n\n removeRelatedData(_mainIdx: number, _idx: number) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n let myObj = <AjfChartWidget>widget;\n /* if (idx == -1) {\n myObj.dataset.splice(mainIdx + 1, 1);\n } else {\n myObj.dataset[mainIdx + 1].splice(idx, 1);\n } */\n\n return myObj;\n });\n }\n\n\n /**\n * update backgroundColor field of AjfChartWidget current widget\n *\n * @param colors\n *\n * @memberOf AjfReportBuilderService\n */\n setChartBackgroundColor(colors: string[]) {\n this._setCurrentWidgetProperty('backgroundColor', colors);\n }\n\n addChartBackgroundColor(color: string) {\n this._addToCurrentWidgetArrayProperty('backgroundColor', color);\n }\n\n removeChartBackgroundColor(idx: number) {\n this._removeFromCurrentWidgetArrayProperty('backgroundColor', idx);\n }\n\n /**\n * update borderColor field of AjfChartWidget current widget\n *\n * @param colors\n *\n * @memberOf AjfReportBuilderService\n */\n setChartBorderColor(colors: string[]) {\n this._setCurrentWidgetProperty('borderColor', colors);\n }\n\n setChartBorderWidth(value: number) {\n this._setCurrentWidgetProperty('borderWidth', value);\n }\n\n addChartBorderColor(color: string) {\n this._addToCurrentWidgetArrayProperty('borderColor', color);\n }\n\n removeChartBorderColor(idx: number) {\n this._removeFromCurrentWidgetArrayProperty('borderColor', idx);\n }\n\n /**\n * This method set the AjfReport.\n *\n * @param report\n *\n * @memberOf AjfReportBuilderService\n */\n setReport(report: AjfReport): void {\n this._report.next(report);\n }\n\n /**\n * This method set the export report.\n *\n * @param report\n *\n * @memberOf AjfReportBuilderService\n */\n setSaveReport(json: any): void {\n this._saveReport.next(json);\n }\n\n /**\n * This method set the font attribute on the current AjfWidget.\n *\n * There is a check on font-size attribute,\n * if is no specificate the type of size font set 'pt' as default.\n *\n * @param label\n * @param value\n *\n * @memberOf AjfReportBuilderService\n */\n setWidgetStyles(label: string, value: string|string[]) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n let myObj = <AjfTextWidget>widget;\n\n const pxStyles =\n ['font-size', 'height', 'width', 'border-width', 'border-radius', 'padding', 'margin'];\n const isPxStyle = pxStyles.indexOf(label) > -1;\n if (isPxStyle && !(value instanceof Array) && this.isNumber(value)) {\n value += 'px';\n } else if (isPxStyle && value instanceof Array && this.isNumberArray(value)) {\n value = `${value.join('px ')}px`;\n }\n\n myObj.styles[label] = value;\n\n return myObj;\n });\n }\n\n /**\n * this method update the styles of origin widget array\n *\n * @param origin can be header content or footer\n * @param label for example background-color\n * @param value for example rgb(255,255,255,1)\n *\n * @memberOf AjfReportBuilderService\n */\n setSectionStyles(origin: string, label: string, value: string) {\n if ((origin !== 'header') && (origin !== 'content') && (origin !== 'footer')) {\n throw new Error('uncknow origin ' + origin);\n }\n\n this._updates[origin].next((widget: AjfWidgetsContainer): AjfWidgetsContainer => {\n widget.styles[label] = value;\n\n widget.styles = <AjfStyles>{...widget.styles};\n\n return widget;\n });\n }\n\n /**\n * this method set the style of the whole report.\n *\n * @param label for example background-color\n * @param value for example rgb(255,255,255,1)\n *\n * @memberOf AjfReportBuilderService\n */\n setReportStyles(label: string, value: string) {\n this._reportStylesUpdate.next((styles: AjfStyles): AjfStyles => {\n if (styles == null) {\n styles = {};\n } else {\n styles[label] = value;\n styles = <AjfStyles>{...styles};\n }\n return styles;\n });\n }\n\n /**\n * update forms\n *\n * @param forms\n *\n * @memberOf AjfReportBuilderService\n */\n setReportForms(forms: AjfForm[]) {\n this._reportFormsUpdate.next((_form: AjfForm[]): AjfForm[] => {\n return forms || [];\n });\n }\n\n /**\n * update customWidgets\n *\n * @param widget\n * @param [position]\n *\n * @memberOf AjfReportBuilderService\n */\n addCustomWidgets(widget: AjfCustomWidget, position?: number) {\n this._customWidgetsUpdate.next((customWidgets: AjfCustomWidget[]): AjfCustomWidget[] => {\n customWidgets = customWidgets || [];\n if (position != null && position >= 0) {\n customWidgets.splice(position, 0, widget);\n } else {\n customWidgets.push(widget);\n }\n return customWidgets;\n });\n }\n\n /**\n * reset customWidgets\n *\n * @param widget\n * @param [position]\n *\n * @memberOf AjfReportBuilderService\n */\n resetCustomWidgets() {\n this._customWidgetsUpdate.next((customWidgets: AjfCustomWidget[]): AjfCustomWidget[] => {\n customWidgets.length = 0;\n return customWidgets;\n });\n }\n\n /**\n * update label of widget\n *\n * @param label\n * @param position\n *\n * @memberOf AjfReportBuilderService\n */\n changeLabelCustomWidget(label: string, position: number) {\n this._customWidgetsUpdate.next((customWidgets: AjfCustomWidget[]): AjfCustomWidget[] => {\n customWidgets[position].type = label;\n return customWidgets;\n });\n }\n\n /**\n * Add an AjfWidget on _headerWidgetsUpdate\n *\n * @param widget\n * @param [position]\n *\n * @memberOf AjfReportBuilderService\n */\n addHeaderWidget(widget: AjfWidget, position?: number) {\n this._addWidgetToContainer(this._headerWidgetsUpdate, widget, position);\n }\n\n /**\n * Add an AjfWidget on _contentWidgetsUpdate\n *\n * @param widget\n * @param [position]\n *\n * @memberOf AjfReportBuilderService\n */\n addContentWidget(widget: AjfWidget, position?: number) {\n this._addWidgetToContainer(this._contentWidgetsUpdate, widget, position);\n }\n\n /**\n * Add an AjfWidget on _footerWidgetsUpdate\n *\n * @param widget\n * @param [position]\n *\n * @memberOf AjfReportBuilderService\n */\n addfooterWidget(widget: AjfWidget, position?: number) {\n this._addWidgetToContainer(this._footerWidgetsUpdate, widget, position);\n }\n\n unfixedColumn(idx: number) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return widget;\n }\n let myObj = <AjfLayoutWidget>widget;\n let num = myObj.columns.length;\n let checkSum = 0;\n let objNum = 0;\n let value = 1;\n let spreadValue: any;\n myObj.columns[idx] = 0;\n\n for (let j = 0; j < num; j++) {\n if (myObj.columns[j] === -1) {\n objNum++;\n }\n }\n\n value = Number(this.roundTo(1 / (num - objNum), 2).toFixed(2));\n\n for (let i = 0; i < num; i++) {\n if (myObj.columns[i] !== -1) {\n myObj.columns[i] = value;\n checkSum = Number(this.roundTo(checkSum + value, 2).toFixed(2));\n }\n }\n\n checkSum = Number(this.roundTo(checkSum, 2).toFixed(2));\n\n if (checkSum > 1) {\n spreadValue = parseFloat(this.roundTo(((checkSum - 1) % 1), 2).toFixed(2));\n myObj.columns[idx] -= spreadValue;\n myObj.columns[idx] = this.roundTo(myObj.columns[idx], 2);\n } else if (checkSum < 1) {\n myObj.columns[idx] += (1 - (checkSum % 1));\n myObj.columns[idx] = Number(this.roundTo(myObj.columns[idx], 2).toFixed(2));\n }\n\n return myObj;\n });\n }\n\n /**\n * Add column on the current AjfLayoutWidget.\n *\n * When adding a column the width of the other columns is recalculated\n * by dividing it by the number of column\n *\n * @memberOf AjfReportBuilderService\n */\n addColumn() {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n let myObj = <AjfLayoutWidget>widget;\n let tempObj: number[] = [];\n let num = myObj.columns.length + 1;\n let checkSum = 0;\n let objNum = 0;\n let value = 1;\n let tmpValue: any;\n\n if (num > 10) {\n throw new Error('exceed max columns');\n }\n\n for (let j = 0; j < num; j++) {\n if (myObj.columns[j] === -1) {\n objNum++;\n }\n }\n value = Number(this.roundTo(1 / (num - objNum), 2).toFixed(2));\n\n for (let i = 0; i < num; i++) {\n if (myObj.columns[i] === -1) {\n tempObj.push(-1);\n } else {\n tempObj.push(value);\n checkSum = Number(this.roundTo(checkSum + value, 2).toFixed(2));\n }\n }\n checkSum = Number(this.roundTo(checkSum, 2).toFixed(2));\n\n if (checkSum > 1) {\n tmpValue = parseFloat(this.roundTo(((checkSum - 1) % 1), 2).toFixed(2));\n tempObj[0] -= tmpValue;\n tempObj[0] = this.roundTo(tempObj[0], 2);\n } else if (checkSum < 1) {\n tempObj[0] += (1 - (checkSum % 1));\n tempObj[0] = Number(this.roundTo(tempObj[0], 2).toFixed(2));\n }\n\n myObj.columns = tempObj;\n\n // TODO: @trik what's value?!?\n const columnObj = createWidget({\n widgetType: 7,\n // value: myObj.columns[myObj.columns.length - 1],\n });\n\n myObj.content.push(columnObj);\n this._saveReportEvent.emit();\n return myObj;\n });\n }\n\n removeWidgetToColumn(column: AjfColumnWidget, index: number) {\n column.content.splice(index, 1);\n }\n\n /**\n * This method remove a widget on the current AjfReport.\n *\n * @param node\n * the position array:\n *\n * header -`>` headerWidgets\n * content -`>` contentWidgets\n * footer -`>` footerWidgets\n * column -`>` column of layout\n * layoutContent -`>` content of layout\n * obj -`>` obj of layout\n * customWidget -`>` custom widget\n *\n * @param idx the position array\n *\n * @memberOf AjfReportBuilderService\n */\n remove(node: string, idx: number) {\n switch (node) {\n case 'header':\n case 'content':\n case 'footer':\n this._updates[node].next((widgets: AjfWidgetsContainer): AjfWidgetsContainer => {\n if (widgets.widgets.length === 0) {\n throw new Error('you can not remove from empty array');\n }\n if (widgets.widgets[idx] == null) {\n throw new Error('invalid index');\n }\n widgets.widgets.splice(idx, 1);\n this.updateCurrentWidget(null);\n return widgets;\n });\n break;\n case 'layout':\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n const myObj = widget as AjfLayoutWidget;\n\n if (myObj.columns.length === 1) {\n (myObj.content[0] as AjfColumnWidget).content.length = 0;\n return myObj;\n }\n\n if (myObj.columns[idx] == null) {\n throw new Error('this content is undefined');\n } else {\n let spread = myObj.columns[idx] / (myObj.columns.length - 1);\n\n if (myObj.columns.length > 1) {\n myObj.columns.splice(idx, 1);\n myObj.content.splice(idx, 1);\n }\n\n for (let i = 0; i < myObj.columns.length; i++) {\n myObj.columns[i] += spread;\n }\n this.instantColumnValue(myObj.columns[0], 0);\n }\n return myObj;\n });\n break;\n case 'column':\n case 'layoutContent':\n case 'unfixedColumn':\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n let myObj = <AjfLayoutWidget>widget;\n\n if (node === 'column') {\n let clm = <AjfColumnWidget>widget;\n clm.content.splice(idx, 1);\n } else if (node === 'layoutContent') {\n if (myObj.columns.length === 0) {\n throw new Error('the column length is 0');\n }\n if (myObj.content.length === 0) {\n throw new Error('can not remove any widget from empty content');\n }\n if (myObj.columns[idx] != null && myObj.content[idx] == null) {\n throw new Error('this content is undefined');\n }\n } else if (node === 'unfixedColumn') {\n if (myObj.columns[idx] !== -1) {\n throw new Error('the column position value isnt -1');\n }\n this.unfixedColumn(idx);\n }\n // if (node !== 'obj') {\n // let spread = myObj.columns[idx] / (myObj.columns.length - 1);\n // myObj.content.splice(idx, 1);\n // if (myObj.columns.length > 1) {\n // myObj.columns.splice(idx, 1);\n // }\n // for (let i = 0; i < myObj.columns.length; i++) {\n // myObj.columns[i] += spread;\n // }\n // this.instantColumnValue(myObj.columns[0], 0);\n // }\n return myObj;\n });\n break;\n case 'customWidgets': {\n this._updates[node].next((widgets: AjfCustomWidget[]): AjfCustomWidget[] => {\n if (widgets.length === 0) {\n throw new Error('you can not remove from empty array');\n }\n if (widgets[idx] == null) {\n throw new Error('invalid index');\n }\n widgets.splice(idx, 1);\n return widgets;\n });\n } break;\n default:\n throw new Error('unknown node ' + node);\n }\n }\n\n /**\n * This method add a AjfWidget on the current AjfLayoutWidget.\n *\n * @param newWidget\n * @param idx\n *\n * @memberOf AjfReportBuilderService\n */\n addToContent(newWidget: AjfWidget, idx: number) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n let myObj = <AjfLayoutWidget>widget;\n\n if (myObj.content[idx] != null) {\n myObj.content.splice(idx, 1);\n }\n myObj.content.splice(idx, 0, newWidget);\n return myObj;\n });\n }\n\n addToColumn(event: any, toColumn: AjfColumnWidget, position?: number) {\n if (event.dragData && event.dragData.fromColumn != null) {\n let fromColumn: AjfColumnWidget = event.dragData.fromColumn;\n let widget: AjfWidget = event.dragData.widget;\n let fromIndex: number = event.dragData.fromIndex;\n\n fromColumn.content.splice(fromIndex, 1);\n toColumn.content.push(widget);\n\n } else if (event.dragData && event.dragData.arrayFrom) {\n this.remove(event.dragData.arrayFrom, event.dragData.fromIndex);\n toColumn.content.push(event.dragData.widget);\n } else if (event.dragData && event.dragData.json) {\n let obj = JSON.parse(event.dragData.json);\n let newWidget = deepCopy(obj);\n\n if (position != null) {\n toColumn.content.splice(position, 0, newWidget);\n } else {\n toColumn.content.push(newWidget);\n }\n } else {\n let obj = {'widgetType': AjfWidgetType[event.dragData]};\n let newWidget = deepCopy(obj);\n\n if (position != null) {\n toColumn.content.splice(position, 0, newWidget);\n } else {\n toColumn.content.push(newWidget);\n }\n }\n }\n changePositionOnColumn(event: any, toColumn: AjfColumnWidget, toIndex: number) {\n let fromColumn: AjfColumnWidget = event.dragData.fromColumn;\n let fromIndex: number = event.dragData.fromIndex;\n let fromWidget: AjfWidget = fromColumn.content[fromIndex];\n let toWidget: AjfWidget = fromColumn.content[toIndex];\n\n if (fromColumn == toColumn) {\n fromColumn.content[fromIndex] = toWidget;\n fromColumn.content[toIndex] = fromWidget;\n } else {\n fromColumn.content.splice(fromIndex, 1);\n toColumn.content.splice(toIndex, 0, fromWidget);\n }\n }\n\n /**\n * This method add the obj on the idx position.\n * Obj have a no specificate width and is not calculate as columns\n *\n * @param idx\n *\n * @memberOf AjfReportBuilderService\n */\n fixedColumn(idx: number) {\n this.instantColumnValue(-1, idx);\n }\n\n changeColumn(from: number, to: number, layoutWidget: AjfLayoutWidget) {\n if (to < 0 || to >= layoutWidget.content.length) {\n return;\n }\n if (from > layoutWidget.content.length - 1 && to > from) {\n return;\n }\n\n let fromColumn: AjfColumnWidget = <AjfColumnWidget>layoutWidget.content[from];\n let fromColumnValue: number = layoutWidget.columns[from];\n let toColumn: AjfColumnWidget = <AjfColumnWidget>layoutWidget.content[to];\n let toColumnValue: number = layoutWidget.columns[to];\n\n layoutWidget.content[from] = toColumn;\n layoutWidget.columns[from] = toColumnValue;\n layoutWidget.content[to] = fromColumn;\n layoutWidget.columns[to] = fromColumnValue;\n\n this.updateCurrentWidget(layoutWidget);\n }\n\n addCustomColor(color: string) {\n this._updates['color'].next((colors: string[]): string[] => {\n if (colors.indexOf(color) < 0) {\n colors.push(color);\n }\n return colors;\n });\n }\n\n private _addWidgetToContainer(\n subj: Subject<AjfWidgetsOperation>, widget: AjfWidget, position?: number) {\n subj.next((widgets: AjfWidgetsContainer): AjfWidgetsContainer => {\n if (position != null && position >= 0) {\n widgets.widgets.splice(position, 0, widget);\n } else {\n widgets.widgets.push(widget);\n }\n return widgets;\n });\n this.updateCurrentWidget(widget);\n this.setEmptyContent(false);\n }\n\n private _setCurrentWidgetProperty(propName: string, value: any) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n (widget as any)[propName] = value;\n return widget;\n });\n }\n\n private _addToCurrentWidgetArrayProperty(propName: string, value: any) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n if (widget == null) {\n return null;\n }\n const arr = (widget as any)[propName] as any[];\n arr.push(value);\n (widget as any)[propName] = arr;\n return widget;\n });\n }\n\n private _removeFromCurrentWidgetArrayProperty(propName: string, idx: number) {\n this._currentWidgetUpdate.next((widget: AjfWidget|null): AjfWidget|null => {\n ((widget as any)[propName] as any[]).splice(idx, 1);\n return widget;\n });\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfColumnWidget} from '@ajf/core/reports';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {Subscription, timer} from 'rxjs';\n\nimport {AjfReportBuilderService} from './report-builder-service';\n\n/**\n * this component manages the report text\n *\n * @export\n */\n@Component({\n selector: 'ajf-column',\n templateUrl: 'column.html',\n styleUrls: ['column.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderColumn implements OnDestroy, OnInit {\n /**\n * if true mouse event is on dragged status\n *\n * @memberOf AjfReportBuilderContent\n */\n showActions = false;\n\n layoutShow = false;\n\n // this boolean sign if is dragged a widget\n onDragged = false;\n\n\n /**\n * is the array of values\n *\n * @memberOf TableComponent\n */\n @Input() column: AjfColumnWidget;\n\n private _onDraggedSub: Subscription = Subscription.EMPTY;\n\n addToList(event: any, idx: number, toColumn: AjfColumnWidget) {\n this.onDragEndHandler();\n if (event.dragData.fromColumn) {\n this._service.changePositionOnColumn(event, toColumn, idx);\n } else {\n this._service.addToColumn(event, toColumn, idx);\n }\n }\n\n /**\n * sign the start of mouse drag with 200 ms of delay\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragStartHandler(): void {\n let s = timer(200).subscribe(() => {\n s.unsubscribe();\n this._service.dragStarted();\n });\n }\n\n /**\n * sign the end of mouse drag\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragEndHandler(): void {\n this._service.dragEnded();\n }\n constructor(private _service: AjfReportBuilderService) {}\n\n ngOnInit() {\n // this.widget = changes.widget.currentValue;\n\n this._onDraggedSub = this._service.onDragged.subscribe(x => {\n this.onDragged = x;\n });\n }\n\n ngOnDestroy(): void {\n this._onDraggedSub.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfWidgetType} from '@ajf/core/reports';\n\nexport function ajfReportBuilderWidgetToString(widgetType: string): string {\n return `reportbuilder-${widgetType.toLowerCase()}`;\n}\n\nexport function ajfWidgetTypeStringToIcon(widgetType: string): string {\n return `widget-${widgetType.toLowerCase()}`;\n}\n\nexport function ajfWidgetTypeToIcon(widgetType: AjfWidgetType): string {\n return ajfWidgetTypeStringToIcon(AjfWidgetType[widgetType]);\n}\n\nexport function ajfWidgetTypeStringToLabel(widgetType: string): string {\n return `widgetType.${widgetType}`;\n}\n\nexport function ajfWidgetTypeToLabel(type: AjfWidgetType): string {\n return ajfWidgetTypeStringToLabel(AjfWidgetType[type]);\n}\n\nexport function widgetReportBuilderIconName(type: AjfWidgetType): string {\n return `reportbuilder-${AjfWidgetType[type].toLowerCase()}`;\n}\n\nexport function sanitizeConditionString(str: string): string {\n str = str.trim();\n while (str.indexOf(' ') > 0) {\n str = str.replace(' ', ' ');\n }\n return str;\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfCondition, validateExpression} from '@ajf/core/models';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {Subscription, timer} from 'rxjs';\n\nimport {AjfFormVariables} from './models';\nimport {AjfReportBuilderService} from './report-builder-service';\nimport {sanitizeConditionString} from './utils';\n\n\n@Component({\n selector: 'ajf-report-builder-condition-editor',\n templateUrl: 'condition-editor.html',\n styleUrls: ['condition-editor.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n/**\n * This class will define an ajf builder builder condition editor\n * @implements : OnDestroy\n * @implements : AfterViewInit\n */\nexport class AjfReportBuilderConditionEditor implements OnInit, OnDestroy {\n @Input() visibility: AjfCondition;\n\n formsVariables: AjfFormVariables[];\n isValid = false;\n names: string[] = [];\n currentId: number;\n\n // conditionText is a string\n conditionText = 'true';\n\n a: any;\n b: any;\n\n\n @ViewChild('conditionTextArea', {static: false}) conditionTextArea: any;\n\n // operators is an array of any type that contains all allow operators\n operators: string[] = [\n '( )', '\\' \\'', '<', '<=', '==', '>=', '>', '!=', '!', '&&', '||', '+', '-', '*', '/', '%',\n 'true', 'false'\n ];\n\n private _conditionNamesSub: Subscription = Subscription.EMPTY;\n\n /**\n * this constructor will init current condition by ajfBuilderservice\n * and init condition and availableFieldNames subscriptions\n */\n constructor(private _service: AjfReportBuilderService) {}\n extractNames(formsVariables: AjfFormVariables[]) {\n this.names.length = 0;\n for (let i = 0; i < formsVariables.length; i++) {\n this.names = this.names.concat(formsVariables[i].names);\n }\n }\n\n setCurrent(id: number, index: number) {\n this.currentId = id;\n this.appendText(this.formsVariables[id].names[index]);\n this.checkValidation();\n }\n\n /**\n * this method will return success if the current condtion is valid\n * @return boolean\n */\n validateCondition(): boolean {\n return validateExpression(this.conditionText, this.names);\n }\n\n // TODO complete the comment\n /**\n * this method will append text to json\n * @param text : string -\n * @param goBackNum : number -\n */\n appendText(text: string, _goBackNum?: number): void {\n if (text == null || this.conditionTextArea == null) {\n return;\n }\n\n let el = this.conditionTextArea.nativeElement;\n let sStart: number = Math.min(el.selectionStart, el.selectionEnd);\n let sEnd: number = Math.max(el.selectionStart, el.selectionEnd);\n let startingString: string = this.conditionText.substr(0, sStart);\n let endingString: string = this.conditionText.substr(sEnd);\n let initialLenght: number = startingString.length;\n let newStr = '';\n\n startingString = sanitizeConditionString(startingString);\n endingString = sanitizeConditionString(endingString);\n sStart +=\n startingString.length - initialLenght + text.length + (startingString.length > 0 ? 2 : 1);\n newStr = startingString.length > 0 ? `${startingString} ` : '';\n this.conditionText = `${newStr}${text} ${endingString}`;\n\n const s = timer(0).subscribe(() => {\n if (s && !s.closed) {\n s.unsubscribe();\n }\n if (el.createTextRange) {\n let range = el.createTextRange();\n range.move('character', sStart);\n range.select();\n } else {\n if (el.selectionStart) {\n el.focus();\n el.setSelectionRange(sStart, sStart);\n } else {\n el.focus();\n }\n }\n });\n }\n\n checkValidation() {\n this.isValid = this.validateCondition();\n if (this.isValid) {\n this.saveCondition();\n }\n }\n\n /**\n * this method will save current condition\n */\n saveCondition(): void {\n this._service.saveCondition(this.conditionText);\n }\n\n ngOnInit(): void {\n this.conditionText = this.visibility.condition;\n this.isValid = true;\n\n if (this.conditionText == 'true') {\n this.conditionText = '';\n }\n\n this._conditionNamesSub = this._service.conditionNames.subscribe((x) => {\n this.formsVariables = x;\n if (x != null) {\n this.extractNames(this.formsVariables);\n }\n });\n }\n /**\n * this method will destroy a conditionSubscriptions\n */\n ngOnDestroy(): void {\n this._conditionNamesSub.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfStyles, AjfWidget, AjfWidgetType} from '@ajf/core/reports';\nimport {deepCopy} from '@ajf/core/utils';\nimport {CdkDrag, CdkDragDrop} from '@angular/cdk/drag-drop';\nimport {\n AfterViewChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {Observable, Subscription, timer} from 'rxjs';\n\nimport {AjfReportBuilderDragData} from './report-builder-drag-data';\nimport {AjfReportBuilderService} from './report-builder-service';\n\n/**\n * manage the content page\n *\n * @export\n */\n@Component({\n selector: 'ajf-report-builder-content',\n templateUrl: 'content.html',\n styleUrls: ['content.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'(mouseover)': 'onMouseOver()', '(mouseleave)': 'onMouseLeave()'}\n})\nexport class AjfReportBuilderContent implements OnInit, AfterViewChecked, OnDestroy {\n onMouseOver(): void {\n this.showActions = true;\n this._service.overStarted();\n }\n\n onMouseLeave(): void {\n this.showActions = false;\n this._service.overEnded();\n }\n\n canDropPredicate(dropZones: string[]): (item: CdkDrag<AjfReportBuilderDragData>) => boolean {\n return item => {\n for (let i = 0; i < item.data.dropZones.length; i++) {\n if (dropZones.indexOf(item.data.dropZones[i]) > -1) {\n return true;\n }\n }\n return false;\n };\n }\n\n reportStyles: Observable<AjfStyles>;\n\n // this boolean sign if is dragged a widget\n onDragged = false;\n\n\n /**\n * observe the status of the fixed zoom\n *\n * @memberOf AjfReportBuilderContent\n */\n fixedZoom = false;\n\n // this boolean sign if widget is in drag enter status\n onDragEnter: any = {};\n\n\n show = false;\n\n\n // this array contains all widget locate in header zone\n headerWidgets: AjfWidget[] = [];\n /**\n * observe the css style of header\n *\n * @memberOf AjfReportBuilderContent\n */\n headerStyles: Observable<AjfStyles>;\n\n // this array contains all widget locate in content zone\n contentWidgets: AjfWidget[] = [];\n\n /**\n * observe the css style of content\n *\n * @memberOf AjfReportBuilderContent\n */\n contentStyles: Observable<AjfStyles>;\n\n // this array contains all widget locate in footer zone\n footerWidgets: AjfWidget[] = [];\n\n\n onOver: boolean = false;\n /**\n * observe the css style of footer\n *\n * @memberOf AjfReportBuilderContent\n */\n footerStyles: Observable<AjfStyles>;\n\n\n // this is the current widget\n currentWidget: AjfWidget|null = null;\n\n\n /**\n * if true mouse event is on dragged status\n *\n * @memberOf AjfReportBuilderContent\n */\n showActions = false;\n\n private _onDraggedSub: Subscription = Subscription.EMPTY;\n private _fixedZoomSub: Subscription = Subscription.EMPTY;\n private _onDragEnterSub: Subscription = Subscription.EMPTY;\n private _headerWidgetsSub: Subscription = Subscription.EMPTY;\n private _contentWidgetsSub: Subscription = Subscription.EMPTY;\n private _footerWidgetsSub: Subscription = Subscription.EMPTY;\n private _onOverSub: Subscription = Subscription.EMPTY;\n private _currentWidgetSub: Subscription = Subscription.EMPTY;\n\n constructor(private _service: AjfReportBuilderService, private _cdRef: ChangeDetectorRef) {\n this.headerStyles = this._service.headerStyles;\n this.contentStyles = this._service.contentStyles;\n this.footerStyles = this._service.footerStyles;\n }\n\n isLayout(widget: AjfWidget): boolean {\n return widget.widgetType === AjfWidgetType.Layout;\n }\n\n /**\n * sign the start of mouse drag with 200 ms of delay\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragStartHandler(): void {\n let s = timer(200).subscribe(() => {\n if (s != null) {\n s.unsubscribe();\n }\n this._service.dragStarted();\n });\n }\n\n /**\n * sign the end of mouse drag\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragEndHandler(): void {\n this._service.dragEnded();\n }\n\n /**\n * sign the enter of mouse drag\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragEnterHandler(array: string, index: number|undefined): void {\n if (index == null) {\n return;\n }\n this._service.dragEnter(array, index);\n }\n\n /**\n * sign the leave of mouse drag\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragLeaveHandler(): void {\n this._service.dragLeave();\n }\n\n\n /**\n * return true if array and index is === with array and index of onDragEnter\n *\n * @param array\n * @param index\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragEnterCheck(array: string, index: number): boolean {\n if ((array === this.onDragEnter.array) &&\n ((index === this.onDragEnter.index) || (index === -1))) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * remove widget element from type array in idx position\n *\n * @param type can be header content or footer\n * @param idx\n *\n * @memberOf AjfReportBuilderContent\n */\n remove(type: string, idx: number) {\n this._service.remove(type, idx);\n }\n\n /**\n * add widget element into type array in idx position\n *\n * @param type\n * @param event\n *\n * @memberOf AjfReportBuilderContent\n */\n addToList(arrayTo: string, event: CdkDragDrop<AjfReportBuilderDragData>, to?: number) {\n this.onDragEndHandler();\n this._service.setOrigin(arrayTo);\n const itemData = event.item.data as AjfReportBuilderDragData;\n if (itemData.fromColumn != null) {\n this._service.removeWidgetToColumn(itemData.fromColumn, itemData.fromIndex!);\n this.currentWidget = itemData.widget!;\n } else if (itemData.widget != null) {\n this.remove(itemData.arrayFrom!, itemData.from!);\n this.currentWidget = itemData.widget;\n } else if (itemData.json != null && itemData.json !== '') {\n this.currentWidget = deepCopy(itemData.json);\n } else {\n let obj = {'widgetType': (AjfWidgetType as any)[itemData.widgetType!]};\n this.currentWidget = deepCopy(obj);\n }\n this.onDragEndHandler();\n if (this.currentWidget != null) {\n switch (arrayTo) {\n case 'header':\n this._service.addHeaderWidget(this.currentWidget, to);\n break;\n case 'content':\n this._service.addContentWidget(this.currentWidget, to);\n break;\n case 'footer':\n this._service.addfooterWidget(this.currentWidget, to);\n break;\n }\n }\n this.onDragLeaveHandler();\n }\n\n ngOnInit(): void {\n this._headerWidgetsSub = this._service.headerWidgets.subscribe(x => {\n this.headerWidgets = x.widgets;\n });\n this._contentWidgetsSub = this._service.contentWidgets.subscribe(x => {\n this.contentWidgets = x.widgets;\n });\n this._footerWidgetsSub = this._service.footerWidgets.subscribe(x => {\n this.footerWidgets = x.widgets;\n });\n this._onDraggedSub = this._service.onDragged.subscribe(x => {\n this.onDragged = x;\n });\n this._fixedZoomSub = this._service.fixedZoom.subscribe(bool => {\n this.fixedZoom = bool;\n });\n this._onDragEnterSub = this._service.onDragEnter.subscribe(x => {\n this.onDragEnter = x;\n });\n this._onOverSub = this._service.onOver.subscribe(x => {\n this.onOver = x;\n });\n }\n\n ngAfterViewChecked() {\n this._cdRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n [this._headerWidgetsSub, this._contentWidgetsSub, this._footerWidgetsSub,\n this._currentWidgetSub, this._onDraggedSub, this._fixedZoomSub, this._onOverSub,\n this._onDragEnterSub]\n .forEach(s => {\n s.unsubscribe();\n });\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\n\nimport {AjfReportBuilderService} from './report-builder-service';\n\n@Component({\n selector: 'custom-widget-dialog',\n templateUrl: 'custom-widget-dialog.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderCustomWidgetDialog {\n @Input() label: string;\n @Input() position: number;\n\n constructor(\n private _service: AjfReportBuilderService,\n private _dialogRef: MatDialogRef<AjfReportBuilderCustomWidgetDialog>) {}\n\n changeLabel() {\n this._service.changeLabelCustomWidget(this.label, this.position);\n this._dialogRef.close();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\n\nimport {AjfReportBuilderService} from './report-builder-service';\nimport {ajfWidgetTypeStringToIcon, ajfWidgetTypeStringToLabel} from './utils';\n\n@Component({\n selector: 'ajf-report-builder-custom-widget-toolbar-button',\n templateUrl: 'custom-widget-toolbar-button.html',\n styleUrls: ['custom-widget-toolbar-button.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n/**\n * This class will define an ajf builder field toolbar button\n * @implements : OnInit\n */\nexport class AjfReportBuilderCustomWidgetToolbarButton implements OnInit {\n @Input() widgetType: string;\n @Input() position: number;\n widgetIcon: string;\n widgetLabel: string;\n customWidgets: any[] = [];\n\n // {...t, dropZones: ['header','content','footer','column','widget']}\n\n /**\n * this constructor will init icon registry\n */\n constructor(private _service: AjfReportBuilderService) {}\n\n /**\n * this method call a service method for remove custom widget\n *\n * @memberOf AjfReportBuilderCustomWidgetToolbarButton\n */\n remove() {\n this._service.remove('customWidgets', this.position);\n }\n /**\n * this method will init fieldIcon and fieldLabel\n */\n ngOnInit(): void {\n this.widgetIcon = ajfWidgetTypeStringToIcon(this.widgetType);\n this.widgetLabel = ajfWidgetTypeStringToLabel(this.widgetType);\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {MatDialog, MatDialogRef} from '@angular/material/dialog';\n\nimport {Subscription, timer} from 'rxjs';\n\nimport {AjfReportBuilderCustomWidgetDialog} from './custom-widget-dialog';\nimport {AjfReportBuilderService} from './report-builder-service';\n\nexport interface AjfStyles {\n [style: string]: any;\n}\n\nexport interface CustomWidget {\n json: string;\n type: string;\n}\n\nexport interface CustomWidgets {\n widgets: CustomWidget[];\n}\n\n\n@Component({\n selector: 'ajf-report-builder-custom-widgets-toolbar',\n styleUrls: ['custom-widgets-toolbar.css'],\n templateUrl: 'custom-widgets-toolbar.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n/**\n * This class will define an ajf builder toolbar\n * @implements : OnDestroy\n */\nexport class AjfReportBuilderCustomWidgetsToolbar implements OnDestroy, OnInit {\n customWidgets: CustomWidget[] = [];\n\n private _customWidgetsSub: Subscription = Subscription.EMPTY;\n\n private _dialogRef: MatDialogRef<AjfReportBuilderCustomWidgetDialog>;\n\n private _threeColumnsLayout: string = '{\"widgetType\":0,' +\n '\"content\":[],\"styles\":{},\"visibility\":{\"condition\":\"true\"},\"columns\":[0.34,0.33,0.33],' +\n '\"content\":' +\n '[{\"widgetType\":7,\"content\":[],\"styles\":{},\"visibility\":{\"condition\":\"true\"},\"content\":[]},' +\n '{\"widgetType\":7,\"content\":[],\"styles\":{},\"visibility\":{\"condition\":\"true\"},\"content\":[]},' +\n '{\"widgetType\":7,\"content\":[],\"styles\":{},\"visibility\":{\"condition\":\"true\"},\"content\":[]}]}';\n private _fourColumnsLayout: string =\n '{\"widgetType\":0,\"content\":[],\"styles\":{},\"visibility\":{\"condition\":\"true\"},' +\n '\"columns\":[0.25,0.25,0.25,0.25],\"content\":' +\n '[{\"widgetType\":7,\"content\":[],\"styles\":{},\"visibility\":{\"condition\":\"true\"},\"content\":[]},' +\n '{\"widgetType\":7,\"content\":[],\"styles\":{},\"visibility\":{\"condition\":\"true\"},\"content\":[]},' +\n '{\"widgetType\":7,\"content\":[],\"styles\":{},\"visibility\":{\"condition\":\"true\"},\"content\":[]},' +\n '{\"widgetType\":7,\"content\":[],\"styles\":{},\"visibility\":{\"condition\":\"true\"},\"content\":[]}]}';\n\n constructor(private _service: AjfReportBuilderService, public dialog: MatDialog) {}\n\n openDialog(idx: number) {\n this._dialogRef = this.dialog.open(AjfReportBuilderCustomWidgetDialog);\n this._dialogRef.componentInstance.label = this.customWidgets[idx].type;\n this._dialogRef.componentInstance.position = idx;\n }\n\n\n /**\n * sign the start of mouse drag with 200 ms of delay\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragStartHandler(): void {\n let s = timer(200).subscribe(() => {\n if (s != null) {\n s.unsubscribe();\n }\n this._service.dragStarted();\n });\n }\n\n /**\n * sign the end of mouse drag\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragEndHandler(): void {\n this._service.dragEnded();\n }\n\n /**\n * sign the enter of mouse drag\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragEnterHandler(array: string, index: number): void {\n this._service.dragEnter(array, index);\n }\n\n /**\n * sign the leave of mouse drag\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragLeaveHandler(): void {\n this._service.dragLeave();\n }\n ngOnInit(): void {\n this._customWidgetsSub = this._service.customWidgets.subscribe(x => {\n this.customWidgets = x;\n if (this.customWidgets.length > 0 &&\n this.customWidgets[this.customWidgets.length - 1].type == '') {\n this.openDialog(this.customWidgets.length - 1);\n }\n });\n this._service.addCustomWidgets({\n json: this._threeColumnsLayout,\n type: 'LayoutWidgetWith3Columns',\n });\n this._service.addCustomWidgets(\n {json: this._fourColumnsLayout, type: 'LayoutWidgetWith4Columns'});\n }\n\n ngOnDestroy(): void {\n this._customWidgetsSub.unsubscribe();\n this._service.resetCustomWidgets();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfFieldType, AjfValidationService} from '@ajf/core/forms';\nimport {AjfImageType} from '@ajf/core/image';\nimport {AjfExpressionUtils, createFormula, validateExpression} from '@ajf/core/models';\nimport {\n AjfAggregationType,\n AjfDataset,\n AjfDataWidget,\n AjfImageWidget,\n AjfWidget\n} from '@ajf/core/reports';\nimport {sizedEnumToStringArray} from '@ajf/core/utils';\nimport {AjfMonacoEditor} from '@ajf/material/monaco-editor';\nimport {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\nimport {Subscription} from 'rxjs';\n\nimport {AjfFormVariables} from './models';\nimport {AjfReportBuilderService} from './report-builder-service';\n\nexport const enum AjfDataType {\n MainData,\n Dataset,\n RelatedData,\n LENGTH\n}\ndeclare var monaco: any;\n\n@Component({\n selector: 'forms-analyzer-dialog',\n templateUrl: 'forms-analyzer-dialog.html',\n styleUrls: ['forms-analyzer-dialog.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderFormsAnalyzerDialog implements OnInit, AfterViewChecked, OnDestroy {\n aggregationTypes: string[] = sizedEnumToStringArray(AjfAggregationType);\n\n // operators is an array of any type that contains all allow operators\n operators: string[] = [\n 'true', 'false', '( )', '\\' \\'', '<', '<=', '>=', '>', '!=', '!', '&&', '||', '+', '-', '*',\n '/', '%', '=='\n ];\n\n formulaText: string = '';\n formulaDate: string = '';\n safeFormulaText: string = '';\n label: string = '';\n condition: string = '';\n aggregationType: AjfAggregationType = AjfAggregationType.Sum;\n dataset: AjfDataset;\n currentId: number = 0;\n currentIndex: number = 0;\n labels: string[] = [];\n currentWidget: AjfWidget|null = null;\n formsVariables: AjfFormVariables[];\n formsVariablesName: string[] = [];\n formsVariablesType: string[] = [];\n isValid: boolean;\n\n @Input() formula: string;\n\n @Input() isFormula: boolean;\n\n @Input() labelText: string;\n\n @Input() aggregation: number;\n\n @Input() init: boolean;\n\n @Input() level: number;\n\n @Input() index: number;\n\n @Input() mainIndex: number;\n\n @Input() reference: any;\n\n @ViewChild(AjfMonacoEditor, {static: false}) monacoEditor: AjfMonacoEditor;\n\n private _formAnalyzerSub: Subscription = Subscription.EMPTY;\n private _currentWidgetSub: Subscription = Subscription.EMPTY;\n private _first: boolean = true;\n\n constructor(\n private _service: AjfReportBuilderService,\n private _dialogRef: MatDialogRef<AjfReportBuilderFormsAnalyzerDialog>,\n _: AjfValidationService) {\n if (this.init == false) {\n this.formulaText = '';\n this.aggregationType = AjfAggregationType.Sum;\n }\n this._currentWidgetSub = this._service.currentWidget.subscribe(x => {\n if (x != null) {\n this.currentWidget = <AjfDataWidget>x;\n\n if (this.currentWidget.widgetType == 2) {\n let myObj: AjfImageWidget = <AjfImageWidget>this.currentWidget;\n if (myObj.imageType == AjfImageType.Flag) {\n this.formula = (myObj.flag) ? myObj.flag.formula : '';\n } else {\n this.formula = (myObj.icon) ? myObj.icon.formula : '';\n }\n }\n }\n });\n\n this._formAnalyzerSub = this._service.formsVariables.subscribe((x) => {\n if (x != null) {\n this.formsVariables = x;\n }\n });\n }\n\n onEditorInit(): void {\n monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions(\n {noSemanticValidation: false, noSyntaxValidation: false});\n\n monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n target: monaco.languages.typescript.ScriptTarget.ES2015,\n allowNonTsExtensions: true,\n allowJs: true,\n module: monaco.languages.typescript.ModuleKind.None\n });\n\n try {\n monaco.languages.typescript.javascriptDefaults.addExtraLib(\n '', 'condition-editor-variables.d.ts');\n } catch (e) {\n monaco.languages.typescript.javascriptDefaults._extraLibs['condition-editor-variables.d.ts'] =\n '';\n }\n try {\n monaco.languages.typescript.javascriptDefaults.addExtraLib(\n '', 'condition-editor-functions.d.ts');\n } catch (e) {\n monaco.languages.typescript.javascriptDefaults._extraLibs['condition-editor-functions.d.ts'] =\n '';\n }\n\n this._initFormsVariablesNames();\n this._updateVariables();\n this._updateFunctions();\n }\n\n\n private _initFormsVariablesNames(): void {\n this.formsVariables.forEach((formVar) => {\n formVar.names.forEach((name) => {\n this.formsVariablesName.push(name);\n });\n formVar.types.forEach((type) => {\n this.formsVariablesType.push(this._fieldVarType(type) || '');\n });\n });\n }\n\n\n private _updateVariables(): void {\n if (this.formsVariables == null) {\n return;\n }\n try {\n let value: string = '';\n\n for (let i = 0; i < this.formsVariablesName.length; i++) {\n value += `declare const ${this.formsVariablesName[i]}: ${this.formsVariablesType[i]};`;\n }\n\n value += `\\n`;\n monaco.languages.typescript.javascriptDefaults._extraLibs['condition-editor-variables.d.ts'] =\n value;\n } catch (e) {\n }\n }\n\n private _updateFunctions(): void {\n try {\n monaco.languages.typescript.javascriptDefaults._extraLibs['condition-editor-functions.d.ts'] =\n AjfExpressionUtils.UTIL_FUNCTIONS;\n } catch (e) {\n }\n }\n\n private _fieldVarType(fieldType: AjfFieldType): string|null {\n switch (fieldType) {\n case AjfFieldType.Boolean:\n return 'boolean';\n case AjfFieldType.Date:\n case AjfFieldType.DateInput:\n case AjfFieldType.Time:\n return 'Date';\n case AjfFieldType.Empty:\n return 'void';\n case AjfFieldType.Formula:\n return 'number';\n case AjfFieldType.MultipleChoice:\n case AjfFieldType.SingleChoice:\n return 'any';\n case AjfFieldType.Number:\n return 'number';\n case AjfFieldType.Table:\n return 'Array';\n case AjfFieldType.String:\n case AjfFieldType.Text:\n return 'string';\n }\n return null;\n }\n\n setCurrent(id: number, label: string, index: number) {\n if (!this.init) {\n this.label = label;\n this.init = true;\n }\n this.insertVariable(this.formsVariables[id].names[index] || '');\n }\n\n setCurrentId(id: number) {\n this.currentId = id;\n this.labels = this.formsVariables[id].labels;\n this._updateVariables();\n }\n\n setAggregationType(type: AjfAggregationType) {\n this.aggregationType = type;\n }\n\n checkValidation() {\n if (this.validateFormula()) {\n this.safeFormulaText = this.formulaText;\n this.isValid = true;\n } else {\n this.isValid = false;\n }\n if (this.formulaText == '') {\n this.isValid = false;\n }\n }\n\n validateFormula(): boolean {\n if (this.formulaText == '') {\n this.init = false;\n }\n if (this.formsVariables == null) {\n return false;\n } else {\n return validateExpression(this.formulaText, this.formsVariablesName);\n }\n }\n\n saveDataset() {\n if (this.currentWidget != null) {\n switch (this.currentWidget.widgetType) {\n case 2:\n this.saveImageFormula();\n break;\n case 3:\n this.saveFormulaHtml();\n break;\n case 4:\n this.saveChartFormula();\n break;\n case 5:\n this.saveTableFormula();\n break;\n }\n }\n this.close();\n }\n\n saveImageFormula() {\n this._service.saveImageFormula(createFormula({formula: this.formulaText}));\n }\n\n saveFormulaHtml() {\n this._service.saveFormulaToHtml(this.formulaText, this.reference);\n }\n\n saveChartFormula(): void {\n this._service.saveChartFormula(\n this.label, this.level, this.mainIndex, this.index, this.formulaText, this.aggregationType);\n }\n\n saveTableFormula(): void {\n this._service.saveTableFormula(\n this.label, this.aggregationType, this.formulaText, this.mainIndex, this.index);\n }\n\n insertVariable(variable: string): void {\n if (this.monacoEditor != null && this.monacoEditor.editor != null) {\n const editor = this.monacoEditor.editor;\n let value: string[] = editor.getValue().split('\\n');\n let position: {column: number, lineNumber: number} = editor.getPosition();\n const ln = position.lineNumber - 1;\n let line = value[ln];\n let col = position.column - 1;\n line = line.substring(0, col) + variable + line.substring(col);\n value[ln] = line;\n position.column += variable.length;\n this.monacoEditor.value = value.join('\\n');\n editor.setPosition(position);\n editor.focus();\n this.formulaText = editor.getValue();\n this.checkValidation();\n }\n }\n\n setVariable(variable: string): void {\n if (this.monacoEditor != null && this.monacoEditor.editor != null) {\n const editor = this.monacoEditor.editor;\n editor.setValue(variable);\n }\n }\n\n reset() {\n this.formulaText = '';\n this.aggregationType = AjfAggregationType.None;\n }\n\n close() {\n this.reset();\n this._dialogRef.close();\n }\n\n ngOnInit() {\n this.formulaText = this.formula;\n this.aggregationType = this.aggregation;\n this.label = this.labelText;\n\n if (this.formulaText == '' || this.formulaText == null) {\n this.isValid = false;\n } else {\n this.isValid = true;\n }\n }\n\n ngAfterViewChecked() {\n if (this._first && this.monacoEditor != null && this.monacoEditor.editor != null) {\n this.insertVariable(this.formulaText || '');\n this._first = false;\n }\n }\n\n ngOnDestroy(): void {\n this._formAnalyzerSub.unsubscribe();\n this._currentWidgetSub.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfForm} from '@ajf/core/forms';\nimport {\n AjfAggregationType,\n AjfChartType,\n AjfChartWidget,\n AjfDataset,\n AjfDataWidget,\n AjfWidget,\n AjfWidgetType\n} from '@ajf/core/reports';\nimport {ChangeDetectionStrategy, Component, OnDestroy, ViewEncapsulation} from '@angular/core';\nimport {ThemePalette} from '@angular/material/core';\nimport {MatDialog, MatDialogRef} from '@angular/material/dialog';\nimport {Subscription} from 'rxjs';\n\nimport {AjfReportBuilderFormsAnalyzerDialog} from './forms-analyzer-dialog';\nimport {AjfFormVariables} from './models';\nimport {AjfReportBuilderService} from './report-builder-service';\n\n/**\n * this component provides the support for connect the form fields with the report\n *\n * @export\n */\n@Component({\n selector: 'ajf-report-builder-forms-analyzer',\n templateUrl: 'forms-analyzer.html',\n styleUrls: ['forms-analyzer.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderFormsAnalyzer implements OnDestroy {\n currentWidget: AjfWidget|null = null;\n\n forms: AjfForm[] = [];\n\n formsVariables: AjfFormVariables[];\n choicesOrigins: any = {};\n\n dialogRef: MatDialogRef<AjfReportBuilderFormsAnalyzerDialog>;\n\n currentMainDataIndex: number = -1;\n private _dataset: AjfDataset[][] = [];\n private _currentWidgetSub: Subscription = Subscription.EMPTY;\n private _formAnalyzerSub: Subscription = Subscription.EMPTY;\n\n constructor(private _service: AjfReportBuilderService, public dialog: MatDialog) {\n this._currentWidgetSub = this._service.currentWidget.subscribe(x => {\n if (x != null) {\n this.currentWidget = x;\n // this._dataset = myObj.dataset;\n } else {\n this.currentWidget = null;\n }\n });\n\n\n this._formAnalyzerSub = this._service.formsVariables.subscribe((x) => {\n if (x != null) {\n this.formsVariables = x;\n }\n });\n }\n\n setCurrentIndex(index: number) {\n this.currentMainDataIndex = index;\n }\n\n isSelected(index: number): ThemePalette {\n if (index === this.currentMainDataIndex) {\n return 'primary';\n } else {\n return undefined;\n }\n }\n\n /**\n * get the X components label of the chart.\n * they are contained in the first row of dataset\n *\n *\n * @memberof AjfReportBuilderFormsAnalyzer\n */\n getMainData(): string[] {\n if (this._dataset[0] != null) {\n let mainData: string[] = [];\n\n for (let i = 0; i < this._dataset[0].length; i++) {\n mainData.push(this._dataset[0][i].label || '');\n }\n return mainData;\n } else {\n return [];\n }\n }\n\n /**\n * get the Y components label of the chart.\n * they are contained in the first column of dataset\n *\n *\n * @memberof AjfReportBuilderFormsAnalyzer\n */\n getDataset(): string[] {\n let dataset: string[] = [];\n if (this._dataset[0] != null) {\n for (let i = 1; i < this._dataset.length; i++) {\n dataset.push(this._dataset[i][0].label || '');\n }\n return dataset;\n } else {\n return [];\n }\n }\n\n /**\n * get the related data label of the chart.\n * they are contained in the row of the Y component\n *\n *\n * @memberof AjfReportBuilderFormsAnalyzer\n */\n getRelatedData(): string[] {\n if (this._dataset[this.currentMainDataIndex + 1] != null) {\n let relatedData: string[] = [];\n\n for (let i = 1; i < this._dataset[this.currentMainDataIndex + 1].length; i++) {\n relatedData.push(this._dataset[this.currentMainDataIndex + 1][i].label || '');\n }\n return relatedData;\n } else {\n return [];\n }\n }\n\n getTableHeader(): string[] {\n let mainData: string[] = [];\n if (this._dataset != null) {\n for (let i = 0; i < this._dataset.length; i++) {\n if (this._dataset[i][0] != null) {\n mainData.push(this._dataset[i][0].label || '');\n }\n }\n }\n return mainData;\n }\n\n getTableData(): string[] {\n if (this._dataset[this.currentMainDataIndex] != null) {\n let tableData: string[] = [];\n\n for (let i = 1; i < this._dataset[this.currentMainDataIndex].length; i++) {\n if (this._dataset[this.currentMainDataIndex][i] != null) {\n tableData.push(this._dataset[this.currentMainDataIndex][i].label || '');\n }\n }\n return tableData;\n } else {\n return [];\n }\n }\n\n needMainData(): boolean {\n let myObj = <AjfChartWidget>this.currentWidget;\n if (myObj.chartType === AjfChartType.Scatter || myObj.chartType === AjfChartType.Bubble) {\n return false;\n } else {\n return true;\n }\n }\n\n removeMainData(index: number) {\n this._service.removeMainData(index);\n }\n\n removeDataset(index: number) {\n this.currentMainDataIndex = index;\n this._service.removeRelatedData(this.currentMainDataIndex, -1);\n }\n removeTableMainData(index: number) {\n this._service.removeTableMainData(index);\n }\n\n removeRelatedData(index: number) {\n this._service.removeRelatedData(this.currentMainDataIndex, index);\n }\n\n removeData(mainIndex: number, index: number) {\n this._service.removeData(mainIndex, index);\n }\n\n /**\n *\n *\n *\n * @param index\n * @param editMode\n *\n * @memberof AjfReportBuilderFormsAnalyzer\n */\n openDialog(level: number, mainIndex: number, index: number, editMode: boolean) {\n this.dialogRef = this.dialog.open(AjfReportBuilderFormsAnalyzerDialog);\n\n if (editMode) {\n if (level === 1 && index === -1) {\n index = 0;\n }\n if (level === 1) {\n if (this.currentWidget != null && this.currentWidget.widgetType == AjfWidgetType.Chart) {\n mainIndex++;\n }\n index++;\n }\n\n this.dialogRef.componentInstance.labelText =\n this._dataset[mainIndex] && this._dataset[mainIndex][index].label || '';\n /* this.dialogRef.componentInstance.formula =\n this._dataset[mainIndex] &&\n this._dataset[mainIndex][index].formula.formula || ''; */\n this.dialogRef.componentInstance.aggregation =\n this._dataset[mainIndex] && this._dataset[mainIndex][index].aggregation.aggregation ||\n AjfAggregationType.None;\n } else {\n this.dialogRef.componentInstance.labelText = '';\n this.dialogRef.componentInstance.formula = '';\n this.dialogRef.componentInstance.aggregation = 0;\n }\n\n // this.dialogRef.componentInstance.formsVariables = this.formsVariables;\n this.dialogRef.componentInstance.currentWidget = <AjfDataWidget>this.currentWidget;\n this.dialogRef.componentInstance.level = level;\n this.dialogRef.componentInstance.mainIndex = mainIndex;\n this.dialogRef.componentInstance.index = index;\n this.dialogRef.componentInstance.init = false;\n }\n\n openDialogAddMainData() {\n this.openDialog(0, -1, -1, false);\n }\n\n openDialogChartEditMainData() {\n this.openDialog(0, 0, this.currentMainDataIndex, true);\n }\n\n openDialogTableEditMainData() {\n this.openDialog(0, this.currentMainDataIndex, 0, true);\n }\n\n openDialogChartAddDataset() {\n this.openDialog(1, -1, -1, false);\n }\n openDialogTableAddDataset() {\n this.openDialog(1, this.currentMainDataIndex, -1, false);\n }\n openDialogChartAddDataOfDataset() {\n this.openDialog(1, this.currentMainDataIndex, -1, false);\n }\n openDialogChartEditDataset() {\n this.openDialog(1, this.currentMainDataIndex, -1, true);\n }\n openDialogTableEditDataset(index: number) {\n this.openDialog(1, this.currentMainDataIndex, index, true);\n }\n openDialogChartEditDataOfDataset(index: number) {\n this.openDialog(1, this.currentMainDataIndex, index, true);\n }\n\n ngOnDestroy(): void {\n this._currentWidgetSub.unsubscribe();\n this._formAnalyzerSub.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {Injectable, Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'ajfImageFilter'})\n@Injectable()\nexport class AjfImageFilterPipe implements PipeTransform {\n transform(items: any[], args: any): any {\n return items.filter(\n item => (args.length === 0) || item.info.toLowerCase().includes(args.toLowerCase()));\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\n\nimport {AjfReportBuilderService} from './report-builder-service';\n\n/**\n * this component handle a group of image object\n * there are 2 types of view\n * ajf-icon and class\n *\n * take a json in input\n * 'icon': 'false', // if true ajf-icon activated\n * 'class': ['flag-icon'], // add class in object style\n * 'prefixClass': 'flag-icon-', // prefix of class contained on data set\n * 'title': 'flags', title of data set\n * 'data': [\n * {\n * 'class': 'dz', strind added on prefix\n * 'info': 'Algeria' info related to object (exploit on toolTip)\n * }\n * ]\n * };\n *\n * @export\n */\n@Component({\n selector: 'ajf-image-group',\n templateUrl: 'image-group.html',\n styleUrls: ['image-group.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderImageGroup {\n private _icon: {fontSet: string, fontIcon: string}|null = null;\n private _classes: string = '';\n\n get icon(): {fontSet: string, fontIcon: string}|null {\n return this._icon;\n }\n get classes(): string {\n return this._classes;\n }\n\n open: boolean = false;\n valueToSearch: string = '';\n\n @Input() data: any;\n\n /**\n * this event is fired when the user click on formula button on quill editor rool barƒ\n *\n * @memberof QuillEditorComponent\n */\n @Output() readonly formulaClick: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(private _service: AjfReportBuilderService) {}\n\n\n setIcon(fontSet: string, fontIcon: string) {\n this._icon = {fontSet, fontIcon};\n this._service.setIcon(this._icon);\n }\n\n setFlag(value: string) {\n this._classes = value;\n this._service.setFlag(value);\n }\n\n setSearch(value: any) {\n this.valueToSearch = value.currentTarget.value;\n }\n\n emitFormula() {\n this.formulaClick.emit();\n }\n\n getFlag(value: string) {\n let returnValue = '';\n\n for (let i = 0; i < this.data.class.length; i++) {\n returnValue += this.data.class[i] + ' ';\n }\n\n returnValue += this.data.prefixClass + value;\n return returnValue;\n }\n\n toggle() {\n this.open = !this.open;\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfForm} from '@ajf/core/forms';\nimport {AjfCondition} from '@ajf/core/models';\nimport {\n AjfAggregationType,\n AjfChartWidget,\n AjfLayoutWidget,\n AjfTextWidget,\n AjfWidget,\n AjfWidgetType\n} from '@ajf/core/reports';\nimport {deepCopy} from '@ajf/core/utils';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {MatDialog, MatDialogRef} from '@angular/material/dialog';\nimport {Observable, Subscription} from 'rxjs';\nimport {distinctUntilChanged, filter, map, startWith, withLatestFrom} from 'rxjs/operators';\n\nimport {AjfReportBuilderFormsAnalyzerDialog} from './forms-analyzer-dialog';\nimport {AjfFormVariables} from './models';\nimport {AjfReportBuilderService} from './report-builder-service';\n\n@Component({\n selector: 'ajf-report-builder-properties',\n templateUrl: 'properties.html',\n styleUrls: ['properties.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderProperties implements OnInit, OnChanges, OnDestroy {\n /**\n * true when the first time chart type is setted\n *\n * @memberOf AjfReportBuilderProperties\n */\n initChartType = false;\n\n /**\n * the current widget\n *\n * @memberOf AjfReportBuilderProperties\n */\n currentWidget: AjfWidget|null = null;\n get currentLayoutWidget(): AjfLayoutWidget {\n return this.currentWidget as AjfLayoutWidget;\n }\n get currentTextWidget(): AjfTextWidget {\n return this.currentWidget as AjfTextWidget;\n }\n\n /**\n * this array contains the forms exploited for generate data labels\n *\n * @memberOf AjfReportBuilderProperties\n */\n forms: AjfForm[] = [];\n\n\n colors: string[] = [];\n\n /**\n * the name of the section that contains the currentWidget\n *\n * @memberOf AjfReportBuilderProperties\n */\n origin: string;\n\n /**\n * FAKE DATA\n */\n\n formsJson: any = {forms: []};\n\n /**\n * WIDGET\n */\n\n widgetName = '';\n getHTML: Observable<string|undefined>;\n getHeightWidget: Observable<number|undefined>;\n getFontSizeWidget: Observable<number|undefined>;\n getFontAlignWidget: Observable<number|undefined>;\n getBackgroundColorWidget: Observable<string>;\n getColorWidget: Observable<string>;\n getStyle: Observable<any>;\n getChartBackgroundColor: Observable<string[]>;\n getChartBorderColor: Observable<string[]>;\n getVisibility: Observable<AjfCondition>;\n getColor: Observable<String[]>;\n\n marginExpanded: boolean = false;\n getMarginWidget: Observable<number[]|undefined>;\n getMarginWidgetTop: Observable<number>;\n getMarginWidgetRight: Observable<number>;\n getMarginWidgetBottom: Observable<number>;\n getMarginWidgetLeft: Observable<number>;\n\n paddingExpanded: boolean = false;\n getPaddingWidget: Observable<number[]|undefined>;\n getPaddingWidgetTop: Observable<number>;\n getPaddingWidgetRight: Observable<number>;\n getPaddingWidgetBottom: Observable<number>;\n getPaddingWidgetLeft: Observable<number>;\n\n borderWidthExpanded: boolean = false;\n getBorderWidthWidget: Observable<number[]|undefined>;\n getBorderWidthWidgetTop: Observable<number>;\n getBorderWidthWidgetRight: Observable<number>;\n getBorderWidthWidgetBottom: Observable<number>;\n getBorderWidthWidgetLeft: Observable<number>;\n\n borderRadiusExpanded: boolean = false;\n getBorderRadiusWidget: Observable<number[]|undefined>;\n getBorderRadiusWidgetTopLeft: Observable<number>;\n getBorderRadiusWidgetTopRight: Observable<number>;\n getBorderRadiusWidgetBottomRight: Observable<number>;\n getBorderRadiusWidgetBottomLeft: Observable<number>;\n\n backgroundColor = '#127bdc';\n styleBackgroundColor = 'rgb(255,255,255,0)';\n borderColor = '#127bdc';\n styleColor = 'rgb(0,0,0,0)';\n wbackgroundColor: string;\n fontSize: string;\n bubble: string;\n\n dialogRef: MatDialogRef<AjfReportBuilderFormsAnalyzerDialog>;\n container: AjfFormVariables;\n\n\n align = [false, 'center', 'right', 'justify'];\n\n fonts = [\n false, 'blackr', 'black-italic', 'bold', 'bold-condensed', 'bold-condensed-italic',\n 'bold-italic', 'condensed', 'condensed-italic', 'italic', 'light', 'light-italic', 'medium',\n 'medium-italic', 'thinr', 'thin-italic'\n ];\n currentModule: any = {};\n quillModules = {\n toolbar: [\n ['formula'], ['bold', 'italic', 'underline', 'strike'], // toggled buttons\n // ['blockquote', 'code-block'],\n\n [{'header': 1}, {'header': 2}], // custom button values\n [{'list': 'ordered'}, {'list': 'bullet'}],\n [{'script': 'sub'}, {'script': 'super'}], // superscript/subscript\n // [{ 'indent': '-1'}, { 'indent': '+1' }], // outdent/indent\n // [{ 'direction': 'rtl' }], // text direction\n\n [{'size': ['small', false, 'large', 'huge']}], // custom dropdown\n [{'header': [1, 2, 3, 4, 5, 6, false]}],\n\n [{'color': this.colors}, {'background': this.colors}], // dropdown with defaults from theme\n [{'font': this.fonts}], [{'align': this.align}],\n\n ['clean'], // remove formatting button\n\n // ['link', 'class', 'video'] // link and image, video\n ]\n };\n\n /**\n * CHART\n */\n\n\n getChartYLabels: Observable<string[]>;\n\n chartBorderColor: string[] = [];\n chartBorderWidth = 3;\n\n /**\n *\n * IMAGE\n */\n\n imageUrl = 'https://angular.io/resources/images/logos/angular2/angular.png';\n\n /**\n *\n * TEXT\n */\n\n htmlText = '';\n\n\n /**\n * these variables indicate that the user want to change section\n */\n reportStyles = false;\n sectionStyles = false;\n widgetStyles = true;\n sectionColor = false;\n widgetColor = false;\n visibilitySection = false;\n currentColor = '';\n\n private _icon: {fontSet: string, fontIcon: string}|null = null;\n get icon(): {fontSet: string, fontIcon: string}|null {\n return this._icon;\n }\n\n iconSet: any = {'icon': 'true', 'title': 'report', 'data': null};\n\n flagSet: any = {\n 'icon': 'false',\n 'class': ['flag-icon'],\n 'prefixClass': 'flag-icon-',\n 'title': 'flags',\n 'data':\n [\n {'class': 'dz', 'info': 'Algeria'},\n {'class': 'ao', 'info': 'Angola'},\n {'class': 'bj', 'info': 'Benin'},\n {'class': 'bw', 'info': 'Botswana'},\n {'class': 'bf', 'info': 'Burkina Faso'},\n {'class': 'bi', 'info': 'Burundi'},\n {'class': 'cm', 'info': 'Cameroon'},\n {'class': 'cv', 'info': 'Cabo Verde'},\n {'class': 'cf', 'info': 'The Central African Republic'},\n {'class': 'td', 'info': 'Chad'},\n {'class': 'km', 'info': 'The Comoros'},\n {'class': 'ci', 'info': 'Cote D\\'avoire'},\n {'class': 'cd', 'info': 'The Democratic Republic of Congo'},\n {'class': 'dj', 'info': 'Dijibouti'},\n {'class': 'eg', 'info': 'Egypt'},\n {'class': 'gq', 'info': 'Equatorial Guinea'},\n {'class': 'er', 'info': 'Eritrea'},\n {'class': 'et', 'info': 'Ethiopia'},\n {'class': 'tf', 'info': 'French Southern Territories'},\n {'class': 'ga', 'info': 'Gabon'},\n {'class': 'gm', 'info': 'The Gambia'},\n {'class': 'gh', 'info': 'Ghana'},\n {'class': 'gn', 'info': 'Guinea'},\n {'class': 'gw', 'info': 'Guinea-Bissau'},\n {'class': 'ke', 'info': 'Kenya'},\n {'class': 'ls', 'info': 'Leshotho'},\n {'class': 'lr', 'info': 'Liberia'},\n {'class': 'ly', 'info': 'Libya'},\n {'class': 'mg', 'info': 'Madagascar'},\n {'class': 'mw', 'info': 'Malawy'},\n {'class': 'ml', 'info': 'Mali'},\n {'class': 'mr', 'info': 'Mauritania'},\n {'class': 'mu', 'info': 'Mauritius'},\n {'class': 'yt', 'info': 'Mayotte'},\n {'class': 'ma', 'info': 'Marocco'},\n {'class': 'mz', 'info': 'Mozambique'},\n {'class': 'na', 'info': 'Namibia'},\n {'class': 'ne', 'info': 'Niger'},\n {'class': 'ng', 'info': 'Nigeria'},\n {'class': 'cg', 'info': 'Republic of the Congo'},\n {'class': 'rw', 'info': 'Rwnda'},\n {'class': 're', 'info': 'rèunion'},\n {'class': 'sh', 'info': 'Saint Helena, Ascension and Tristan da Cunha'},\n {'class': 'st', 'info': 'Sao Tome and Principe'},\n {'class': 'sn', 'info': 'Senegal'},\n {'class': 'sc', 'info': 'Seychelles'},\n {'class': 'sl', 'info': 'Sierra Leone'},\n {'class': 'so', 'info': 'Somalia'},\n {'class': 'za', 'info': 'South Africa'},\n {'class': 'ss', 'info': 'South Sudan'},\n {'class': 'sd', 'info': 'Sudan'},\n {'class': 'sz', 'info': 'Swaziland'},\n {'class': 'tz', 'info': 'Tanzania'},\n {'class': 'tg', 'info': 'Togo'},\n {'class': 'tn', 'info': 'Tunisia'},\n {'class': 'ug', 'info': 'Uganda'},\n {'class': 'eh', 'info': 'Western Sahara'},\n {'class': 'zm', 'info': 'Zambia'},\n {'class': 'zw', 'info': 'Zimbawe'},\n {'class': 'iq', 'info': 'Iraq'},\n {'class': 'lb', 'info': 'Lebanon'},\n {'class': 'bd', 'info': 'Bangladesh'},\n {'class': 'ir', 'info': 'Iran (Islamic Republic of)'},\n {'class': 'my', 'info': 'Malaysia'},\n {'class': 'np', 'info': 'Nepal'},\n {'class': 'pk', 'info': 'Pakistan'},\n {'class': 'th', 'info': 'Thailand'},\n {'class': 'jo', 'info': 'Jordan'},\n {'class': 'ye', 'info': 'Yemen'}\n ]\n };\n\n private _currentWidgetSub: Subscription = Subscription.EMPTY;\n private _formsSub: Subscription = Subscription.EMPTY;\n private _colorSub: Subscription = Subscription.EMPTY;\n private _headerStyleSub: Subscription = Subscription.EMPTY;\n private _contentStylesSub: Subscription = Subscription.EMPTY;\n private _footerStylesSub: Subscription = Subscription.EMPTY;\n private _originSub: Subscription = Subscription.EMPTY;\n private _stylesUpdatesSubs: Subscription = Subscription.EMPTY;\n\n private _updateWidgetMarginEvt: EventEmitter<{idx: number, value: any}> =\n new EventEmitter<{idx: number, value: any}>();\n private _updateWidgetPaddingEvt: EventEmitter<{idx: number, value: any}> =\n new EventEmitter<{idx: number, value: any}>();\n private _updateWidgetBorderWidthEvt: EventEmitter<{idx: number, value: any}> =\n new EventEmitter<{idx: number, value: any}>();\n private _updateWidgetBorderRadiusEvt: EventEmitter<{idx: number, value: any}> =\n new EventEmitter<{idx: number, value: any}>();\n\n constructor(private _dialog: MatDialog, private _service: AjfReportBuilderService) {\n this.setForms();\n\n this.iconSet.data = Object.keys(_service.iconSets).filter(x => x != 'ajf-icon').map(i => {\n return {name: i, icons: _service.iconSets[i]};\n });\n\n this._headerStyleSub = this._service.headerStyles.subscribe(s => {\n if (s['background-color'] != null) {\n this.styleBackgroundColor = s['background-color'];\n }\n });\n this._contentStylesSub = this._service.contentStyles.subscribe(s => {\n if (s['background-color'] != null) {\n this.styleBackgroundColor = s['background-color'];\n }\n });\n this._footerStylesSub = this._service.footerStyles.subscribe(s => {\n if (s['background-color'] != null) {\n this.styleBackgroundColor = s['background-color'];\n }\n });\n this._originSub = this._service.origin.subscribe(s => {\n this.origin = s;\n });\n }\n\n\n /**\n *\n * UTILS\n */\n\n\n /**\n * return a number value\n *\n * @param value\n *\n * @memberOf AjfReportBuilderProperties\n */\n toNumber(value: string): number {\n let numberPattern = /^(-)?\\d+/g;\n\n if (value == null) {\n return 0;\n } else {\n const matches = value.match(numberPattern);\n if (matches == null || matches.length == 0) {\n return 0;\n }\n return Number(matches[0]);\n }\n }\n\n toNumberArray(value: string): number[] {\n if (value == null) {\n return [];\n } else {\n return (value || '')\n .replace('px', '')\n .split(' ')\n .filter(v => v !== '' && v != null)\n .map(v => this.toNumber(v));\n }\n }\n\n fillPxNumberArray(value: number[]) {\n const vl = value.length;\n switch (vl) {\n case 0:\n return [0, 0, 0, 0];\n case 1:\n const v = value[0];\n return [v, v, v, v];\n case 2:\n const v21 = value[0];\n const v22 = value[1];\n return [v21, v22, v21, v22];\n case 3:\n const v31 = value[0];\n const v32 = value[1];\n const v33 = value[2];\n return [v31, v32, v33, v32];\n default:\n return value;\n }\n }\n\n percent(value: number) {\n let temp = this.roundTo(value * 100, 3);\n return temp;\n }\n\n roundTo(value: number, decimalPositions: number) {\n let i = value * Math.pow(10, decimalPositions);\n\n i = Math.floor(i);\n\n return i / Math.pow(10, decimalPositions);\n }\n /**\n * call to service to set the forms\n *\n * @memberOf AjfReportBuilderProperties\n */\n\n setForms(): void {\n let forms: AjfForm[] = [];\n try {\n for (let i = 0; i < this.formsJson.forms.length; i++) {\n forms.push(deepCopy(this.formsJson.forms[i]));\n }\n this._service.setReportForms(forms);\n } catch (e) {\n }\n }\n\n /**\n * call to service to set the width of the idx column of layout widget\n *\n * @param col\n * @param idx\n *\n * @memberOf AjfReportBuilderProperties\n */\n instantColumnValue(col: number|null, idx: number) {\n if (col === null) {\n return;\n }\n this._service.instantColumnValue(col, idx);\n }\n\n /**\n * force copy of style\n *\n * @memberOf AjfReportBuilderProperties\n */\n // TODO delete this\n setStyle() {\n if (this.currentWidget == null) {\n return;\n }\n this.currentWidget.styles = deepCopy(this.currentWidget.styles);\n this._service.updateCurrentWidget(this.currentWidget);\n }\n\n /**\n * call to service to add new style to widget\n *\n * @param label\n * @param value\n *\n * @memberOf AjfReportBuilderProperties\n */\n setWidgetStyles(label: string, value: any) {\n this._service.setWidgetStyles(label, value);\n this.currentColor = value;\n this.setStyle();\n }\n\n setWidgetMargin(idx: number, value: any): void {\n this._updateWidgetMarginEvt.emit({idx, value});\n }\n\n setWidgetPadding(idx: number, value: any): void {\n this._updateWidgetPaddingEvt.emit({idx, value});\n }\n\n setWidgetBorderWidth(idx: number, value: any): void {\n this._updateWidgetBorderWidthEvt.emit({idx, value});\n }\n\n setWidgetBorderRadius(idx: number, value: any): void {\n this._updateWidgetBorderRadiusEvt.emit({idx, value});\n }\n\n /**\n * call to service to add new style to section\n *\n * @param label\n * @param value\n *\n * @memberOf AjfReportBuilderProperties\n */\n setSectionStyles(label: string, value: any) {\n this._service.setSectionStyles(this.origin, label, value);\n this.styleColor = value;\n }\n\n\n /**\n * call to service to add new style to report\n *\n * @param label\n * @param value\n *\n * @memberOf AjfReportBuilderProperties\n */\n setReportStyles(label: string, value: any) {\n this._service.setReportStyles(label, value);\n this.styleBackgroundColor = value;\n }\n\n /**\n * add custom color\n *\n *\n * @memberOf AjfReportBuilderProperties\n */\n addCustomColor() {\n this._service.addCustomColor(this.currentColor);\n this._service.updateCurrentWidget(this.currentWidget);\n }\n\n /**\n * get the module exploit to quill text editor\n *\n * @returns\n *\n * @memberOf AjfReportBuilderProperties\n */\n getModule() {\n return this.quillModules;\n }\n\n /**\n * true is the input type value is equal to current widget type\n *\n * @param value\n * @returns\n *\n * @memberOf AjfReportBuilderProperties\n */\n isChartTypeSelected(value: number) {\n if (this.initChartType == false) {\n return false;\n }\n const myObj = <AjfChartWidget>this.currentWidget;\n if (value === myObj.chartType) {\n return true;\n } else {\n return false;\n }\n }\n\n\n /* layout functions */\n\n /**\n * call to service to add a column to current layout widget\n *\n *\n * @memberOf AjfReportBuilderProperties\n */\n addColumn() {\n this._service.addColumn();\n }\n\n /**\n * call to service to add a obj to current layout widget\n *\n * @param idx\n *\n * @memberOf AjfReportBuilderProperties\n */\n fixedColumn(idx: number) {\n this._service.fixedColumn(idx);\n }\n\n /**\n * call to service to remove obj of current layout widget\n *\n * @param idx\n *\n * @memberOf AjfReportBuilderProperties\n */\n unfixedColumn(idx: number) {\n this._service.remove('unfixedColumn', idx);\n }\n\n /* image functions */\n\n /**\n * call to service to set image url\n *\n *\n * @memberOf AjfReportBuilderProperties\n */\n setImageUrl() {\n this._service.setImageUrl(this.imageUrl);\n }\n\n setIcon(icon: {fontSet: string, fontIcon: string}) {\n this._icon = icon;\n this._service.setIcon(icon);\n }\n\n /* chart functions */\n\n /**\n * call to service to set the type of chart\n *\n * @param type\n *\n * @memberOf AjfReportBuilderProperties\n */\n setChartType(type: number) {\n this.initChartType = true;\n this._service.setChartType(type);\n }\n\n setChartBorderColor(value: number|null) {\n if (value == null) {\n return;\n }\n this._service.setChartBorderWidth(value);\n }\n\n tabValue: string = 'backgroundColor';\n setTab(event: any) {\n if (event.index === 0) {\n this.tabValue = 'backgroundColor';\n } else {\n this.tabValue = 'borderColor';\n }\n }\n\n /**\n * call to service to remove background color to current chart\n *\n * @param index\n *\n * @memberOf AjfReportBuilderProperties\n */\n removeChartBackgroundColor(index: number) {\n this._service.removeChartBackgroundColor(index);\n }\n\n /**\n * call to service to remove border color to current chart\n *\n * @param index\n *\n * @memberOf AjfReportBuilderProperties\n */\n removeChartBorderColor(index: number) {\n this._service.removeChartBorderColor(index);\n }\n\n hideMenu() {\n this._service.updateCurrentWidget(null);\n }\n\n openFormulaDialog(event: any) {\n this.dialogRef = this._dialog.open(AjfReportBuilderFormsAnalyzerDialog);\n this.dialogRef.componentInstance.aggregation = AjfAggregationType.None;\n this.dialogRef.componentInstance.isFormula = true;\n if (event != null && event.reference != null) {\n this.dialogRef.componentInstance.formula = event.formula;\n this.dialogRef.componentInstance.reference = event.reference;\n }\n }\n\n ngOnInit(): void {\n this._formsSub = this._service.reportForms.subscribe(x => {\n this.forms = x || [];\n });\n\n this._currentWidgetSub = this._service.currentWidget.subscribe(x => {\n if (x != null) {\n if (this.currentWidget !== x) {\n this.currentWidget = x;\n this.widgetName = AjfWidgetType[x.widgetType];\n this.reportStyles = false;\n this.sectionStyles = false;\n this.widgetStyles = false;\n this.sectionColor = false;\n this.widgetColor = false;\n this.visibilitySection = false;\n }\n } else {\n this.currentWidget = null;\n this.widgetName = '';\n }\n });\n this._colorSub = this._service.colors.subscribe(x => {\n if (x && x.length > 0) {\n this.colors = x;\n\n this.quillModules = {\n toolbar: [\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\n // ['blockquote', 'code-block'],\n [{'header': 1}, {'header': 2}], // custom button values\n [{'list': 'ordered'}, {'list': 'bullet'}],\n [{'script': 'sub'}, {'script': 'super'}], // superscript/subscript\n // [{ 'indent': '-1'}, { 'indent': '+1' }], // outdent/indent\n // [{ 'direction': 'rtl' }], // text direction\n\n [{'size': ['small', false, 'large', 'huge']}], // custom dropdown\n [{'header': [1, 2, 3, 4, 5, 6, false]}],\n\n [\n {'color': this.colors}, {'background': this.colors}\n ], // dropdown with defaults from theme\n [{'font': this.fonts}], [{'align': this.align}], ['formula'],\n ['clean'], // remove formatting button\n\n // ['link', 'class', 'video'] // link and image, video\n ]\n };\n }\n });\n\n\n this.getHTML = this._service.currentWidget.pipe(\n map((widget: AjfWidget|null) => {\n if (widget != null) {\n const myObj = <AjfTextWidget>this.currentWidget;\n return myObj.htmlText;\n }\n return '';\n }),\n distinctUntilChanged(), startWith('<p><br></p>'));\n\n\n this.getHeightWidget = this._service.currentWidget.pipe(\n filter(x => x != null), map((myObj: AjfWidget|null) => {\n if (myObj != null) {\n let value = this.toNumber(myObj.styles['height']);\n if (value != null || value != null) {\n return value;\n }\n }\n return undefined;\n }),\n distinctUntilChanged());\n\n this.getFontSizeWidget = this._service.currentWidget.pipe(\n map((myObj: AjfWidget|null) => {\n if (myObj != null) {\n return (this.toNumber(myObj.styles['font-size']) || 12);\n }\n return undefined;\n }),\n distinctUntilChanged());\n\n this.getFontAlignWidget = this._service.currentWidget.pipe(\n map((myObj: AjfWidget|null) => {\n if (myObj != null) {\n return ((myObj.styles['text-align']) || 'center');\n }\n return undefined;\n }),\n distinctUntilChanged());\n\n this.getBorderWidthWidget = this._service.currentWidget.pipe(\n map((myObj: AjfWidget|null) => {\n if (myObj != null) {\n return this.fillPxNumberArray(this.toNumberArray(myObj.styles['border-width']));\n }\n return undefined;\n }),\n distinctUntilChanged(), startWith([0, 0, 0, 0]));\n this.getBorderWidthWidgetTop =\n this.getBorderWidthWidget.pipe(filter(m => m != null), map(m => m![0]));\n this.getBorderWidthWidgetRight =\n this.getBorderWidthWidget.pipe(filter(m => m != null), map(m => m![1]));\n this.getBorderWidthWidgetBottom =\n this.getBorderWidthWidget.pipe(filter(m => m != null), map(m => m![2]));\n this.getBorderWidthWidgetLeft =\n this.getBorderWidthWidget.pipe(filter(m => m != null), map(m => m![3]));\n\n this.getBorderRadiusWidget = this._service.currentWidget.pipe(\n map((myObj: AjfWidget|null) => {\n if (myObj != null) {\n return this.fillPxNumberArray(this.toNumberArray(myObj.styles['border-radius']));\n }\n return undefined;\n }),\n distinctUntilChanged(), startWith([0, 0, 0, 0]));\n this.getBorderRadiusWidgetTopLeft =\n this.getBorderRadiusWidget.pipe(filter(m => m != null), map(m => m![0]));\n this.getBorderRadiusWidgetTopRight =\n this.getBorderRadiusWidget.pipe(filter(m => m != null), map(m => m![1]));\n this.getBorderRadiusWidgetBottomRight =\n this.getBorderRadiusWidget.pipe(filter(m => m != null), map(m => m![2]));\n this.getBorderRadiusWidgetBottomLeft =\n this.getBorderRadiusWidget.pipe(filter(m => m != null), map(m => m![3]));\n\n this.getMarginWidget = this._service.currentWidget.pipe(\n map((myObj: AjfWidget|null) => {\n if (myObj != null && myObj.styles != null && myObj.styles['margin'] != null) {\n return this.fillPxNumberArray(this.toNumberArray(myObj.styles['margin']));\n }\n return undefined;\n }),\n distinctUntilChanged(), startWith([0, 0, 0, 0]));\n this.getMarginWidgetTop = this.getMarginWidget.pipe(filter(m => m != null), map(m => m![0]));\n this.getMarginWidgetRight = this.getMarginWidget.pipe(filter(m => m != null), map(m => m![1]));\n this.getMarginWidgetBottom = this.getMarginWidget.pipe(filter(m => m != null), map(m => m![2]));\n this.getMarginWidgetLeft = this.getMarginWidget.pipe(filter(m => m != null), map(m => m![3]));\n\n this.getPaddingWidget = this._service.currentWidget.pipe(\n map((myObj: AjfWidget|null) => {\n if (myObj != null && myObj.styles != null && myObj.styles['padding'] != null) {\n return this.fillPxNumberArray(this.toNumberArray(myObj.styles['padding']));\n }\n return undefined;\n }),\n distinctUntilChanged());\n this.getPaddingWidgetTop = this.getPaddingWidget.pipe(filter(m => m != null), map(m => m![0]));\n this.getPaddingWidgetRight =\n this.getPaddingWidget.pipe(filter(m => m != null), map(m => m![1]));\n this.getPaddingWidgetBottom =\n this.getPaddingWidget.pipe(filter(m => m != null), map(m => m![2]));\n this.getPaddingWidgetLeft = this.getPaddingWidget.pipe(filter(m => m != null), map(m => m![3]));\n\n this.getBackgroundColorWidget = this._service.currentWidget.pipe(\n map((myObj: AjfWidget|null) => {\n if (myObj != null && myObj.styles != null) {\n return myObj.styles['backgroundColor'] || '';\n }\n }),\n distinctUntilChanged());\n\n this.getColorWidget = this._service.currentWidget.pipe(\n map((myObj: AjfWidget|null) => {\n if (myObj != null && myObj.styles != null) {\n return myObj.styles['color'] || '';\n }\n }),\n distinctUntilChanged());\n\n this._stylesUpdatesSubs = this._updateWidgetMarginEvt\n .pipe(\n withLatestFrom(this.getMarginWidget),\n )\n .subscribe(r => {\n if (r == null) {\n return;\n }\n const idx = r[0].idx;\n const value = r[0].value;\n const v = (r[1] || [0, 0, 0, 0]) as number[];\n if (v == null || v.length < idx) {\n return;\n }\n v[idx] = value;\n this.setWidgetStyles('margin', v);\n });\n\n this._stylesUpdatesSubs.add(this._updateWidgetPaddingEvt\n .pipe(\n withLatestFrom(this.getPaddingWidget),\n )\n .subscribe(r => {\n if (r == null) {\n return;\n }\n const idx = r[0].idx;\n const value = r[0].value;\n const v = (r[1] || [0, 0, 0, 0]) as number[];\n if (v == null || v.length < idx) {\n return;\n }\n v[idx] = value;\n this.setWidgetStyles('padding', v);\n }));\n\n this._stylesUpdatesSubs.add(this._updateWidgetBorderWidthEvt\n .pipe(\n withLatestFrom(this.getBorderWidthWidget),\n )\n .subscribe(r => {\n if (r == null) {\n return;\n }\n const idx = r[0].idx;\n const value = r[0].value;\n const v = (r[1] || [0, 0, 0, 0]) as number[];\n if (v == null || v.length < idx) {\n return;\n }\n v[idx] = value;\n this.setWidgetStyles('border-width', v);\n }));\n\n this._stylesUpdatesSubs.add(this._updateWidgetBorderRadiusEvt\n .pipe(\n withLatestFrom(this.getBorderRadiusWidget),\n )\n .subscribe(r => {\n if (r == null) {\n return;\n }\n const idx = r[0].idx;\n const value = r[0].value;\n const v = (r[1] || [0, 0, 0, 0]) as number[];\n if (v == null || v.length < idx) {\n return;\n }\n v[idx] = value;\n this.setWidgetStyles('border-radius', v);\n }));\n }\n\n ngOnChanges(changes: any) {\n this.currentWidget = changes.widget.currentValue;\n if (this.currentWidget == null) {\n return;\n }\n this.widgetName = AjfWidgetType[this.currentWidget.widgetType];\n }\n\n ngOnDestroy(): void {\n this._currentWidgetSub.unsubscribe();\n this._formsSub.unsubscribe();\n this._colorSub.unsubscribe();\n this._headerStyleSub.unsubscribe();\n this._contentStylesSub.unsubscribe();\n this._footerStylesSub.unsubscribe();\n this._originSub.unsubscribe();\n this._stylesUpdatesSubs.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator\n} from '@angular/forms';\nimport {default as Quill} from 'quill';\nimport {Subscription} from 'rxjs';\n\nimport {AjfReportBuilderService} from './report-builder-service';\n\n\n@Component({\n selector: 'ajf-quill-editor',\n template: `\n <ng-content select=\"[ajf-quill-editor-toolbar]\"></ng-content>\n `,\n providers: [\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AjfQuillEditor), multi: true},\n {provide: NG_VALIDATORS, useExisting: forwardRef(() => AjfQuillEditor), multi: true}\n ],\n styleUrls: ['quill-editor.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfQuillEditor implements AfterViewInit, ControlValueAccessor, OnChanges, OnDestroy,\n Validator {\n quillEditor: any;\n editorElem: HTMLElement;\n emptyArray: any[] = [];\n content: any;\n\n listenFunc: Function;\n\n previewElemFormula: any;\n private _init: boolean = false;\n\n dateFormats = [\n {\n 'label': 'June 23rd 2017, 12:39:12 pm',\n 'value': 'MMMM Do YYYY, h:mm:ss a',\n 'validator': 'MMMMDoYYYYhmmssa'\n },\n {'label': 'Friday', 'value': 'dddd', 'validator': 'dddd'},\n {'label': 'Jun 23rd 17', 'value': 'MMM Do YY', 'validator': 'MMMDoYY'}\n ];\n\n\n fonts = [\n false, 'blackr', 'black-italic', 'bold', 'bold-condensed', 'bold-condensed-italic',\n 'bold-italic', 'condensed', 'condensed-italic', 'italic', 'light', 'light-italic', 'medium',\n 'medium-italic', 'thinr', 'thin-italic'\n ];\n\n defaultModules = {\n formula: true,\n toolbar:\n [\n ['formula'], ['bold', 'italic', 'underline', 'strike'], // toggled buttons\n // ['blockquote', 'code-block'],\n\n [{'header': 1}, {'header': 2}], // custom button values\n [{'list': 'ordered'}, {'list': 'bullet'}],\n [{'script': 'sub'}, {'script': 'super'}], // superscript/subscript\n // [{ 'indent': '-1'}, { 'indent': '+1' }], // outdent/indent\n // [{ 'direction': 'rtl' }], // text direction\n\n [{'size': ['small', false, 'large', 'huge']}], // custom dropdown\n [{'header': [1, 2, 3, 4, 5, 6, false]}],\n\n [\n {'color': this.emptyArray.slice()}, {'background': this.emptyArray.slice()}\n ], // dropdown with defaults from theme\n [{'font': this.fonts}], [{'align': this.emptyArray.slice()}],\n\n ['clean'], // remove formatting button\n\n // ['link', 'image', 'video'] // link and image, video\n ]\n };\n\n font = Quill.import('formats/font');\n\n\n @Input() theme: string;\n @Input() modules: Object;\n @Input() readOnly: boolean;\n @Input() placeholder: string;\n @Input() maxLength: number;\n @Input() minLength: number;\n @Input() formats: string[];\n @Input() initHTML: string;\n\n @Output() readonly editorCreated: EventEmitter<any> = new EventEmitter();\n @Output() readonly contentChanged: EventEmitter<any> = new EventEmitter();\n @Output() readonly selectionChanged: EventEmitter<any> = new EventEmitter();\n\n\n /**\n * this event is fired when the user click on formula button on quill editor rool barƒ\n *\n * @memberof QuillEditorComponent\n */\n @Output() readonly formulaClick: EventEmitter<any> = new EventEmitter<any>();\n\n\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n private _formulas: {formula: any, unlisten: Function|null}[] = [];\n private _formulaTextSub: Subscription = Subscription.EMPTY;\n\n constructor(\n private _elementRef: ElementRef, private _renderer: Renderer2,\n private _service: AjfReportBuilderService) {\n this.font.whitelist = this.fonts;\n this.font.whitelist.push('regular');\n\n this._formulaTextSub = this._service.getFormulaToHtmlEvent().subscribe((event: any) => {\n // reference is defined only when the user want to edit the formula\n if (event.reference !== undefined) {\n event.reference.innerHTML = event.formula;\n this._renderer.setAttribute(event.reference, 'formula', event.formula);\n const efs = this._formulas.filter(f => f.formula === event.reference);\n let formulaEntry;\n let unlisten;\n if (efs.length > 0) {\n formulaEntry = efs[0];\n unlisten = formulaEntry.unlisten;\n if (unlisten != null) {\n unlisten();\n }\n } else {\n formulaEntry = {formula: event.reference, unlisten: null};\n this._formulas.push(formulaEntry);\n }\n formulaEntry.unlisten = this._renderer.listen(event.reference, 'click', () => {\n let obj = {'formula': event.formula, 'reference': event.reference};\n this.formulaClick.emit(obj);\n });\n } else {\n const quillEditor = this._elementRef.nativeElement.querySelector('.ajf-ql-editor');\n const link = this._renderer.createElement('a');\n this._renderer.setAttribute(link, 'href', 'javascript:void(0)');\n this._renderer.setStyle(link, 'cursor', 'pointer');\n this._renderer.setAttribute(link, 'formula', this.check(event.formula));\n const linkLabel = this._renderer.createText(event.formula);\n this._renderer.appendChild(link, linkLabel);\n // add listener related on the click event of the new formula\n const unlisten = this._renderer.listen(link, 'click', (_) => {\n let obj = {'formula': this.check(event.formula), 'reference': link};\n this.formulaClick.emit(obj);\n });\n this._renderer.appendChild(quillEditor, link);\n this._formulas.push({unlisten, formula: link});\n }\n });\n }\n\n check(value: string): string {\n for (let i = 0; i < this.dateFormats.length; i++) {\n if (this.dateFormats[i].value == value) {\n return this.dateFormats[i].validator;\n }\n }\n return <string>value;\n }\n /**\n * this function search fomulas inside the init text\n * and allocate the related listener on click event\n *\n * @memberof QuillEditorComponent\n */\n setHTML() {\n this.writeValue(this.initHTML);\n }\n\n ngAfterViewInit() {\n const toolbarElem = this._elementRef.nativeElement.querySelector('[ajf-quill-editor-toolbar]');\n let modules: any = this.modules || this.defaultModules;\n\n Quill.register(this.font, true);\n\n if (toolbarElem) {\n modules['toolbar'] = toolbarElem;\n modules['formula'] = true;\n }\n this._elementRef.nativeElement.insertAdjacentHTML(\n 'beforeend', '<div quill-editor-element></div>');\n\n this.editorElem = this._elementRef.nativeElement.querySelector('[quill-editor-element]');\n\n this.quillEditor = new Quill(this.editorElem, {\n modules: modules,\n placeholder: this.placeholder || 'Insert text here ...',\n readOnly: this.readOnly || false,\n theme: this.theme || 'snow',\n formats: this.formats\n });\n\n\n this.editorCreated.emit(this.quillEditor);\n this.setHTML();\n\n // mark model as touched if editor lost focus\n this.quillEditor.on('selection-change', (range: any, oldRange: any, source: string) => {\n this.selectionChanged.emit(\n {editor: this.quillEditor, range: range, oldRange: oldRange, source: source});\n\n if (!range) {\n this.onModelTouched();\n }\n });\n\n // update model if text changes\n this.quillEditor.on('text-change', (delta: any, oldDelta: any, source: string) => {\n let html: any = this.editorElem.children[0].innerHTML;\n const text = this.quillEditor.getText();\n\n if (html === '<p><br></p>') {\n html = null;\n }\n\n this.onModelChange(html);\n\n this.contentChanged.emit({\n editor: this.quillEditor,\n html: html,\n text: text,\n delta: delta,\n oldDelta: oldDelta,\n source: source\n });\n });\n\n let elem = this._elementRef.nativeElement.querySelector('.ajf-ql-formula');\n this.listenFunc = this._renderer.listen(elem, 'click', (_) => {\n this.formulaClick.emit();\n });\n }\n\n writeValue(currentValue: any) {\n this.content = currentValue;\n\n if (this.quillEditor) {\n if (currentValue) {\n if (currentValue == this.initHTML && !this._init) {\n let editor = this._elementRef.nativeElement.querySelector('.ajf-ql-editor');\n editor.innerHTML = this.initHTML;\n let allFormulas = this._elementRef.nativeElement.querySelectorAll('[formula]');\n allFormulas.forEach((elem: any) => {\n const unlisten = this._renderer.listen(elem, 'click', (_) => {\n let obj = {'formula': this.check(elem.innerText), 'reference': elem};\n this.formulaClick.emit(obj);\n });\n this._renderer.setStyle(elem, 'cursor', 'pointer');\n this._formulas.push({unlisten, formula: elem});\n this._init = true;\n });\n } else if (currentValue != this.initHTML) {\n this.quillEditor.pasteHTML(currentValue);\n }\n return;\n }\n this.quillEditor.setText('');\n }\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n validate(_c: FormControl) {\n if (!this.quillEditor) {\n return null;\n }\n\n let err: {\n minLengthError?: {given: number, minLength: number};\n maxLengthError?: {given: number, maxLength: number};\n } = {},\n valid = true;\n\n const textLength = this.quillEditor.getText().trim().length;\n\n if (this.minLength) {\n err.minLengthError = {given: textLength, minLength: this.minLength};\n\n valid = textLength >= this.minLength || !textLength;\n }\n\n if (this.maxLength) {\n err.maxLengthError = {given: textLength, maxLength: this.maxLength};\n\n valid = textLength <= this.maxLength && valid;\n }\n\n return valid ? null : err;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['readOnly'] && this.quillEditor) {\n this.quillEditor.enable(!changes['readOnly'].currentValue);\n }\n if (changes['modules'] && this.quillEditor) {\n Quill.register(this.font, true);\n this.quillEditor = new Quill(this.editorElem, {\n modules: changes['modules']['currentValue'],\n placeholder: this.placeholder || 'Insert text here ...',\n readOnly: this.readOnly || false,\n theme: this.theme || 'snow',\n formats: this.formats\n });\n this._elementRef.nativeElement.children[0].remove();\n }\n }\n ngOnDestroy() {\n for (let i = 0; i < this._formulas.length; i++) {\n let unlisten = this._formulas[i].unlisten;\n if (unlisten != null) {\n unlisten();\n }\n }\n this._formulaTextSub.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfImageType} from '@ajf/core/image';\nimport {evaluateExpression} from '@ajf/core/models';\nimport {\n AjfChartWidget,\n AjfColumnWidget,\n AjfDataset,\n AjfImageWidget,\n AjfLayoutWidget,\n AjfMapWidget,\n AjfTableWidget,\n AjfTextWidget,\n AjfWidget,\n AjfWidgetType\n} from '@ajf/core/reports';\nimport {CdkDrag, CdkDragDrop} from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport {Observable, Subscription, timer} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {AjfReportBuilderDragData} from './report-builder-drag-data';\nimport {AjfReportBuilderService} from './report-builder-service';\n\n@Component({\n selector: 'ajf-report-builder-renderer-widget',\n templateUrl: 'renderer-widget.html',\n styleUrls: ['renderer-widget.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderRendererWidget implements OnInit, OnDestroy, OnChanges {\n get widgetTypes() {\n return AjfWidgetType;\n }\n\n @Input() widget: AjfWidget;\n\n get layoutWidget(): AjfLayoutWidget {\n return this.widget as AjfLayoutWidget;\n }\n\n @Input() position: number;\n\n @Input() section: string;\n\n // this boolean sign if is dragged a widget\n onDragged = false;\n\n currentContentWidget: AjfWidget|null = null;\n obj: any;\n fixedZoom: any;\n\n getTableTitles: Observable<string[]>;\n getTableContent: Observable<string[][]|undefined>;\n\n getChartType: Observable<number>;\n getDataset: Observable<AjfDataset[][]>;\n getChartBackgroundColor: Observable<string[]>;\n getChartBorderColor: Observable<string[]>;\n getChartBorderWidth: Observable<number>;\n\n layoutShow: boolean;\n\n private _onDraggedSub: Subscription = Subscription.EMPTY;\n\n constructor(private _service: AjfReportBuilderService) {}\n\n canDropPredicate(item: CdkDrag<AjfReportBuilderDragData>): boolean {\n for (let i = 0; i < item.data.dropZones.length; i++) {\n if (['header', 'widget'].indexOf(item.data.dropZones[i]) > -1) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * sign the start of mouse drag with 200 ms of delay\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragStartHandler(): void {\n let s = timer(200).subscribe(() => {\n s.unsubscribe();\n this._service.dragStarted();\n });\n }\n\n /**\n * sign the end of mouse drag\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragEndHandler(): void {\n this._service.dragEnded();\n }\n\n getColumnContent(): AjfColumnWidget[] {\n const myObj: AjfLayoutWidget = <AjfLayoutWidget>this.widget;\n\n return <AjfColumnWidget[]>myObj.content;\n }\n\n getIcon(): {fontSet: string, fontIcon: string}|null {\n const defVal = {fontSet: '', fontIcon: ''};\n const myObj: AjfImageWidget = <AjfImageWidget>this.widget;\n if (myObj.icon == null) {\n return null;\n }\n return evaluateExpression(myObj.icon.formula) || defVal;\n }\n\n getFlag(): string|null {\n const defVal = 'ch';\n const myObj: AjfImageWidget = <AjfImageWidget>this.widget;\n if (myObj.flag == null) {\n return null;\n }\n return evaluateExpression(myObj.flag.formula) || defVal;\n }\n\n getPercent(index: number): string {\n const myObj: AjfLayoutWidget = <AjfLayoutWidget>this.widget;\n const percent = myObj.columns[index] * 100;\n\n return `${percent.toString()}%`;\n }\n\n getImageUrl(): string|null {\n const defVal = '';\n const myObj: AjfImageWidget = <AjfImageWidget>this.widget;\n if (myObj.url == null) {\n return null;\n }\n return evaluateExpression(myObj.url.formula) || defVal;\n }\n\n getImageType() {\n return this.widget != null ? (<AjfImageWidget>this.widget).imageType : AjfImageType.Image;\n }\n\n getHtmlText(): string {\n const myObj: AjfTextWidget = this.widget as AjfTextWidget;\n if (myObj.htmlText === '') {\n return '...';\n } else {\n return myObj.htmlText;\n }\n }\n\n getCoordinate(): number[] {\n const myObj: AjfMapWidget = this.widget as AjfMapWidget;\n if (myObj.coordinate == null) {\n return [51.505, -0.09, 13];\n } else {\n return myObj.coordinate as any;\n }\n }\n\n getTileLayer(): string {\n const myObj: AjfMapWidget = this.widget as AjfMapWidget;\n if (myObj.tileLayer === '') {\n return 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';\n } else {\n return myObj.tileLayer;\n }\n }\n\n getAttribution(): string {\n let myObj: AjfMapWidget;\n myObj = <AjfMapWidget>this.widget;\n if (myObj.attribution === '') {\n return '© <a href=\\'http://osm.org/copyright\\'>O</a> contributors';\n } else {\n return myObj.attribution;\n }\n }\n\n addToList(event: CdkDragDrop<AjfReportBuilderDragData>, toColumn: AjfColumnWidget): void {\n this.onDragEndHandler();\n this._service.addToColumn(event, toColumn);\n }\n\n ngOnInit(): void {\n this._onDraggedSub = this._service.onDragged.subscribe(x => {\n this.onDragged = x;\n });\n\n this.getChartType = this._service.currentWidget.pipe(\n map((widget: AjfWidget|null) => {\n if (widget == null) {\n return 0;\n }\n const myObj = <AjfChartWidget>this.widget;\n return <number>(myObj.chartType);\n }),\n distinctUntilChanged(), startWith(0));\n\n this.getDataset = this._service.currentWidget.pipe(\n map((widget: AjfWidget|null) => {\n if (widget != null && (widget as AjfChartWidget).dataset != null) {\n const myObj = <AjfChartWidget>this.widget;\n return <any>myObj.dataset;\n } else {\n return [];\n }\n }),\n distinctUntilChanged());\n\n this.getTableTitles = this._service.currentWidget.pipe(map((widget: AjfWidget|null) => {\n if (widget == null) {\n return [];\n }\n\n const myObj = this.widget as AjfTableWidget;\n\n if (myObj.dataset != null) {\n let tableTitle: string[] = [];\n\n for (let i = 0; i < myObj.dataset.length; i++) {\n if (myObj.dataset[i][0] != null) {\n tableTitle.push(myObj.dataset[i][0].label || '');\n }\n }\n return tableTitle;\n } else {\n return [];\n }\n }));\n\n this.getTableContent = this._service.currentWidget.pipe(map((widget: AjfWidget|null) => {\n if (widget == null) {\n return [];\n }\n\n const myObj = <AjfTableWidget>this.widget;\n\n if (myObj.dataset != null) {\n let tableContent: string[][] = [];\n\n for (let i = 0; i < myObj.dataset.length; i++) {\n for (let j = 0; j < myObj.dataset[i].length; j++) {\n if ((myObj.dataset[i] != null) && (myObj.dataset[i][j + 1] != null)) {\n if (tableContent[j] == null) {\n tableContent[j] = [];\n }\n if (tableContent[j][i] == null) {\n tableContent[j][i] = ' ';\n }\n tableContent[j].splice(i, 1, myObj.dataset[i][j + 1].label || '');\n }\n }\n }\n return tableContent;\n }\n return [];\n }));\n\n this._service.updateCurrentWidget(this.widget);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const widget = changes['widget'];\n if (widget && widget.currentValue != null) {\n this.widget = widget.currentValue;\n }\n }\n\n ngOnDestroy(): void {\n this._onDraggedSub.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfReport} from '@ajf/core/reports';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {MatSidenav} from '@angular/material/sidenav';\n\nimport {AjfReportBuilderService} from './report-builder-service';\n\n@Component({\n selector: 'ajf-report-builder',\n templateUrl: 'report-builder.html',\n styleUrls: ['report-builder.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n/**\n * This class will define an ajf form builderx\n */\nexport class AjfReportBuilder implements AfterContentInit {\n @ViewChild(MatSidenav, {static: true}) startSidenav: MatSidenav;\n\n private _init: boolean = false;\n\n private _report: AjfReport;\n get report(): AjfReport {\n return this._report;\n }\n @Input()\n set report(report: AjfReport) {\n if (report != null) {\n this._report = report;\n if (this._init) {\n this._setCurrentReport();\n }\n }\n }\n\n constructor(private _service: AjfReportBuilderService) {}\n\n ngAfterContentInit(): void {\n this._setCurrentReport();\n this._init = true;\n }\n\n private _setCurrentReport(): void {\n this._service.setReportForms(this.report != null ? this.report.forms || [] : []);\n this._service.setReport(this.report);\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfWidget} from '@ajf/core/reports';\nimport {deepCopy} from '@ajf/core/utils';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\nimport {Subscription} from 'rxjs';\n\nimport {AjfReportBuilderService} from './report-builder-service';\n\n@Component({\n selector: 'theme-color-dialog',\n templateUrl: 'theme-color-dialog.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderThemeColorDialog implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('colorpic', {static: true}) elem: any;\n\n currentWidget: AjfWidget|null = null;\n\n currentColor = 'rgb(255,255,255,0)';\n section: string = 'color';\n\n private _currentWidgetSub: Subscription = Subscription.EMPTY;\n\n constructor(\n private _service: AjfReportBuilderService,\n private _dialogRef: MatDialogRef<AjfReportBuilderThemeColorDialog>) {}\n\n setWidgetStyles(value: any) {\n this._service.setWidgetStyles(this.section, value);\n this.currentColor = value;\n this.setStyle();\n }\n\n setStyle() {\n if (this.currentWidget == null) {\n return;\n }\n this.currentWidget.styles = deepCopy(this.currentWidget.styles);\n this._service.updateCurrentWidget(this.currentWidget);\n }\n\n addCustomColor() {\n this._service.addCustomColor(this.currentColor);\n this._service.updateCurrentWidget(this.currentWidget);\n this._dialogRef.close();\n }\n\n close() {\n this._dialogRef.close();\n }\n ngOnInit() {\n this._currentWidgetSub = this._service.currentWidget.subscribe(x => {\n if (x !== null) {\n if (this.currentWidget !== x) {\n this.currentWidget = x;\n }\n } else {\n this.currentWidget = null;\n }\n });\n }\n\n ngAfterViewInit() {\n this.elem.nativeElement.children[1].firstElementChild['style']['position'] = 'initial';\n }\n\n ngOnDestroy() {\n this._currentWidgetSub.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfWidget} from '@ajf/core/reports';\nimport {deepCopy} from '@ajf/core/utils';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {MatDialog, MatDialogRef} from '@angular/material/dialog';\nimport {Observable, Subscription} from 'rxjs';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\n\nimport {AjfReportBuilderService} from './report-builder-service';\nimport {AjfReportBuilderThemeColorDialog} from './theme-color-dialog';\n\n/**\n * this component manages the report text\n *\n * @export\n */\n@Component({\n selector: 'ajf-theme-color',\n templateUrl: 'theme-color.html',\n styleUrls: ['theme-color.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderThemeColor implements OnInit, OnDestroy {\n currentWidget: AjfWidget|null = null;\n\n alphaColor: number = 1;\n colors: string[];\n currentColor: string;\n\n getColorWidget: Observable<string>;\n\n dialogRef: MatDialogRef<AjfReportBuilderThemeColorDialog>;\n\n styleBackgroundColor = 'rgb(255,255,255,0)';\n styleColor = 'rgb(0,0,0,0)';\n\n @Input() section: string;\n\n @Input() label: string;\n\n @Input() init: string;\n\n /**\n * the name of the section that contains the currentWidget\n *\n * @memberOf AjfReportBuilderProperties\n */\n origin: string;\n\n private _colorsSub: Subscription = Subscription.EMPTY;\n private _currentWidgetSub: Subscription = Subscription.EMPTY;\n private _originSub: Subscription = Subscription.EMPTY;\n private _headerStyleSub: Subscription = Subscription.EMPTY;\n private _contentStylesSub: Subscription = Subscription.EMPTY;\n private _footerStylesSub: Subscription = Subscription.EMPTY;\n\n constructor(private _service: AjfReportBuilderService, public dialog: MatDialog) {}\n\n setStyles(value: any) {\n switch (this.section) {\n case 'widget':\n this.setWidgetStyles(value);\n break;\n case 'report':\n this.setReportStyles(value);\n break;\n case 'section':\n this.setSectionStyles(value);\n break;\n case 'chart':\n this.setChartStyle(value);\n break;\n }\n }\n\n setChartStyle(value: any) {\n if (this.label === 'backgroundColor') {\n this.addChartBackgroundColor(value);\n } else {\n this.addChartBorderColor(value);\n }\n }\n\n setAlphaColor(value: any) {\n value = value.toFixed(2);\n for (let i = 0; i < this.colors.length; i++) {\n let lastComma = this.colors[i].lastIndexOf(',');\n this.colors[i] = this.colors[i].substring(0, lastComma) + ',' + value + ')';\n }\n }\n\n /**\n * call to service to add new style to widget\n *\n * @param label\n * @param value\n *\n * @memberOf AjfReportBuilderProperties\n */\n setWidgetStyles(value: any) {\n if (this.section === 'chart') {\n this.setChartStyle(value);\n } else {\n this._service.setWidgetStyles(this.label, value);\n this.currentColor = value;\n this.setStyle();\n }\n }\n\n /**\n * call to service to add new style to section\n *\n * @param label\n * @param value\n *\n * @memberOf AjfReportBuilderProperties\n */\n setSectionStyles(value: any) {\n this._service.setSectionStyles(this.origin, this.label, value);\n this.styleColor = value;\n }\n\n /**\n * call to service to add new style to report\n *\n * @param label\n * @param value\n *\n * @memberOf AjfReportBuilderProperties\n */\n setReportStyles(value: any) {\n this._service.setReportStyles(this.label, value);\n this.styleBackgroundColor = value;\n }\n\n /**\n * call to service to add background color to current chart\n *\n *\n * @memberOf AjfReportBuilderProperties\n */\n addChartBackgroundColor(value: any) {\n this._service.addChartBackgroundColor(value);\n }\n\n /**\n * call to service to add border color to current chart\n *\n *\n * @memberOf AjfReportBuilderProperties\n */\n addChartBorderColor(value: any) {\n this._service.addChartBorderColor(value);\n }\n\n setStyle() {\n if (this.currentWidget == null) {\n return;\n }\n this.currentWidget.styles = deepCopy(this.currentWidget.styles);\n this._service.updateCurrentWidget(this.currentWidget);\n }\n\n openDialog() {\n this.dialogRef = this.dialog.open(AjfReportBuilderThemeColorDialog);\n }\n\n ngOnInit() {\n this._colorsSub = this._service.colors.subscribe(x => {\n this.colors = x;\n });\n\n this._currentWidgetSub = this._service.currentWidget.subscribe(x => {\n if (x != null) {\n if (this.currentWidget !== x) {\n this.currentWidget = x;\n }\n } else {\n this.currentWidget = null;\n }\n });\n\n this.getColorWidget = this._service.currentWidget.pipe(\n map((myObj: AjfWidget|null) => {\n if (myObj != null) {\n return myObj.styles['color'] || '';\n }\n }),\n distinctUntilChanged());\n\n this._originSub = this._service.origin.subscribe(s => {\n this.origin = s;\n });\n\n this._headerStyleSub = this._service.headerStyles.subscribe(s => {\n if (s['background-color'] != null) {\n this.styleBackgroundColor = s['background-color'];\n }\n });\n this._contentStylesSub = this._service.contentStyles.subscribe(s => {\n if (s['background-color'] != null) {\n this.styleBackgroundColor = s['background-color'];\n }\n });\n this._footerStylesSub = this._service.footerStyles.subscribe(s => {\n if (s['background-color'] != null) {\n this.styleBackgroundColor = s['background-color'];\n }\n });\n }\n\n ngOnDestroy(): void {\n this._colorsSub.unsubscribe();\n this._currentWidgetSub.unsubscribe();\n this._originSub.unsubscribe();\n this._headerStyleSub.unsubscribe();\n this._contentStylesSub.unsubscribe();\n this._footerStylesSub.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\n\nimport {AjfReportBuilderService} from './report-builder-service';\n\n@Component({\n selector: 'toolbar-dialog',\n templateUrl: 'toolbar-dialog.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderToolbarDialog {\n constructor(\n private _service: AjfReportBuilderService,\n private _dialogRef: MatDialogRef<AjfReportBuilderToolbarDialog>) {}\n\n resetReport() {\n let emptyReport: any = {\n 'header': {'content': [], 'styles': {}},\n 'content': {'content': [], 'styles': {}},\n 'footer': {'content': [], 'styles': {}},\n 'styles': {}\n };\n this._service.setReport(emptyReport);\n this._dialogRef.close();\n }\n\n close() {\n this._dialogRef.close();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {deepCopy} from '@ajf/core/utils';\nimport {CdkDrag, CdkDragDrop} from '@angular/cdk/drag-drop';\nimport {ChangeDetectionStrategy, Component, EventEmitter, ViewEncapsulation} from '@angular/core';\nimport {MatDialog, MatDialogRef} from '@angular/material/dialog';\nimport {Observable} from 'rxjs';\n\nimport {AjfReportBuilderDragData} from './report-builder-drag-data';\nimport {AjfReportBuilderService} from './report-builder-service';\nimport {AjfReportBuilderToolbarDialog} from './toolbar-dialog';\n\n@Component({\n selector: 'ajf-report-builder-toolbar',\n outputs: ['addClick'],\n styleUrls: ['toolbar.css'],\n templateUrl: 'toolbar.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n/**\n * This class will define an ajf builder toolbar\n * @implements : OnDestroy\n */\nexport class AjfReportBuilderToolbar {\n // this is an any EventEmitter\n addClick: EventEmitter<any> = new EventEmitter<any>();\n dialogRef: MatDialogRef<AjfReportBuilderToolbarDialog>;\n zoom = false;\n\n lastJson: string;\n\n emptyContent: Observable<boolean>;\n\n constructor(private _service: AjfReportBuilderService, public dialog: MatDialog) {\n this.emptyContent = this._service.emptyContent;\n }\n\n canDropPredicate(item: CdkDrag<AjfReportBuilderDragData>): boolean {\n return item.data.dropZones.indexOf('widget') > -1;\n }\n\n JSONRequest() {}\n /**\n * this method will pass event to event emitter\n */\n onAddClick(event: any): void {\n this.addClick.emit(event);\n }\n\n addToList(event: CdkDragDrop<AjfReportBuilderDragData>) {\n if (event.item.data.widget != null) {\n this._service.addCustomWidgets(\n {json: JSON.stringify(event.item.data.widget.toJson()), type: ''});\n }\n }\n\n undoLastOperation() {\n try {\n let myObj = JSON.parse(this._service.popJsonStack() || '');\n this._service.setReport(deepCopy(myObj));\n } catch (e) {\n }\n }\n\n isZoomed() {\n this.zoom = !this.zoom;\n if (this.zoom) {\n this._service.fixedZoomIn();\n } else {\n this._service.fixedZoomOut();\n }\n }\n\n openDialog() {\n this.dialogRef = this.dialog.open(AjfReportBuilderToolbarDialog);\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation} from '@angular/core';\n\nimport {ajfReportBuilderWidgetToString} from './utils';\n\n@Component({\n selector: 'ajf-report-builder-widget-toolbar-button',\n templateUrl: 'widget-toolbar-button.html',\n styleUrls: ['widget-toolbar-button.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n/**\n * This class will define an ajf builder field toolbar button\n * @implements : OnInit\n */\nexport class AjfReportBuilderWidgetToolbarButton implements OnInit {\n @Input() widgetType: string;\n widgetIcon: string;\n\n constructor() {}\n ngOnInit(): void {\n this.widgetIcon = ajfReportBuilderWidgetToString(this.widgetType);\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfLayoutWidget, AjfWidget, AjfWidgetType} from '@ajf/core/reports';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {Subscription} from 'rxjs';\n\nimport {AjfReportBuilderService} from './report-builder-service';\nimport {ajfWidgetTypeToLabel, widgetReportBuilderIconName} from './utils';\n\n@Component({\n selector: 'ajf-report-builder-widgets-row-buttons',\n templateUrl: 'widgets-row-buttons.html',\n styleUrls: ['widgets-row-buttons.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AjfReportBuilderWidgetsRowButtons implements OnDestroy, OnInit {\n @Input() from: string;\n @Input() fromWidget: AjfWidget;\n @Input() position: number;\n @Input() widget: AjfWidget;\n @Input() child: boolean;\n @Input() isOver = false;\n currentWidget: AjfWidget|null = null;\n isClicked = false;\n color: string[] = [];\n\n widgetIcon: string;\n widgetLabel: string;\n label: string;\n\n // this boolean sign if is dragged a widget\n onDragged = false;\n\n // this boolean sign if is on over a widget\n onOver = false;\n\n private _currentWidgetSub: Subscription = Subscription.EMPTY;\n private _onDraggedSub: Subscription = Subscription.EMPTY;\n private _onOverSub: Subscription = Subscription.EMPTY;\n\n\n /**\n *\n * @param private _afjBuilderService: AjfBuilderService\n */\n constructor(private _service: AjfReportBuilderService) {}\n\n selectedWidget() {\n this.isClicked = !this.isClicked;\n this._service.setOrigin(this.from);\n this._service.updateCurrentWidget(this.widget);\n }\n\n remove() {\n if (this.fromWidget != null) {\n this._service.updateCurrentWidget(this.fromWidget);\n }\n this._service.remove(this.from, this.position);\n }\n\n onFocus(): boolean {\n if (this.widget === this.currentWidget) {\n return true;\n } else {\n return false;\n }\n }\n\n changeColumn(direction: string) {\n if (direction == 'back') {\n this._service.changeColumn(\n this.position, this.position - 1, <AjfLayoutWidget>this.fromWidget);\n } else {\n this._service.changeColumn(\n this.position, this.position + 1, <AjfLayoutWidget>this.fromWidget);\n }\n }\n isColumn(): boolean {\n if (this.label === 'Column') {\n return true;\n } else {\n return false;\n }\n }\n\n isOneColumn(): boolean {\n let rootObj = <AjfLayoutWidget>this.fromWidget;\n if (rootObj.columns.length > 1) {\n return false;\n } else {\n return true;\n }\n }\n\n ngOnInit() {\n this.label = AjfWidgetType[this.widget.widgetType];\n this.widgetIcon = widgetReportBuilderIconName(this.widget.widgetType);\n this.widgetLabel = ajfWidgetTypeToLabel(this.widget.widgetType);\n\n this._onDraggedSub = this._service.onDragged.subscribe(x => {\n this.onDragged = x;\n });\n\n this._onOverSub = this._service.onOver.subscribe(x => {\n this.onOver = x;\n });\n\n this._currentWidgetSub = this._service.currentWidget.subscribe(x => {\n this.currentWidget = x;\n if (x !== this.widget) {\n this.isClicked = false;\n }\n });\n }\n ngOnDestroy(): void {\n this._onDraggedSub.unsubscribe();\n this._onOverSub.unsubscribe();\n this._currentWidgetSub.unsubscribe();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfChartType, AjfWidgetType} from '@ajf/core/reports';\nimport {sizedEnumToStringArray} from '@ajf/core/utils';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {timer} from 'rxjs';\n\nimport {AjfReportBuilderService} from './report-builder-service';\n\n\n@Component({\n selector: 'ajf-report-builder-widgets-toolbar',\n templateUrl: 'widgets-toolbar.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n/**\n * This class will define an Ajf builder fields toolbar\n */\nexport class AjfReportBuilderWidgetsToolbar {\n // fieldTypes is an array string that contains the field options\n chartTypes: string[] = sizedEnumToStringArray(AjfChartType);\n widgetTypes: string[] = sizedEnumToStringArray(AjfWidgetType);\n\n\n /**\n *\n * @param private _afjBuilderService: AjfBuilderService\n */\n constructor(private _service: AjfReportBuilderService) {\n // delete Column widget\n let pos = this.widgetTypes.indexOf('Column');\n if (pos !== -1) {\n this.widgetTypes.splice(pos, 1);\n }\n }\n /**\n * sign the start of mouse drag with 200 ms of delay\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragStartHandler(): void {\n let s = timer(200).subscribe(() => {\n if (s != null) {\n s.unsubscribe();\n }\n this._service.dragStarted();\n });\n }\n\n /**\n * sign the end of mouse drag\n *\n * @memberOf AjfReportBuilderContent\n */\n onDragEndHandler(): void {\n this._service.dragEnded();\n }\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfCommonModule} from '@ajf/core/common';\nimport {AjfMapModule} from '@ajf/core/map';\nimport {AjfTableModule} from '@ajf/core/table';\nimport {AjfTextModule} from '@ajf/core/text';\nimport {AjfTranslocoModule} from '@ajf/core/transloco';\nimport {AjfImageModule} from '@ajf/material/image';\nimport {AjfMonacoEditorModule} from '@ajf/material/monaco-editor';\nimport {DragDropModule} from '@angular/cdk/drag-drop';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatListModule} from '@angular/material/list';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatSliderModule} from '@angular/material/slider';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {ColorPickerModule} from 'ngx-color-picker';\n\nimport {AjfReportBuilderColumn} from './column';\nimport {AjfReportBuilderConditionEditor} from './condition-editor';\nimport {AjfReportBuilderContent} from './content';\nimport {AjfReportBuilderCustomWidgetDialog} from './custom-widget-dialog';\nimport {AjfReportBuilderCustomWidgetToolbarButton} from './custom-widget-toolbar-button';\nimport {AjfReportBuilderCustomWidgetsToolbar} from './custom-widgets-toolbar';\nimport {AjfReportBuilderFormsAnalyzer} from './forms-analyzer';\nimport {AjfReportBuilderFormsAnalyzerDialog} from './forms-analyzer-dialog';\nimport {AjfImageFilterPipe} from './image-filter';\nimport {AjfReportBuilderImageGroup} from './image-group';\nimport {AjfReportBuilderProperties} from './properties';\nimport {AjfQuillEditor} from './quill-editor';\nimport {AjfReportBuilderRendererWidget} from './renderer-widget';\nimport {AjfReportBuilder} from './report-builder';\nimport {AjfReportBuilderService} from './report-builder-service';\nimport {AjfReportBuilderThemeColor} from './theme-color';\nimport {AjfReportBuilderThemeColorDialog} from './theme-color-dialog';\nimport {AjfReportBuilderToolbar} from './toolbar';\nimport {AjfReportBuilderToolbarDialog} from './toolbar-dialog';\nimport {AjfReportBuilderWidgetToolbarButton} from './widget-toolbar-button';\nimport {AjfReportBuilderWidgetsRowButtons} from './widgets-row-buttons';\nimport {AjfReportBuilderWidgetsToolbar} from './widgets-toolbar';\n\n@NgModule({\n imports: [\n AjfCommonModule, AjfImageModule, AjfMapModule, AjfMonacoEditorModule,\n AjfTableModule, AjfTextModule, ColorPickerModule, CommonModule,\n DragDropModule, FormsModule, MatButtonModule, MatButtonToggleModule,\n MatCardModule, MatDialogModule, MatGridListModule, MatIconModule,\n MatListModule, MatSelectModule, MatSidenavModule, MatSlideToggleModule,\n MatSliderModule, MatTabsModule, MatToolbarModule, MatTooltipModule,\n AjfTranslocoModule,\n ],\n declarations: [\n AjfImageFilterPipe,\n AjfQuillEditor,\n AjfReportBuilderColumn,\n AjfReportBuilderConditionEditor,\n AjfReportBuilderContent,\n AjfReportBuilderCustomWidgetDialog,\n AjfReportBuilderCustomWidgetsToolbar,\n AjfReportBuilderCustomWidgetToolbarButton,\n AjfReportBuilderFormsAnalyzer,\n AjfReportBuilderFormsAnalyzerDialog,\n AjfReportBuilderImageGroup,\n AjfReportBuilderProperties,\n AjfReportBuilderRendererWidget,\n AjfReportBuilderThemeColor,\n AjfReportBuilderThemeColorDialog,\n AjfReportBuilderToolbar,\n AjfReportBuilderToolbarDialog,\n AjfReportBuilderWidgetsRowButtons,\n AjfReportBuilderWidgetsToolbar,\n AjfReportBuilderWidgetToolbarButton,\n AjfReportBuilder,\n ],\n exports: [\n AjfReportBuilder,\n ],\n providers: [\n AjfReportBuilderService,\n ],\n})\nexport class AjfReportBuilderModule {\n}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport {AjfReportsConfig} from './models';\nexport * from './report-builder-module';\nexport * from './report-builder-service';\nexport * from './report-builder';\nexport * from './tokens';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AjfReportBuilderColumn as ɵgc_ajf_src_material_report_builder_report_builder_c} from './column';\nexport {AjfReportBuilderConditionEditor as ɵgc_ajf_src_material_report_builder_report_builder_d} from './condition-editor';\nexport {AjfReportBuilderContent as ɵgc_ajf_src_material_report_builder_report_builder_e} from './content';\nexport {AjfReportBuilderCustomWidgetDialog as ɵgc_ajf_src_material_report_builder_report_builder_f} from './custom-widget-dialog';\nexport {AjfReportBuilderCustomWidgetToolbarButton as ɵgc_ajf_src_material_report_builder_report_builder_h} from './custom-widget-toolbar-button';\nexport {AjfReportBuilderCustomWidgetsToolbar as ɵgc_ajf_src_material_report_builder_report_builder_g} from './custom-widgets-toolbar';\nexport {AjfReportBuilderFormsAnalyzer as ɵgc_ajf_src_material_report_builder_report_builder_i} from './forms-analyzer';\nexport {AjfReportBuilderFormsAnalyzerDialog as ɵgc_ajf_src_material_report_builder_report_builder_j} from './forms-analyzer-dialog';\nexport {AjfImageFilterPipe as ɵgc_ajf_src_material_report_builder_report_builder_a} from './image-filter';\nexport {AjfReportBuilderImageGroup as ɵgc_ajf_src_material_report_builder_report_builder_k} from './image-group';\nexport {AjfReportBuilderProperties as ɵgc_ajf_src_material_report_builder_report_builder_l} from './properties';\nexport {AjfQuillEditor as ɵgc_ajf_src_material_report_builder_report_builder_b} from './quill-editor';\nexport {AjfReportBuilderRendererWidget as ɵgc_ajf_src_material_report_builder_report_builder_m} from './renderer-widget';\nexport {AjfReportBuilderThemeColor as ɵgc_ajf_src_material_report_builder_report_builder_n} from './theme-color';\nexport {AjfReportBuilderThemeColorDialog as ɵgc_ajf_src_material_report_builder_report_builder_o} from './theme-color-dialog';\nexport {AjfReportBuilderToolbar as ɵgc_ajf_src_material_report_builder_report_builder_p} from './toolbar';\nexport {AjfReportBuilderToolbarDialog as ɵgc_ajf_src_material_report_builder_report_builder_q} from './toolbar-dialog';\nexport {AjfReportBuilderWidgetToolbarButton as ɵgc_ajf_src_material_report_builder_report_builder_t} from './widget-toolbar-button';\nexport {AjfReportBuilderWidgetsRowButtons as ɵgc_ajf_src_material_report_builder_report_builder_r} from './widgets-row-buttons';\nexport {AjfReportBuilderWidgetsToolbar as ɵgc_ajf_src_material_report_builder_report_builder_s} from './widgets-toolbar';"],"names":["InjectionToken","Subject","BehaviorSubject","EventEmitter","startWith","share","scan","filter","publishReplay","refCount","map","AjfWidgetType","combineLatest","deepCopy","AjfNodeType","AjfFieldType","forms","flattenNodes","createFormula","createAggregation","createWidget","Injectable","Optional","Inject","Subscription","timer","Component","ViewEncapsulation","ChangeDetectionStrategy","Input","validateExpression","ViewChild","ChangeDetectorRef","MatDialogRef","MatDialog","sizedEnumToStringArray","AjfAggregationType","AjfImageType","AjfExpressionUtils","AjfValidationService","AjfMonacoEditor","AjfChartType","Pipe","Output","distinctUntilChanged","withLatestFrom","Quill","NG_VALUE_ACCESSOR","forwardRef","NG_VALIDATORS","ElementRef","Renderer2","evaluateExpression","MatSidenav","NgModule","AjfCommonModule","AjfImageModule","AjfMapModule","AjfMonacoEditorModule","AjfTableModule","AjfTextModule","ColorPickerModule","CommonModule","DragDropModule","FormsModule","MatButtonModule","MatButtonToggleModule","MatCardModule","MatDialogModule","MatGridListModule","MatIconModule","MatListModule","MatSelectModule","MatSidenavModule","MatSlideToggleModule","MatSliderModule","MatTabsModule","MatToolbarModule","MatTooltipModule","AjfTranslocoModule"],"mappings":"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"}
|