From 5aa6e5bdee46cfdee1ad5756a55f52f1b4bfd34d Mon Sep 17 00:00:00 2001 From: Jean Machuca Date: Sun, 12 Jan 2025 16:53:22 -0300 Subject: [PATCH] fix code ergonomics --- build/QCObjects-SDK.js | 124 +- build/css/base-modal.css | 43 - build/css/basic-layout-embedded-nav.css | 14 - build/css/basic-layout.css | 76 - build/css/components/horizontal-list.css | 64 - build/css/components/list.css | 57 - build/css/components/splashscreen.css | 111 - build/css/modal.css | 46 - build/index.cjs | 4 - build/index.js | 24 +- build/index.mjs | 2 - build/js/org.qcobjects.base.components.js | 75 + .../org.qcobjects.cloud.auth.session.data.js | 199 +- ....qcobjects.cloud.auth.session.usertoken.js | 148 +- build/js/org.qcobjects.components.grid.js | 88 +- build/js/org.qcobjects.components.js | 382 +-- build/js/org.qcobjects.components.list.js | 81 +- .../org.qcobjects.components.notifications.js | 213 +- build/js/org.qcobjects.components.slider.js | 352 +- .../org.qcobjects.components.splashscreen.js | 253 +- build/js/org.qcobjects.controllers.form.js | 296 +- build/js/org.qcobjects.controllers.grid.js | 441 +-- build/js/org.qcobjects.controllers.js | 22 +- build/js/org.qcobjects.controllers.list.js | 383 +-- build/js/org.qcobjects.controllers.slider.js | 207 +- build/js/org.qcobjects.controllers.swagger.js | 117 +- build/js/org.qcobjects.effects.base.js | 86 + build/js/org.qcobjects.effects.extended.js | 318 ++ build/js/org.qcobjects.effects.js | 420 +-- build/js/org.qcobjects.i18n_messages.js | 79 +- build/js/org.qcobjects.modal.controllers.js | 31 +- build/js/org.qcobjects.modal.effects.js | 51 +- build/js/org.qcobjects.models.js | 22 +- build/js/org.qcobjects.tools.canvas.js | 55 +- build/js/org.qcobjects.tools.js | 13 +- build/js/org.qcobjects.tools.layouts.js | 91 +- build/js/org.qcobjects.views.js | 22 +- .../components/modalyoulose.tpl.html | 3 - .../templates/components/modalyouwin.tpl.html | 4 - .../components/splashscreen.tpl.html | 128 - .../templates/components/swagger-ui.tpl.html | 22 - eslint.config.mjs | 3 +- package-lock.json | 465 ++- package.json | 56 +- public/QCObjects-SDK.js | 696 ---- public/QCObjects-SDK.js.map | 7 - public/browser/index.js | 2984 +++++++++++++++++ public/browser/index.js.map | 7 + public/cjs/index.cjs | 2976 ++++++++++++++++ public/cjs/index.cjs.map | 7 + public/css/base-modal.css | 2 - public/css/base-modal.css.map | 7 - public/css/basic-layout-embedded-nav.css | 2 - public/css/basic-layout-embedded-nav.css.map | 7 - public/css/basic-layout.css | 2 - public/css/basic-layout.css.map | 7 - public/css/components/horizontal-list.css | 2 - public/css/components/horizontal-list.css.map | 7 - public/css/components/list.css | 2 - public/css/components/list.css.map | 7 - public/css/components/splashscreen.css | 2 - public/css/components/splashscreen.css.map | 7 - public/css/modal.css | 2 - public/css/modal.css.map | 7 - public/esm/index.mjs | 2959 ++++++++++++++++ public/esm/index.mjs.map | 7 + public/index.cjs | 4 - public/index.d.ts | 79 - public/index.js | 27 - public/index.mjs | 2 - .../components/modalyoulose.tpl.html | 3 - .../templates/components/modalyouwin.tpl.html | 4 - .../components/splashscreen.tpl.html | 128 - .../templates/components/swagger-ui.tpl.html | 22 - public/types/index.d.ts | 757 ++++- src/QCObjects-SDK.ts | 125 +- src/js/org.qcobjects.base.components.ts | 83 + ...org.qcobjects.cloud.auth.session.data.d.ts | 1 - .../org.qcobjects.cloud.auth.session.data.ts | 197 +- ...cobjects.cloud.auth.session.usertoken.d.ts | 2 - ....qcobjects.cloud.auth.session.usertoken.ts | 164 +- src/js/org.qcobjects.components.d.ts | 10 - src/js/org.qcobjects.components.grid.d.ts | 3 - src/js/org.qcobjects.components.grid.ts | 89 +- src/js/org.qcobjects.components.list.d.ts | 3 - src/js/org.qcobjects.components.list.ts | 46 +- ...rg.qcobjects.components.notifications.d.ts | 1 - .../org.qcobjects.components.notifications.ts | 24 +- src/js/org.qcobjects.components.slider.d.ts | 1 - src/js/org.qcobjects.components.slider.ts | 353 +- ...org.qcobjects.components.splashscreen.d.ts | 28 - .../org.qcobjects.components.splashscreen.ts | 70 +- src/js/org.qcobjects.components.ts | 412 +-- src/js/org.qcobjects.controllers.d.ts | 1 - src/js/org.qcobjects.controllers.form.d.ts | 1 - src/js/org.qcobjects.controllers.form.ts | 299 +- src/js/org.qcobjects.controllers.grid.d.ts | 1 - src/js/org.qcobjects.controllers.grid.ts | 448 +-- src/js/org.qcobjects.controllers.list.d.ts | 1 - src/js/org.qcobjects.controllers.list.ts | 412 +-- src/js/org.qcobjects.controllers.slider.d.ts | 1 - src/js/org.qcobjects.controllers.slider.ts | 245 +- src/js/org.qcobjects.controllers.swagger.d.ts | 1 - src/js/org.qcobjects.controllers.swagger.ts | 102 +- src/js/org.qcobjects.controllers.ts | 16 +- src/js/org.qcobjects.effects.base.ts | 97 + src/js/org.qcobjects.effects.d.ts | 20 - src/js/org.qcobjects.effects.extended.ts | 350 ++ src/js/org.qcobjects.effects.ts | 400 +-- src/js/org.qcobjects.i18n_messages.d.ts | 1 - src/js/org.qcobjects.i18n_messages.ts | 88 +- src/js/org.qcobjects.modal.controllers.d.ts | 1 - src/js/org.qcobjects.modal.controllers.ts | 26 +- src/js/org.qcobjects.modal.effects.d.ts | 1 - src/js/org.qcobjects.modal.effects.ts | 40 +- src/js/org.qcobjects.models.d.ts | 1 - src/js/org.qcobjects.models.ts | 19 +- src/js/org.qcobjects.tools.canvas.d.ts | 1 - src/js/org.qcobjects.tools.canvas.ts | 54 +- src/js/org.qcobjects.tools.d.ts | 1 - src/js/org.qcobjects.tools.layouts.d.ts | 1 - src/js/org.qcobjects.tools.layouts.ts | 91 +- src/js/org.qcobjects.tools.ts | 8 +- src/js/org.qcobjects.views.d.ts | 1 - src/js/org.qcobjects.views.ts | 17 +- src/types/global/index.d.ts | 14 +- tsconfig.d.json | 28 +- tsconfig.jasmine.json | 15 +- tsconfig.json | 27 +- 129 files changed, 14517 insertions(+), 6348 deletions(-) delete mode 100644 build/css/base-modal.css delete mode 100644 build/css/basic-layout-embedded-nav.css delete mode 100644 build/css/basic-layout.css delete mode 100644 build/css/components/horizontal-list.css delete mode 100644 build/css/components/list.css delete mode 100644 build/css/components/splashscreen.css delete mode 100644 build/css/modal.css delete mode 100644 build/index.cjs delete mode 100644 build/index.mjs create mode 100644 build/js/org.qcobjects.base.components.js create mode 100644 build/js/org.qcobjects.effects.base.js create mode 100644 build/js/org.qcobjects.effects.extended.js delete mode 100644 build/templates/components/modalyoulose.tpl.html delete mode 100644 build/templates/components/modalyouwin.tpl.html delete mode 100644 build/templates/components/splashscreen.tpl.html delete mode 100644 build/templates/components/swagger-ui.tpl.html delete mode 100644 public/QCObjects-SDK.js delete mode 100644 public/QCObjects-SDK.js.map create mode 100644 public/browser/index.js create mode 100644 public/browser/index.js.map create mode 100644 public/cjs/index.cjs create mode 100644 public/cjs/index.cjs.map delete mode 100644 public/css/base-modal.css delete mode 100644 public/css/base-modal.css.map delete mode 100644 public/css/basic-layout-embedded-nav.css delete mode 100644 public/css/basic-layout-embedded-nav.css.map delete mode 100644 public/css/basic-layout.css delete mode 100644 public/css/basic-layout.css.map delete mode 100644 public/css/components/horizontal-list.css delete mode 100644 public/css/components/horizontal-list.css.map delete mode 100644 public/css/components/list.css delete mode 100644 public/css/components/list.css.map delete mode 100644 public/css/components/splashscreen.css delete mode 100644 public/css/components/splashscreen.css.map delete mode 100644 public/css/modal.css delete mode 100644 public/css/modal.css.map create mode 100644 public/esm/index.mjs create mode 100644 public/esm/index.mjs.map delete mode 100644 public/index.cjs delete mode 100644 public/index.d.ts delete mode 100644 public/index.js delete mode 100644 public/index.mjs delete mode 100644 public/templates/components/modalyoulose.tpl.html delete mode 100644 public/templates/components/modalyouwin.tpl.html delete mode 100644 public/templates/components/splashscreen.tpl.html delete mode 100644 public/templates/components/swagger-ui.tpl.html create mode 100644 src/js/org.qcobjects.base.components.ts delete mode 100644 src/js/org.qcobjects.cloud.auth.session.data.d.ts delete mode 100644 src/js/org.qcobjects.cloud.auth.session.usertoken.d.ts delete mode 100644 src/js/org.qcobjects.components.d.ts delete mode 100644 src/js/org.qcobjects.components.grid.d.ts delete mode 100644 src/js/org.qcobjects.components.list.d.ts delete mode 100644 src/js/org.qcobjects.components.notifications.d.ts delete mode 100644 src/js/org.qcobjects.components.slider.d.ts delete mode 100644 src/js/org.qcobjects.components.splashscreen.d.ts delete mode 100644 src/js/org.qcobjects.controllers.d.ts delete mode 100644 src/js/org.qcobjects.controllers.form.d.ts delete mode 100644 src/js/org.qcobjects.controllers.grid.d.ts delete mode 100644 src/js/org.qcobjects.controllers.list.d.ts delete mode 100644 src/js/org.qcobjects.controllers.slider.d.ts delete mode 100644 src/js/org.qcobjects.controllers.swagger.d.ts create mode 100644 src/js/org.qcobjects.effects.base.ts delete mode 100644 src/js/org.qcobjects.effects.d.ts create mode 100644 src/js/org.qcobjects.effects.extended.ts delete mode 100644 src/js/org.qcobjects.i18n_messages.d.ts delete mode 100644 src/js/org.qcobjects.modal.controllers.d.ts delete mode 100644 src/js/org.qcobjects.modal.effects.d.ts delete mode 100644 src/js/org.qcobjects.models.d.ts delete mode 100644 src/js/org.qcobjects.tools.canvas.d.ts delete mode 100644 src/js/org.qcobjects.tools.d.ts delete mode 100644 src/js/org.qcobjects.tools.layouts.d.ts delete mode 100644 src/js/org.qcobjects.views.d.ts diff --git a/build/QCObjects-SDK.js b/build/QCObjects-SDK.js index 91f6689..7201fd4 100644 --- a/build/QCObjects-SDK.js +++ b/build/QCObjects-SDK.js @@ -1,7 +1,7 @@ "use strict"; /* eslint-disable @typescript-eslint/no-empty-function */ /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -25,16 +25,86 @@ * license document, but changing it is not allowed. */ Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalController = exports.ModalMoveDown = exports.ModalMoveUp = exports.ModalFade = exports.WipeDown = exports.WipeUp = exports.WipeRight = exports.WipeLeft = exports.Resize = exports.Radius = exports.Rotate = exports.RotateZ = exports.RotateY = exports.RotateX = exports.MoveYInFromTop = exports.MoveYInFromBottom = exports.MoveXInFromLeft = exports.MoveXInFromRight = exports.Move = exports.Fade = exports.SwaggerUIController = exports.FormValidations = exports.FormController = exports.SliderController = exports.DataGridController = exports.GridController = exports.ListController = exports.GenericController = exports.CubeSplashScreenComponent = exports.VideoSplashScreenComponent = exports.SplashScreenComponent = exports.NotificationComponent = exports.SliderComponent = exports.SlideItemComponent = exports.SlideListComponent = exports.ListComponent = exports.ListItemComponent = exports.GridItemComponent = exports.GridComponent = exports.FormField = exports.SwaggerUIComponent = exports.ModalComponent = exports.ModalEnclosureComponent = exports.EmailField = exports.TextField = exports.InputField = exports.ButtonField = exports.ShadowedComponent = exports.Contact = exports.i18n_messages = void 0; +exports.SessionData = exports.SessionUserToken = exports.BasicLayout = exports.CanvasTool = exports.GridView = void 0; const qcobjects_1 = require("qcobjects"); -const _top = (typeof module === "object" && typeof module.exports === "object") ? (module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {})) : ((typeof global === "object") ? (global) : ((typeof window === "object") ? (window) : ({}))); +var org_qcobjects_i18n_messages_1 = require("./js/org.qcobjects.i18n_messages"); +Object.defineProperty(exports, "i18n_messages", { enumerable: true, get: function () { return org_qcobjects_i18n_messages_1.i18n_messages; } }); +var org_qcobjects_models_1 = require("./js/org.qcobjects.models"); +Object.defineProperty(exports, "Contact", { enumerable: true, get: function () { return org_qcobjects_models_1.Contact; } }); +var org_qcobjects_components_1 = require("./js/org.qcobjects.components"); +Object.defineProperty(exports, "ShadowedComponent", { enumerable: true, get: function () { return org_qcobjects_components_1.ShadowedComponent; } }); +Object.defineProperty(exports, "ButtonField", { enumerable: true, get: function () { return org_qcobjects_components_1.ButtonField; } }); +Object.defineProperty(exports, "InputField", { enumerable: true, get: function () { return org_qcobjects_components_1.InputField; } }); +Object.defineProperty(exports, "TextField", { enumerable: true, get: function () { return org_qcobjects_components_1.TextField; } }); +Object.defineProperty(exports, "EmailField", { enumerable: true, get: function () { return org_qcobjects_components_1.EmailField; } }); +Object.defineProperty(exports, "ModalEnclosureComponent", { enumerable: true, get: function () { return org_qcobjects_components_1.ModalEnclosureComponent; } }); +Object.defineProperty(exports, "ModalComponent", { enumerable: true, get: function () { return org_qcobjects_components_1.ModalComponent; } }); +Object.defineProperty(exports, "SwaggerUIComponent", { enumerable: true, get: function () { return org_qcobjects_components_1.SwaggerUIComponent; } }); +var org_qcobjects_base_components_1 = require("./js/org.qcobjects.base.components"); +Object.defineProperty(exports, "FormField", { enumerable: true, get: function () { return org_qcobjects_base_components_1.FormField; } }); +var org_qcobjects_components_grid_1 = require("./js/org.qcobjects.components.grid"); +Object.defineProperty(exports, "GridComponent", { enumerable: true, get: function () { return org_qcobjects_components_grid_1.GridComponent; } }); +Object.defineProperty(exports, "GridItemComponent", { enumerable: true, get: function () { return org_qcobjects_components_grid_1.GridItemComponent; } }); +var org_qcobjects_components_list_1 = require("./js/org.qcobjects.components.list"); +Object.defineProperty(exports, "ListItemComponent", { enumerable: true, get: function () { return org_qcobjects_components_list_1.ListItemComponent; } }); +Object.defineProperty(exports, "ListComponent", { enumerable: true, get: function () { return org_qcobjects_components_list_1.ListComponent; } }); +var org_qcobjects_components_slider_1 = require("./js/org.qcobjects.components.slider"); +Object.defineProperty(exports, "SlideListComponent", { enumerable: true, get: function () { return org_qcobjects_components_slider_1.SlideListComponent; } }); +Object.defineProperty(exports, "SlideItemComponent", { enumerable: true, get: function () { return org_qcobjects_components_slider_1.SlideItemComponent; } }); +Object.defineProperty(exports, "SliderComponent", { enumerable: true, get: function () { return org_qcobjects_components_slider_1.SliderComponent; } }); +var org_qcobjects_components_notifications_1 = require("./js/org.qcobjects.components.notifications"); +Object.defineProperty(exports, "NotificationComponent", { enumerable: true, get: function () { return org_qcobjects_components_notifications_1.NotificationComponent; } }); +var org_qcobjects_components_splashscreen_1 = require("./js/org.qcobjects.components.splashscreen"); +Object.defineProperty(exports, "SplashScreenComponent", { enumerable: true, get: function () { return org_qcobjects_components_splashscreen_1.SplashScreenComponent; } }); +Object.defineProperty(exports, "VideoSplashScreenComponent", { enumerable: true, get: function () { return org_qcobjects_components_splashscreen_1.VideoSplashScreenComponent; } }); +Object.defineProperty(exports, "CubeSplashScreenComponent", { enumerable: true, get: function () { return org_qcobjects_components_splashscreen_1.CubeSplashScreenComponent; } }); +var org_qcobjects_controllers_1 = require("./js/org.qcobjects.controllers"); +Object.defineProperty(exports, "GenericController", { enumerable: true, get: function () { return org_qcobjects_controllers_1.GenericController; } }); +var org_qcobjects_controllers_list_1 = require("./js/org.qcobjects.controllers.list"); +Object.defineProperty(exports, "ListController", { enumerable: true, get: function () { return org_qcobjects_controllers_list_1.ListController; } }); +var org_qcobjects_controllers_grid_1 = require("./js/org.qcobjects.controllers.grid"); +Object.defineProperty(exports, "GridController", { enumerable: true, get: function () { return org_qcobjects_controllers_grid_1.GridController; } }); +Object.defineProperty(exports, "DataGridController", { enumerable: true, get: function () { return org_qcobjects_controllers_grid_1.DataGridController; } }); +var org_qcobjects_controllers_slider_1 = require("./js/org.qcobjects.controllers.slider"); +Object.defineProperty(exports, "SliderController", { enumerable: true, get: function () { return org_qcobjects_controllers_slider_1.SliderController; } }); +var org_qcobjects_controllers_form_1 = require("./js/org.qcobjects.controllers.form"); +Object.defineProperty(exports, "FormController", { enumerable: true, get: function () { return org_qcobjects_controllers_form_1.FormController; } }); +Object.defineProperty(exports, "FormValidations", { enumerable: true, get: function () { return org_qcobjects_controllers_form_1.FormValidations; } }); +var org_qcobjects_controllers_swagger_1 = require("./js/org.qcobjects.controllers.swagger"); +Object.defineProperty(exports, "SwaggerUIController", { enumerable: true, get: function () { return org_qcobjects_controllers_swagger_1.SwaggerUIController; } }); +var org_qcobjects_effects_1 = require("./js/org.qcobjects.effects"); +Object.defineProperty(exports, "Fade", { enumerable: true, get: function () { return org_qcobjects_effects_1.Fade; } }); +Object.defineProperty(exports, "Move", { enumerable: true, get: function () { return org_qcobjects_effects_1.Move; } }); +Object.defineProperty(exports, "MoveXInFromRight", { enumerable: true, get: function () { return org_qcobjects_effects_1.MoveXInFromRight; } }); +Object.defineProperty(exports, "MoveXInFromLeft", { enumerable: true, get: function () { return org_qcobjects_effects_1.MoveXInFromLeft; } }); +Object.defineProperty(exports, "MoveYInFromBottom", { enumerable: true, get: function () { return org_qcobjects_effects_1.MoveYInFromBottom; } }); +Object.defineProperty(exports, "MoveYInFromTop", { enumerable: true, get: function () { return org_qcobjects_effects_1.MoveYInFromTop; } }); +Object.defineProperty(exports, "RotateX", { enumerable: true, get: function () { return org_qcobjects_effects_1.RotateX; } }); +Object.defineProperty(exports, "RotateY", { enumerable: true, get: function () { return org_qcobjects_effects_1.RotateY; } }); +Object.defineProperty(exports, "RotateZ", { enumerable: true, get: function () { return org_qcobjects_effects_1.RotateZ; } }); +Object.defineProperty(exports, "Rotate", { enumerable: true, get: function () { return org_qcobjects_effects_1.Rotate; } }); +Object.defineProperty(exports, "Radius", { enumerable: true, get: function () { return org_qcobjects_effects_1.Radius; } }); +Object.defineProperty(exports, "Resize", { enumerable: true, get: function () { return org_qcobjects_effects_1.Resize; } }); +Object.defineProperty(exports, "WipeLeft", { enumerable: true, get: function () { return org_qcobjects_effects_1.WipeLeft; } }); +Object.defineProperty(exports, "WipeRight", { enumerable: true, get: function () { return org_qcobjects_effects_1.WipeRight; } }); +Object.defineProperty(exports, "WipeUp", { enumerable: true, get: function () { return org_qcobjects_effects_1.WipeUp; } }); +Object.defineProperty(exports, "WipeDown", { enumerable: true, get: function () { return org_qcobjects_effects_1.WipeDown; } }); +Object.defineProperty(exports, "ModalFade", { enumerable: true, get: function () { return org_qcobjects_effects_1.ModalFade; } }); +Object.defineProperty(exports, "ModalMoveUp", { enumerable: true, get: function () { return org_qcobjects_effects_1.ModalMoveUp; } }); +Object.defineProperty(exports, "ModalMoveDown", { enumerable: true, get: function () { return org_qcobjects_effects_1.ModalMoveDown; } }); +var org_qcobjects_modal_controllers_1 = require("./js/org.qcobjects.modal.controllers"); +Object.defineProperty(exports, "ModalController", { enumerable: true, get: function () { return org_qcobjects_modal_controllers_1.ModalController; } }); +var org_qcobjects_views_1 = require("./js/org.qcobjects.views"); +Object.defineProperty(exports, "GridView", { enumerable: true, get: function () { return org_qcobjects_views_1.GridView; } }); +var org_qcobjects_tools_canvas_1 = require("./js/org.qcobjects.tools.canvas"); +Object.defineProperty(exports, "CanvasTool", { enumerable: true, get: function () { return org_qcobjects_tools_canvas_1.CanvasTool; } }); +var org_qcobjects_tools_layouts_1 = require("./js/org.qcobjects.tools.layouts"); +Object.defineProperty(exports, "BasicLayout", { enumerable: true, get: function () { return org_qcobjects_tools_layouts_1.BasicLayout; } }); +var org_qcobjects_cloud_auth_session_usertoken_1 = require("./js/org.qcobjects.cloud.auth.session.usertoken"); +Object.defineProperty(exports, "SessionUserToken", { enumerable: true, get: function () { return org_qcobjects_cloud_auth_session_usertoken_1.SessionUserToken; } }); +var org_qcobjects_cloud_auth_session_data_1 = require("./js/org.qcobjects.cloud.auth.session.data"); +Object.defineProperty(exports, "SessionData", { enumerable: true, get: function () { return org_qcobjects_cloud_auth_session_data_1.SessionData; } }); // eslint-disable-next-line camelcase (function __qcobjects_sdk__(_top) { "use strict"; @@ -60,38 +130,10 @@ const _top = (typeof module === "object" && typeof module.exports === "object") throw Error("Top context empty: It should either global, module or window"); } const __start__ = qcobjects_1.GlobalSettings.__start__.bind(_top); - let _imports_ = []; - // non-browsers environment // esbuild compatible - _imports_ = [ - new Promise((resolve) => { - require("./js/org.qcobjects.i18n_messages"); - require("./js/org.qcobjects.models"); - require("./js/org.qcobjects.components"); - require("./js/org.qcobjects.components.grid"); - require("./js/org.qcobjects.components.list"); - require("./js/org.qcobjects.components.slider"); - require("./js/org.qcobjects.components.notifications"); - require("./js/org.qcobjects.components.splashscreen"); - require("./js/org.qcobjects.controllers"); - require("./js/org.qcobjects.controllers.grid"); - require("./js/org.qcobjects.controllers.list"); - require("./js/org.qcobjects.controllers.slider"); - require("./js/org.qcobjects.controllers.form"); - require("./js/org.qcobjects.controllers.swagger"); - require("./js/org.qcobjects.effects"); - require("./js/org.qcobjects.modal.controllers"); - require("./js/org.qcobjects.views"); - require("./js/org.qcobjects.tools.canvas"); - require("./js/org.qcobjects.tools.layouts"); - require("./js/org.qcobjects.cloud.auth.session.usertoken"); - require("./js/org.qcobjects.cloud.auth.session.data"); - resolve(); - }) - ]; - _top._sdk_ = Promise.all(_imports_).then(() => { + _top._sdk_ = Promise.resolve().then(() => { qcobjects_1.CONFIG.set("useSDK", true); __start__(); }); } -})(_top); -exports.default = _top; +})(qcobjects_1._top); +exports.default = qcobjects_1._top; diff --git a/build/css/base-modal.css b/build/css/base-modal.css deleted file mode 100644 index 6904b35..0000000 --- a/build/css/base-modal.css +++ /dev/null @@ -1,43 +0,0 @@ -/* The Modal (background) */ -.modal { - display: none; /* Hidden by default */ - position: fixed; /* Stay in place */ - z-index: 1; /* Sit on top */ - padding-top: 100px; /* Location of the box */ - left: 0; - top: 0; - width: 100%; /* Full width */ - height: 100%; /* Full height */ - overflow: auto; /* Enable scroll if needed */ - background-color: rgb(0,0,0); /* Fallback color */ - background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ - border-radius: 12px !important; - border: none !important; -} - -/* Modal Content */ -.modal-content { - background-color: #111; - background-image: radial-gradient( #edeeef,#dee3de,#fcfcfc); - margin: auto; - padding: 20px; - border-radius: 12px !important; - border: 1px solid #909090; - width: 80%; - height:auto; -} -/* The Close Button */ -.close { - color: #aaaaaa; - float: right; - font-size: 28px; - font-weight: bold; -} - -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; -} -.modal * {color:black} diff --git a/build/css/basic-layout-embedded-nav.css b/build/css/basic-layout-embedded-nav.css deleted file mode 100644 index 611d279..0000000 --- a/build/css/basic-layout-embedded-nav.css +++ /dev/null @@ -1,14 +0,0 @@ -/* Responsive layout - makes the two columns/boxes stack on top of each other instead of next to each other, on small screens */ -@media (max-width: 600px), -@media (max-width:460px), -@media (aspect-ratio: 9/16), -@media (aspect-ratio: 10/16), -@media (aspect-ratio: 5/8), -@media (aspect-ratio: 3/4), -@media (aspect-ratio: 2/3){ - nav, article { - width: 100%; - height: auto; - position: relative; - } -} diff --git a/build/css/basic-layout.css b/build/css/basic-layout.css deleted file mode 100644 index e6b8554..0000000 --- a/build/css/basic-layout.css +++ /dev/null @@ -1,76 +0,0 @@ -/** - * QCObjects SDK 1.0 - * ________________ - * - * Author: Jean Machuca - * - * Cross Browser Javascript Framework for MVC Patterns - * QuickCorp/QCObjects is licensed under the - * GNU Lesser General Public License v3.0 - * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt) - * - * Permissions of this copyleft license are conditioned on making available - * complete source code of licensed works and modifications under the same - * license or the GNU GPLv3. Copyright and license notices must be preserved. - * Contributors provide an express grant of patent rights. However, a larger - * work using the licensed work through interfaces provided by the licensed - * work may be distributed under different terms and without source code for - * the larger work. - * - * Copyright (C) 2015 Jean Machuca, - * - * Everyone is permitted to copy and distribute verbatim copies of this - * license document, but changing it is not allowed. -*/ - -@charset "UTF-8"; -/* CSS Document */ - -* { - box-sizing: border-box; - } - - body { - font-family: Arial, Helvetica, sans-serif; - } - - /* Style the header */ - header { - padding: 30px; - text-align: center; - font-size: 20px; - } - - /* Create two columns/boxes that floats next to each other */ - nav { - float: left; - width: 30%; - height: 1080px; - padding: 20px; - } - - /* Style the list inside the menu */ - nav ul { - list-style-type: none; - padding: 0; - } - - article { - float: left; - padding: 20px; - width: 70%; - } - - /* Clear floats after the columns */ - section:after { - content: ""; - display: table; - clear: both; - } - - - /* Style the footer */ - footer { - padding: 10px; - text-align: center; - } diff --git a/build/css/components/horizontal-list.css b/build/css/components/horizontal-list.css deleted file mode 100644 index ee59ee5..0000000 --- a/build/css/components/horizontal-list.css +++ /dev/null @@ -1,64 +0,0 @@ -ul { - display: flex; -} - -li { - display: inline; -} - -ul { - padding: 15px 0 15px 0; - background-color: #f7f6f6 !important; - border-radius: 13px; - box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 2px 0px !important; -} - -ul li { - list-style: none; - margin: 0; - padding: 0; - padding-top: 7px; - padding-bottom: 7px; - padding-left: 10px; - border-bottom: 1px solid white; -} - -ul { - list-style-type: none; -} - - -li:hover { - background: white; - cursor: pointer; -} - -ul li ul { - background: white; - visibility: hidden; - opacity: 0; - min-width: 5rem; - position: relative; - transition: all 0.5s ease; - margin-top: 1rem; - left: 0; - display: none; -} - -ul li:hover > ul, -ul li ul:hover { - visibility: visible; - opacity: 1; - display: inline-block; - margin: 0 auto; - width: 95%; -} - -ul li ul li { - clear: both; - width: 100%; - padding: 1%; -} - ul li { - overflow-x: hidden; -} diff --git a/build/css/components/list.css b/build/css/components/list.css deleted file mode 100644 index b26396b..0000000 --- a/build/css/components/list.css +++ /dev/null @@ -1,57 +0,0 @@ -ul { - padding: 15px 0 15px 0; - background-color: #f7f6f6 !important; - border-radius: 13px; - box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 2px 0px !important; -} - -ul li { - list-style: none; - margin: 0; - padding: 0; - padding-top: 7px; - padding-bottom: 7px; - padding-left: 10px; - border-bottom: 1px solid white; -} - -ul { - list-style-type: none; -} - - -ul, li {display: block;} -li:hover { - background: white; - cursor: pointer; -} - -ul li ul { - background: white; - visibility: hidden; - opacity: 0; - min-width: 5rem; - position: relative; - transition: all 0.5s ease; - margin-top: 1rem; - left: 0; - display: none; -} - -ul li:hover > ul, -ul li ul:hover { - visibility: visible; - opacity: 1; - display: inline-block; - margin: 0 auto; - width: 95%; -} - -ul li ul li { - clear: both; - width: 100%; - padding: 1%; -} - ul li { - overflow-x: hidden; -} diff --git a/build/css/components/splashscreen.css b/build/css/components/splashscreen.css deleted file mode 100644 index ad0f8ca..0000000 --- a/build/css/components/splashscreen.css +++ /dev/null @@ -1,111 +0,0 @@ -:host * { - box-sizing: border-box; -} - -:host { - zoom: 1.0; - width: device-width; - margin: 0; - top: 0; - left: 0; - right: 0; - bottom: 0; - position: absolute; - padding: 0; - min-width: 100vw; - min-height: 100vh; - width: 100vw; - height: 100vh; - overflow: hidden; - background-color: black; -} -#slot-logo::slotted(img) { - vertical-align: middle; - display: block; - width: 100vw; - left: 0; - margin: 0; - padding: 0; - top: 20vh; - bottom: 20vh; - position: absolute; - z-index: 9999999999; - transform-origin: center; - transform-style: preserve-3d; - filter: blur(0em); - transition: filter 0.5s; -} - -:host * { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-touch-callout: none; - /* prevent callout to copy image, etc when tap to hold */ - -webkit-text-size-adjust: none; - /* prevent webkit from resizing text to fit */ - -webkit-user-select: none; - /* prevent copy paste, to allow, change 'none' to 'text' */ -} - -/* FOCUS */ -:host summary:focus, -:host a:focus, -:host button:focus { - outline: none; -} - -.splashscreen, -.fullscreen-bg { - padding: 0; - margin: 0; - top: 0; - left: 0; - right: 0; - bottom: 0; - padding: 0; - background-attachment: fixed; - background-position: center; - background-clip: content-box; - background-size: cover; - position: absolute; - min-width: 100vw; - min-height: 100vh; - width: 100vw; - height: 100vh; - z-index: 0; - overflow: hidden; -} - -.splashscreen .splashcontent { - top: 0; - left: 0; - right: 0; - bottom: 0; - margin: 0 auto; - width: 100vw; - height: 100vh; - padding: 0; - overflow: hidden; - z-index: 1; -} - -.splashscreen .splashcontent p { - color: white; -} - -video.fullscreen-bg__video { - top: 0; - left: 0; - bottom: 0; - right: 0; - margin: 0; - padding: 0; - position: absolute; - min-width: 100vw; - min-height: 100vh; - overflow: hidden; - z-index: 0; - object-fit: cover; -} diff --git a/build/css/modal.css b/build/css/modal.css deleted file mode 100644 index f988730..0000000 --- a/build/css/modal.css +++ /dev/null @@ -1,46 +0,0 @@ -@import url("./base-modal.css"); - -.modal details { - border: 1px 0 0 1px solid #aaa; - border-radius: 4px; - padding: .5em .5em 0; -} - -.modal summary { - font-weight: bold; - margin: -.5em -.5em 0; - padding: .5em; -} - -.modal details[open] { - padding: .5em; -} - -.modal details[open] summary { - border-bottom: 1px solid #aaa; - margin-bottom: .5em; -} - -.modal summary::-webkit-details-marker { - display: none -} - -.modal summary:after { - border-radius: 5px; - content: "+"; - color: #111111; - float: left; - font-size: 1.5em; - font-weight: bold; - margin: -5px 10px 0 0; - padding: 0; - text-align: center; - width: 20px; -} -.modal details[open] summary:after { - content: "-"; -} - -.modal ul { - list-style-type: none; -} diff --git a/build/index.cjs b/build/index.cjs deleted file mode 100644 index 54ae179..0000000 --- a/build/index.cjs +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const sdk = require("./QCObjects-SDK"); -module.exports = sdk; diff --git a/build/index.js b/build/index.js index b145465..d486b2a 100644 --- a/build/index.js +++ b/build/index.js @@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? ( }) : function(o, v) { o["default"] = v; }); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); Object.defineProperty(exports, "__esModule", { value: true }); const sdk = __importStar(require("./QCObjects-SDK")); exports.default = sdk; diff --git a/build/index.mjs b/build/index.mjs deleted file mode 100644 index ad2da3a..0000000 --- a/build/index.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import sdk from "./QCObjects-SDK.js"; -export default sdk; diff --git a/build/js/org.qcobjects.base.components.js b/build/js/org.qcobjects.base.components.js new file mode 100644 index 0000000..705d7aa --- /dev/null +++ b/build/js/org.qcobjects.base.components.js @@ -0,0 +1,75 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FormField = void 0; +const qcobjects_1 = require("qcobjects"); +class FormField extends qcobjects_1.Component { + fieldType; + cached = false; + reload = true; + body; + name; + data; + constructor(o) { + o.name = (typeof o.name !== "undefined") ? (o.name) : ("form-field"); + super(o); + } + createBindingEvents() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); // every child with data-field set + } + else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); // every child with data-field set and tagname is equal to fieldType property + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak]; + _obj.addEventListener("change", () => { + qcobjects_1.logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("blur", () => { + qcobjects_1.logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("focus", () => { + qcobjects_1.logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("keydown", () => { + qcobjects_1.logger.debug("Executing keydown event binding"); + this.executeBindings(); + }); + } + } + executeBinding(_obj) { + const _datamodel = _obj.getAttribute("data-field"); + qcobjects_1.logger.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel] = _obj.value; + } + executeBindings() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); // every child with data-field set + } + else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); // every child with data-field set and tagname is equal to fieldType property + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak]; + const _datamodel = _obj.getAttribute("data-field"); + qcobjects_1.logger.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel] = _obj.value; + } + } + done(standardResponse) { + const _ret_ = super.done(standardResponse); + this.executeBindings(); + this.createBindingEvents(); + qcobjects_1.logger.debug("Field loaded: " + this.fieldType + "[name=" + this.name + "]"); + return _ret_; + } +} +exports.FormField = FormField; +(0, qcobjects_1.Package)("org.qcobjects.base.components", [ + FormField +]); diff --git a/build/js/org.qcobjects.cloud.auth.session.data.js b/build/js/org.qcobjects.cloud.auth.session.data.js index ab1cf02..bb76c06 100644 --- a/build/js/org.qcobjects.cloud.auth.session.data.js +++ b/build/js/org.qcobjects.cloud.auth.session.data.js @@ -1,9 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const qcobjects_1 = require("qcobjects"); -const org_qcobjects_cloud_auth_session_usertoken_1 = require("./org.qcobjects.cloud.auth.session.usertoken"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -26,100 +22,101 @@ const org_qcobjects_cloud_auth_session_usertoken_1 = require("./org.qcobjects.cl * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function () { - "use strict"; - (0, qcobjects_1.Package)("org.qcobjects.cloud.auth.session.data", [ - class SessionData extends qcobjects_1.InheritClass { - constructor() { - super(...arguments); - this.__session_container__ = null; - } - /** - * Sets the session container - * - * @param {*} sessionContainer1, sessionContainer2, ... - * - */ - setSessionContainer() { - // eslint-disable-next-line prefer-rest-params - this.__session_container__ = [...arguments]; - } - /** - * Gets the session container - * - * @return {*} sessionContainer - */ - getSessionContainer() { - if (typeof this.__session_container__ === "undefined" || this.__session_container__ === null) { - throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)"); - } - return this.__session_container__; - } - /** - * Gets the session data - * - * @return {*} sessionData - */ - getSessionData(...args) { - // eslint-disable-next-line prefer-rest-params - const s = sessionStorage.getItem(`${this.index(args)}`); - let sessionData; - if (s !== null) { - sessionData = JSON.parse(s); - } - if (typeof sessionData === "undefined" || sessionData === null) { - sessionData = {}; - } - return sessionData; - } - /** - * Returns an index of the session - * - * @param {string} valueForIndex - * @return {string} index - * @example sessionInstance.index("me@email.com", "myusername") - * - */ - index(...args) { - if (typeof org_qcobjects_cloud_auth_session_usertoken_1.SessionUserToken === "undefined") { - throw new Error("You need to import SessionUserToken first: Import (\"org.qcobjects.cloud.auth.session.usertoken\")"); - } - return `session_${btoa(org_qcobjects_cloud_auth_session_usertoken_1.SessionUserToken.getGlobalUserToken(args))}`; - } - /** - * Saves the session instance - * - */ - save(...args) { - const s = (0, qcobjects_1._DataStringify)(this.sessionData); - sessionStorage.setItem(`${this.index(args)}`, s); - } - /** - * - * Gets the session value - * - * @param {*} name - * @param {*} defaultValue - * @return {*} - */ - get(name, defaultValue) { - const sessionData = this.getSessionData(this.getSessionContainer()); - return (typeof sessionData[name] !== "undefined") ? (sessionData[name]) : (defaultValue); - } - /** - * - * Sets the session value - * - * @param {*} name - * @param {*} value - */ - set(name, value) { - const sessionContainer = this.getSessionContainer(); - const sessionData = this.getSessionData(sessionContainer); - this.sessionData = sessionData; - this.sessionData[name] = value; - this.save(sessionContainer); - } +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SessionData = void 0; +const qcobjects_1 = require("qcobjects"); +const org_qcobjects_cloud_auth_session_usertoken_1 = require("./org.qcobjects.cloud.auth.session.usertoken"); +class SessionData extends qcobjects_1.InheritClass { + __session_container__ = null; + sessionData; + /** + * Sets the session container + * + * @param {*} sessionContainer1, sessionContainer2, ... + * + */ + setSessionContainer() { + // eslint-disable-next-line prefer-rest-params + this.__session_container__ = [...arguments]; + } + /** + * Gets the session container + * + * @return {*} sessionContainer + */ + getSessionContainer() { + if (typeof this.__session_container__ === "undefined" || this.__session_container__ === null) { + throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)"); + } + return this.__session_container__; + } + /** + * Gets the session data + * + * @return {*} sessionData + */ + getSessionData(...args) { + const s = sessionStorage.getItem(`${this.index(args)}`); + let sessionData; + if (s !== null) { + sessionData = JSON.parse(s); + } + if (typeof sessionData === "undefined" || sessionData === null) { + sessionData = {}; + } + return sessionData; + } + /** + * Returns an index of the session + * + * @param {string} valueForIndex + * @return {string} index + * @example sessionInstance.index("me@email.com", "myusername") + * + */ + index(...args) { + if (typeof org_qcobjects_cloud_auth_session_usertoken_1.SessionUserToken === "undefined") { + throw new Error("You need to import SessionUserToken first: Import (\"org.qcobjects.cloud.auth.session.usertoken\")"); } - ]); -})(); + return `session_${btoa(org_qcobjects_cloud_auth_session_usertoken_1.SessionUserToken.getGlobalUserToken(args))}`; + } + /** + * Saves the session instance + * + */ + save(...args) { + const s = (0, qcobjects_1._DataStringify)(this.sessionData); + sessionStorage.setItem(`${this.index(args)}`, s); + } + /** + * + * Gets the session value + * + * @param {*} name + * @param {*} defaultValue + * @return {*} + */ + get(name, defaultValue) { + const sessionData = this.getSessionData(this.getSessionContainer()); + return (typeof sessionData[name] !== "undefined") ? (sessionData[name]) : (defaultValue); + } + /** + * + * Sets the session value + * + * @param {*} name + * @param {*} value + */ + set(name, value) { + const sessionContainer = this.getSessionContainer(); + const sessionData = this.getSessionData(sessionContainer); + this.sessionData = sessionData; + this.sessionData[name] = value; + this.save(sessionContainer); + } +} +exports.SessionData = SessionData; +(0, qcobjects_1.Package)("org.qcobjects.cloud.auth.session.data", [ + SessionData +]); diff --git a/build/js/org.qcobjects.cloud.auth.session.usertoken.js b/build/js/org.qcobjects.cloud.auth.session.usertoken.js index c6b9c12..9a6da3b 100644 --- a/build/js/org.qcobjects.cloud.auth.session.usertoken.js +++ b/build/js/org.qcobjects.cloud.auth.session.usertoken.js @@ -1,9 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.SessionUserToken = void 0; -const qcobjects_1 = require("qcobjects"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -26,84 +22,76 @@ const qcobjects_1 = require("qcobjects"); * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -const _top = (typeof module === "object" && typeof module.exports === "object") ? (module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {})) : ((typeof global === "object") ? (global) : ((typeof window === "object") ? (window) : ({}))); -(function (global) { - "use strict"; - class SessionUserToken extends qcobjects_1.InheritClass { - constructor(o) { - super(o); - // eslint-disable-next-line @typescript-eslint/no-this-alias - const __instance__ = this; - this.__cache__ = new qcobjects_1.ComplexStorageCache({ - index: __instance__.__instanceID.toString(), - load() { - let __token__; - if (typeof navigator !== "undefined" && typeof origin !== "undefined") { - __token__ = qcobjects_1._Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin); - } - else { - __token__ = qcobjects_1._Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, qcobjects_1.CONFIG.get("domain", "localhost")); - } - SessionUserToken.user = { - priority: __instance__.__instanceID.toString(), - token: __token__ - }; - return SessionUserToken.user; - }, - alternate(cacheController) { - SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); // setting dataObject with the cached value +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SessionUserToken = void 0; +const qcobjects_1 = require("qcobjects"); +class SessionUserToken extends qcobjects_1.InheritClass { + static user = {}; + __cache__; + __instanceID; + constructor(o) { + super(o); + const __instance__ = this; + this.__cache__ = new qcobjects_1.ComplexStorageCache({ + index: __instance__.__instanceID.toString(), + load() { + let __token__; + if (typeof navigator !== "undefined" && typeof origin !== "undefined") { + __token__ = qcobjects_1._Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin); } - }); - } - static generateIndex(s) { - return (typeof Buffer !== "undefined") ? (Buffer.from(s, "ascii").toString("base64")) : (btoa(s)); - } - getGlobalUser(...args) { - const username = [args].join("|"); - const __index__ = "userToken_" + SessionUserToken.generateIndex(username); - if (typeof global.get(__index__) === "undefined" || global.get(__index__) === null) { - global.set(__index__, (0, qcobjects_1.New)(SessionUserToken, { - username - })); + else { + __token__ = qcobjects_1._Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, qcobjects_1.CONFIG.get("domain", "localhost")); + } + SessionUserToken.user = { + priority: __instance__.__instanceID.toString(), + token: __token__ + }; + return SessionUserToken.user; + }, + alternate(cacheController) { + SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); // setting dataObject with the cached value } - SessionUserToken.user = global.get(__index__).user; - return global.get(__index__).user; - } - getGlobalUserToken(...args) { - return this.getGlobalUser(args).token; - } - getGlobalUserId(...args) { - return this.getGlobalUser(args).id; - } - getGlobalUserPriority(...args) { - return this.getGlobalUser(args).priority; - } - getLoginCredentialsToken(username, password) { - return qcobjects_1._Crypt.encrypt(`${username}${password}`, this.getGlobalUserToken(username)); + }); + } + static generateIndex(s) { + return (typeof Buffer !== "undefined") ? (Buffer.from(s, "ascii").toString("base64")) : (btoa(s)); + } + static getGlobalUser(...args) { + const username = [args].join("|"); + const __index__ = "userToken_" + SessionUserToken.generateIndex(username); + if (typeof qcobjects_1.global.get(__index__) === "undefined" || qcobjects_1.global.get(__index__) === null) { + qcobjects_1.global.set(__index__, (0, qcobjects_1.New)(SessionUserToken, { + username + })); } - closeGlobalSession(...args) { - this.getGlobalUser(args); - const username = [args].join("|"); - const __index__ = "userToken_" + SessionUserToken.generateIndex(username); - if (typeof global.get(__index__) !== "undefined") { - global.get(__index__).__cache__.clear(); - global.set(__index__, null); - SessionUserToken.user = {}; - } + SessionUserToken.user = qcobjects_1.global.get(__index__).user; + return qcobjects_1.global.get(__index__).user; + } + static getGlobalUserToken(...args) { + return SessionUserToken.getGlobalUser(args).token; + } + static getGlobalUserId(...args) { + return SessionUserToken.getGlobalUser(args).id; + } + static getGlobalUserPriority(...args) { + return SessionUserToken.getGlobalUser(args).priority; + } + static getLoginCredentialsToken(username, password) { + return qcobjects_1._Crypt.encrypt(`${username}${password}`, SessionUserToken.getGlobalUserToken(username)); + } + static closeGlobalSession(...args) { + SessionUserToken.getGlobalUser(args); + const username = [args].join("|"); + const __index__ = "userToken_" + SessionUserToken.generateIndex(username); + if (typeof qcobjects_1.global.get(__index__) !== "undefined") { + qcobjects_1.global.get(__index__).__cache__.clear(); + qcobjects_1.global.set(__index__, null); + SessionUserToken.user = {}; } } - SessionUserToken.user = {}; - (0, qcobjects_1.Package)("org.qcobjects.cloud.auth.session.usertoken", [ - SessionUserToken - ]); -})(_top); -const SessionUserToken = _top.SessionUserToken; +} exports.SessionUserToken = SessionUserToken; +(0, qcobjects_1.Package)("org.qcobjects.cloud.auth.session.usertoken", [ + SessionUserToken +]); diff --git a/build/js/org.qcobjects.components.grid.js b/build/js/org.qcobjects.components.grid.js index a53b501..b4066d2 100644 --- a/build/js/org.qcobjects.components.grid.js +++ b/build/js/org.qcobjects.components.grid.js @@ -1,9 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.GridItemComponent = exports.GridComponent = void 0; -const qcobjects_1 = require("qcobjects"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -26,56 +22,42 @@ const qcobjects_1 = require("qcobjects"); * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -const _top = (typeof module === "object" && typeof module.exports === "object") ? (module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {})) : ((typeof global === "object") ? (global) : ((typeof window === "object") ? (window) : ({}))); -(function (global) { - "use strict"; - class GridItemComponent extends qcobjects_1.Component { - constructor() { - super(...arguments); - this.name = "grid-item"; - this.shadowed = true; - this.tplsource = "inline"; - this.template = ` +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GridComponent = exports.GridItemComponent = void 0; +const qcobjects_1 = require("qcobjects"); +class GridItemComponent extends qcobjects_1.Component { + name = "grid-item"; + shadowed = true; + tplsource = "inline"; + template = `

{{description}}

`; - this.cached = false; - } - } - class GridComponent extends qcobjects_1.Component { - constructor(o) { - super(o); - this.name = "grid"; - this.cached = false; - this.view = null; - this.shadowed = true; - this.rows = 3; - this.cols = 3; - this.templateURI = ""; - this.data = {}; - this.tplsource = "inline"; - this.template = "

Loading...

"; - this.body.setAttribute("controllerClass", "DataGridController"); - const subcomponentClass = (this.body.getAttribute("subcomponentClass") !== null) ? (this.body.getAttribute("subcomponentClass")) : ("GridItemComponent"); - this.body.setAttribute("subcomponentClass", subcomponentClass); - } + cached = false; +} +exports.GridItemComponent = GridItemComponent; +class GridComponent extends qcobjects_1.Component { + name = "grid"; + cached = false; + view = null; + shadowed = true; + rows = 3; + cols = 3; + templateURI = ""; + data = {}; + tplsource = "inline"; + template = "

Loading...

"; + body; + constructor(o) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = (this.body.getAttribute("subcomponentClass") !== null) ? (this.body.getAttribute("subcomponentClass")) : ("GridItemComponent"); + this.body.setAttribute("subcomponentClass", subcomponentClass); } - (0, qcobjects_1.Package)("org.qcobjects.components.grid", [ - GridComponent, - GridItemComponent - ]); - global.GridComponent = GridComponent; - global.GridItemComponent = GridItemComponent; -})(_top); -const GridComponent = _top.GridComponent; +} exports.GridComponent = GridComponent; -const GridItemComponent = _top.GridItemComponent; -exports.GridItemComponent = GridItemComponent; +(0, qcobjects_1.Package)("org.qcobjects.components.grid", [ + GridComponent, + GridItemComponent +]); diff --git a/build/js/org.qcobjects.components.js b/build/js/org.qcobjects.components.js index bd1cdae..f3d0af1 100644 --- a/build/js/org.qcobjects.components.js +++ b/build/js/org.qcobjects.components.js @@ -1,5 +1,5 @@ /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -24,130 +24,58 @@ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.SwaggerUIComponent = exports.ModalEnclosureComponent = exports.ModalComponent = exports.EmailField = exports.TextField = exports.InputField = exports.ButtonField = exports.ShadowedComponent = exports.FormField = void 0; +exports.SwaggerUIComponent = exports.ModalComponent = exports.ModalEnclosureComponent = exports.EmailField = exports.TextField = exports.InputField = exports.ButtonField = exports.ShadowedComponent = exports.FormField = void 0; const qcobjects_1 = require("qcobjects"); const org_qcobjects_effects_1 = require("./org.qcobjects.effects"); -const _top = (typeof module === "object" && typeof module.exports === "object") ? (module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {})) : ((typeof global === "object") ? (global) : ((typeof window === "object") ? (window) : ({}))); -(function (global) { - class FormField extends qcobjects_1.Component { - constructor(o) { - o.name = (typeof o.name !== "undefined") ? (o.name) : ("form-field"); - super(o); - this.cached = false; - this.reload = true; - } - createBindingEvents() { - let _objList; - if (typeof this.fieldType === "undefined" || this.fieldType == null) { - _objList = this.body.subelements("*[data-field]"); // every child with data-field set - } - else { - _objList = this.body.subelements(this.fieldType + "[data-field]"); // every child with data-field set and tagname is equal to fieldType property - } - for (let _datak = 0; _datak < _objList.length; _datak++) { - const _obj = _objList[_datak]; - _obj.addEventListener("change", () => { - qcobjects_1.logger.debug("Executing change event binding"); - this.executeBindings(); - }); - _obj.addEventListener("blur", () => { - qcobjects_1.logger.debug("Executing change event binding"); - this.executeBindings(); - }); - _obj.addEventListener("focus", () => { - qcobjects_1.logger.debug("Executing change event binding"); - this.executeBindings(); - }); - _obj.addEventListener("keydown", () => { - qcobjects_1.logger.debug("Executing keydown event binding"); - this.executeBindings(); - }); - } - } - executeBinding(_obj) { - const _datamodel = _obj.getAttribute("data-field"); - qcobjects_1.logger.debug("Binding " + _datamodel + " for " + this.name); - this.data[_datamodel] = _obj.value; - } - executeBindings() { - let _objList; - if (typeof this.fieldType === "undefined" || this.fieldType == null) { - _objList = this.body.subelements("*[data-field]"); // every child with data-field set - } - else { - _objList = this.body.subelements(this.fieldType + "[data-field]"); // every child with data-field set and tagname is equal to fieldType property - } - for (let _datak = 0; _datak < _objList.length; _datak++) { - const _obj = _objList[_datak]; - const _datamodel = _obj.getAttribute("data-field"); - qcobjects_1.logger.debug("Binding " + _datamodel + " for " + this.name); - this.data[_datamodel] = _obj.value; - } - } - done(standardResponse) { - const _ret_ = super.done(standardResponse); - this.executeBindings(); - this.createBindingEvents(); - qcobjects_1.logger.debug("Field loaded: " + this.fieldType + "[name=" + this.name + "]"); - return _ret_; - } +const org_qcobjects_base_components_1 = require("./org.qcobjects.base.components"); +Object.defineProperty(exports, "FormField", { enumerable: true, get: function () { return org_qcobjects_base_components_1.FormField; } }); +class ShadowedComponent extends qcobjects_1.Component { + container = null; + shadowed = true; + cached = false; + controller = null; + view = null; + data = {}; + constructor(o) { + o.body = (0, qcobjects_1._DOMCreateElement)("div"); + super(o); } - (0, qcobjects_1.Package)("org.qcobjects.base.components", [ - FormField - ]); - class ShadowedComponent extends qcobjects_1.Component { - constructor(o) { - o.body = (0, qcobjects_1._DOMCreateElement)("div"); - super(o); - this.container = null; - this.shadowed = true; - this.cached = false; - this.controller = null; - this.view = null; - this.data = {}; - } - } - class ButtonField extends FormField { - constructor(o) { - o.fieldType = "button"; - super(o); - } +} +exports.ShadowedComponent = ShadowedComponent; +class ButtonField extends org_qcobjects_base_components_1.FormField { + constructor(o) { + o.fieldType = "button"; + super(o); } - class InputField extends FormField { - constructor(o) { - o.fieldType = "input"; - super(o); - } +} +exports.ButtonField = ButtonField; +class InputField extends org_qcobjects_base_components_1.FormField { + constructor(o) { + o.fieldType = "input"; + super(o); } - class TextField extends FormField { - constructor(o) { - o.fieldType = "textarea"; - super(o); - } +} +exports.InputField = InputField; +class TextField extends org_qcobjects_base_components_1.FormField { + constructor(o) { + o.fieldType = "textarea"; + super(o); } - class EmailField extends FormField { - constructor(o) { - o.fieldType = "input"; - super(o); - } +} +exports.TextField = TextField; +class EmailField extends org_qcobjects_base_components_1.FormField { + constructor(o) { + o.fieldType = "input"; + super(o); } - class ModalEnclosureComponent extends qcobjects_1.Component { - constructor(o) { - o.body = (0, qcobjects_1._DOMCreateElement)("div"); - super(o); - this.name = "modalenclosure"; - this.tplsource = "inline"; - this.cached = false; - this.basePath = qcobjects_1.CONFIG.get("modalBasePath", qcobjects_1.CONFIG.get("remoteSDKPath", "")); - this.template = ` +} +exports.EmailField = EmailField; +class ModalEnclosureComponent extends qcobjects_1.Component { + name = "modalenclosure"; + tplsource = "inline"; + cached = false; + basePath = qcobjects_1.CONFIG.get("modalBasePath", qcobjects_1.CONFIG.get("remoteSDKPath", "")); + template = ` - -
- - - - -
-
- -
+"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SliderComponent = exports.SlideItemComponent = exports.SlideListComponent = void 0; +const qcobjects_1 = require("qcobjects"); +class SlideListComponent extends qcobjects_1.Component { + tplsource = "inline"; + template = "

Loading...

"; + name = "slidelist"; + body; + constructor(o) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = (this.body.getAttribute("subcomponentClass") !== null) ? (this.body.getAttribute("subcomponentClass")) : ("GridItemComponent"); + this.body.setAttribute("subcomponentClass", subcomponentClass); + } +} +exports.SlideListComponent = SlideListComponent; +class SlideItemComponent extends qcobjects_1.Component { + effectClass = "Fade"; + name = "slider_item"; + data; + template; + tplsource; + constructor(o) { + super(o); + this.data.slideNumber = this.data.__dataIndex + 1; + this.template = ` + + `; + this.tplsource = "inline"; + } +} +exports.SlideItemComponent = SlideItemComponent; +class SliderComponent extends qcobjects_1.Component { + name = "slider"; + template; + tplsource; + shadowed; + data; + body; + __instanceID; + constructor(o) { + super(o); + this.template = ` + + +
+ + + + +
+
+ +
+
+ + `; + this.tplsource = "inline"; + this.shadowed = true; + this.data.SERVICE_CLASS = this.body.getAttribute("serviceClass"); + this.data.sliderHandler = "slider_" + this.__instanceID.toString(); + this.body.setAttribute("controllerClass", "SliderController"); + } +} +exports.SliderComponent = SliderComponent; +(0, qcobjects_1.Package)("org.qcobjects.components.slider", [ + SlideListComponent, + SlideItemComponent, + SliderComponent +]); diff --git a/build/js/org.qcobjects.components.splashscreen.js b/build/js/org.qcobjects.components.splashscreen.js index 68c764d..356f548 100644 --- a/build/js/org.qcobjects.components.splashscreen.js +++ b/build/js/org.qcobjects.components.splashscreen.js @@ -1,6 +1,5 @@ -"use strict"; /** - * QCObjects SDK 2.4.0 + * QCObjects SDK 2.5.0 * ________________ * * Author: Jean Machuca @@ -23,125 +22,120 @@ * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ +"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CubeSplashScreenComponent = exports.VideoSplashScreenComponent = exports.SplashScreenComponent = void 0; const qcobjects_1 = require("qcobjects"); const org_qcobjects_effects_1 = require("./org.qcobjects.effects"); -const _top = (typeof module === "object" && typeof module.exports === "object") ? (module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {})) : ((typeof global === "object") ? (global) : ((typeof window === "object") ? (window) : ({}))); -// eslint-disable-next-line camelcase -(function __splash_screen__(global) { - "use strict"; - class SplashScreenComponent extends qcobjects_1.Component { - constructor(component) { - component.name = (typeof component.name === "undefined") ? ("splashscreen") : (component.name); - const isBrowser = typeof window !== "undefined" && typeof window.self !== "undefined" && window === window.self; - const isStartURL = (location.hash === "" - && location.pathname === "/" && location.search === "") - || qcobjects_1.CONFIG.get("routingWay", "pathname") === "hash" && qcobjects_1.CONFIG.get("start_url", "/") === location.hash - || qcobjects_1.CONFIG.get("routingWay", "pathname") === "pathname" && qcobjects_1.CONFIG.get("start_url", "/") === location.pathname - || qcobjects_1.CONFIG.get("routingWay", "pathname") === "search" && qcobjects_1.CONFIG.get("start_url", "/") === location.search; - const _enabled_ = isBrowser && isStartURL; - if (_enabled_) { - component.basePath = qcobjects_1.CONFIG.get("splashscreenBasePath", qcobjects_1.CONFIG.get("remoteSDKPath", "")); - if (typeof component.data === "undefined") { - component.data = {}; - } - component.data.basePath = component.basePath; +class SplashScreenComponent extends qcobjects_1.Component { + _enabled_; + _bgcolor; + cached = false; + shadowed = true; + body; + shadowRoot; + constructor(component) { + component.name = (typeof component.name === "undefined") ? ("splashscreen") : (component.name); + const isBrowser = typeof window !== "undefined" && typeof window.self !== "undefined" && window === window.self; + const isStartURL = (location.hash === "" + && location.pathname === "/" && location.search === "") + || qcobjects_1.CONFIG.get("routingWay", "pathname") === "hash" && qcobjects_1.CONFIG.get("start_url", "/") === location.hash + || qcobjects_1.CONFIG.get("routingWay", "pathname") === "pathname" && qcobjects_1.CONFIG.get("start_url", "/") === location.pathname + || qcobjects_1.CONFIG.get("routingWay", "pathname") === "search" && qcobjects_1.CONFIG.get("start_url", "/") === location.search; + const _enabled_ = isBrowser && isStartURL; + if (_enabled_) { + component.basePath = qcobjects_1.CONFIG.get("splashscreenBasePath", qcobjects_1.CONFIG.get("remoteSDKPath", "")); + if (typeof component.data === "undefined") { + component.data = {}; + } + component.data.basePath = component.basePath; + } + else { + if (typeof component !== "undefined" && typeof component.body !== "undefined") { + component.body.style.display = "none"; + } + } + super(component); + this._bgcolor = ""; + this._enabled_ = _enabled_; + if (this._enabled_) { + const displayEffectDuration = 1000; + let duration = this.body.getAttribute("duration"); + if (duration === null) { + duration = displayEffectDuration; } else { - if (typeof component !== "undefined" && typeof component.body !== "undefined") { - component.body.style.display = "none"; - } + duration = parseInt(duration.toString()); } - super(component); - this.cached = false; - this.shadowed = true; - this._bgcolor = ""; - this._enabled_ = _enabled_; - if (this._enabled_) { - const displayEffectDuration = 1000; - let duration = this.body.getAttribute("duration"); - if (duration === null) { - duration = displayEffectDuration; - } - else { - duration = parseInt(duration.toString()); - } - this._bgcolor = this.body.style.backgroundColor; - const _helper_ = () => { - setTimeout(() => { - if (!_helper_.executed) { - const _componentRoot = (this.shadowed) ? this.shadowRoot?.host : this.body; - if (typeof global.componentsStack !== "undefined") { - global.componentsStack.filter((c) => c.body.hasAttribute("splashscreen")).map((mainComponent) => { - qcobjects_1.logger.debug(`Splash Screen of Main Component: ${mainComponent.name}`); - mainComponent.splashScreenComponent = this; - const SplashScreenHandler = () => { - if (!SplashScreenHandler.executed) { - const component = mainComponent.splashScreenComponent; - const mainElement = (mainComponent.shadowed) ? mainComponent.shadowRoot?.host : mainComponent.body; - mainComponent._mainPosition = mainElement.style.position; - if (typeof mainElement !== "undefined") { - mainElement.style.position = "fixed"; - } - mainComponent._mainOpacity = mainElement.style.opacity; - _componentRoot.style.width = "100%"; - _componentRoot.style.height = "100%"; - document.body.style.backgroundColor = "#111111"; - mainElement.style.opacity = "0"; - setTimeout(function () { - if (typeof _componentRoot !== "undefined") { - document.body.style.backgroundColor = component?._bgcolor; - _componentRoot.subelements("#slot-logo").map((slotlogo) => { - slotlogo.style.display = "block"; - slotlogo.style.transformOrigin = "center"; - return (new org_qcobjects_effects_1.Resize()).apply(slotlogo, 1, 0); - }); - (new org_qcobjects_effects_1.Fade()).apply(_componentRoot, 1, 0); - } - }, (duration - displayEffectDuration)); - setTimeout(function () { - (new org_qcobjects_effects_1.Fade()).apply(mainElement, 0, 1); - mainElement.style.position = mainComponent._mainPosition; - document.body.style.backgroundColor = component._bgcolor; - if (_componentRoot.parentElement !== null) { - _componentRoot.parentElement.remove(); - } - }, duration); + this._bgcolor = this.body.style.backgroundColor; + const _helper_ = () => { + setTimeout(() => { + if (!_helper_.executed) { + const _componentRoot = (this.shadowed) ? this.shadowRoot?.host : this.body; + if (typeof qcobjects_1.global.componentsStack !== "undefined") { + qcobjects_1.global.componentsStack.filter((c) => c.body.hasAttribute("splashscreen")).map((mainComponent) => { + qcobjects_1.logger.debug(`Splash Screen of Main Component: ${mainComponent.name}`); + mainComponent.splashScreenComponent = this; + const SplashScreenHandler = () => { + if (!SplashScreenHandler.executed) { + const component = mainComponent.splashScreenComponent; + const mainElement = (mainComponent.shadowed) ? mainComponent.shadowRoot?.host : mainComponent.body; + mainComponent._mainPosition = mainElement.style.position; + if (typeof mainElement !== "undefined") { + mainElement.style.position = "fixed"; } - SplashScreenHandler.executed = true; - }; - return mainComponent.addComponentHelper(SplashScreenHandler.bind(mainComponent)); - }); - } - _helper_.executed = true; + mainComponent._mainOpacity = mainElement.style.opacity; + _componentRoot.style.width = "100%"; + _componentRoot.style.height = "100%"; + document.body.style.backgroundColor = "#111111"; + mainElement.style.opacity = "0"; + setTimeout(function () { + if (typeof _componentRoot !== "undefined") { + document.body.style.backgroundColor = component?._bgcolor; + _componentRoot.subelements("#slot-logo").map((slotlogo) => { + slotlogo.style.display = "block"; + slotlogo.style.transformOrigin = "center"; + return (new org_qcobjects_effects_1.Resize()).apply(slotlogo, 1, 0); + }); + (new org_qcobjects_effects_1.Fade()).apply(_componentRoot, 1, 0); + } + }, (duration - displayEffectDuration)); + setTimeout(function () { + (new org_qcobjects_effects_1.Fade()).apply(mainElement, 0, 1); + mainElement.style.position = mainComponent._mainPosition; + document.body.style.backgroundColor = component._bgcolor; + if (_componentRoot.parentElement !== null) { + _componentRoot.parentElement.remove(); + } + }, duration); + } + SplashScreenHandler.executed = true; + }; + return mainComponent.addComponentHelper(SplashScreenHandler.bind(mainComponent)); + }); } - }); - }; - _helper_.executed = false; - this.addComponentHelper(_helper_.bind(component)); - } + _helper_.executed = true; + } + }); + }; + _helper_.executed = false; + this.addComponentHelper(_helper_.bind(component)); } } - (0, qcobjects_1.Package)("org.qcobjects.components.base", [ - SplashScreenComponent - ]); - class VideoSplashScreenComponent extends SplashScreenComponent { - constructor(o) { - o.name = "videosplashscreen"; - super(o); - this.cached = false; - this.shadowed = true; - this.tplsource = "inline"; - this.template = ` + // eslint-disable-next-line no-unused-vars + addComponentHelper(arg0) { + throw new Error("Method not implemented."); + } +} +exports.SplashScreenComponent = SplashScreenComponent; +(0, qcobjects_1.Package)("org.qcobjects.components.base", [ + SplashScreenComponent +]); +class VideoSplashScreenComponent extends SplashScreenComponent { + cached = false; + shadowed = true; + tplsource = "inline"; + template = `
    `; + } + qcobjects_1.logger.debug((0, qcobjects_1._DataStringify)(this.component.data)); + try { + const subcomponentClass = this.component.body.getAttribute("subcomponentClass"); + if (subcomponentClass != null) { + let offset; + let limit; + let pagesNumber; + let list = [...this.component.data]; + let paginateIn = this.component.body.getAttribute("paginate-in"); + paginateIn = (paginateIn !== null) ? (paginateIn) : ("client"); + let page; + if (paginateIn === "client") { + page = this.component.body.getAttribute("page-number"); + page = (isNaN(page) || page === null) ? (-1) : (page); + if (page !== -1) { + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber); + offset = this.getPageIndex(page, pagesNumber, list.length)[0]; + limit = this.getPageIndex(page, pagesNumber, list.length)[1]; + } + else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list = list.slice(offset, limit); } else { - cssLayout = `@import url("${basePath}css/components/list.css");`; - } - if (typeof this._componentRoot !== "undefined") { - this._componentRoot.innerHTML = `
      `; + offset = 0; + limit = list.length; + pagesNumber = 1; } - qcobjects_1.logger.debug((0, qcobjects_1._DataStringify)(this.component.data)); - try { - const subcomponentClass = this.component.body.getAttribute("subcomponentClass"); - if (subcomponentClass != null) { - let offset; - let limit; - let pagesNumber; - let list = [...this.component.data]; - let paginateIn = this.component.body.getAttribute("paginate-in"); - paginateIn = (paginateIn !== null) ? (paginateIn) : ("client"); - let page; - if (paginateIn === "client") { - page = this.component.body.getAttribute("page-number"); - page = (isNaN(page) || page === null) ? (-1) : (page); - if (page !== -1) { - pagesNumber = this.component.body.getAttribute("total-pages"); - pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber); - offset = this.getPageIndex(page, pagesNumber, list.length)[0]; - limit = this.getPageIndex(page, pagesNumber, list.length)[1]; - } - else { - offset = 0; - limit = list.length; - pagesNumber = 1; - } - list = list.slice(offset, limit); - } - else { - offset = 0; - limit = list.length; - pagesNumber = 1; - } - list.map((record, dataIndex) => { - const _ret_ = undefined; - try { - const _body = (0, qcobjects_1._DOMCreateElement)("li"); - record.label = record[this.labelField]; - record.value = record[this.valueField]; - const subcomponent = (0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(subcomponentClass), { - name: "list-item", - data: { - label: record[this.labelField], - value: record[this.valueField], - __dataIndex: dataIndex, - __page: page, - __totalPages: pagesNumber, - __limit: limit, - __offset: offset - }, - templateURI: (0, qcobjects_1.ComponentURI)({ - "COMPONENTS_BASE_PATH": qcobjects_1.CONFIG.get("componentsBasePath", ""), - "COMPONENT_NAME": (0, qcobjects_1.ClassFactory)(subcomponentClass).name, - "TPLEXTENSION": qcobjects_1.CONFIG.get("tplextension", ""), - "TPL_SOURCE": (0, qcobjects_1.ClassFactory)(subcomponentClass).tplsource - }), - body: _body, - template: (0, qcobjects_1.ClassFactory)(subcomponentClass).template - }); - subcomponent.done = this.component.done.bind(subcomponent); + list.map((record, dataIndex) => { + const _ret_ = undefined; + try { + const _body = (0, qcobjects_1._DOMCreateElement)("li"); + record.label = record[this.labelField]; + record.value = record[this.valueField]; + const subcomponent = (0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(subcomponentClass), { + name: "list-item", + data: { + label: record[this.labelField], + value: record[this.valueField], + __dataIndex: dataIndex, + __page: page, + __totalPages: pagesNumber, + __limit: limit, + __offset: offset + }, + templateURI: (0, qcobjects_1.ComponentURI)({ + "COMPONENTS_BASE_PATH": qcobjects_1.CONFIG.get("componentsBasePath", ""), + "COMPONENT_NAME": (0, qcobjects_1.ClassFactory)(subcomponentClass).name, + "TPLEXTENSION": qcobjects_1.CONFIG.get("tplextension", ""), + "TPL_SOURCE": (0, qcobjects_1.ClassFactory)(subcomponentClass).tplsource + }), + body: _body, + template: (0, qcobjects_1.ClassFactory)(subcomponentClass).template + }); + subcomponent.done = this.component.done.bind(subcomponent); + try { + if (subcomponent) { + subcomponent.data.__dataIndex = dataIndex; + if (Object.hasOwnProperty.call(this.component.data, "length")) { + subcomponent.data.__dataLength = this.component.data.length; + } + qcobjects_1.logger.debug("adding subcomponent to body"); + this._componentRoot.subelements("ul").map((ul) => ul.append(subcomponent)); try { - if (subcomponent) { - subcomponent.data.__dataIndex = dataIndex; - if (Object.hasOwnProperty.call(this.component.data, "length")) { - subcomponent.data.__dataLength = this.component.data.length; - } - qcobjects_1.logger.debug("adding subcomponent to body"); - this._componentRoot.subelements("ul").map(ul => ul.append(subcomponent)); - try { - this.component.subcomponents.push(subcomponent); - } - catch (e) { - qcobjects_1.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); - } - } - else { - qcobjects_1.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); - } + this.component.subcomponents.push(subcomponent); } catch (e) { - qcobjects_1.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); + qcobjects_1.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); } } - catch (e) { + else { qcobjects_1.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); } - return _ret_; - }); + } + catch (e) { + qcobjects_1.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } } - else { - qcobjects_1.logger.debug("NO SUBCOMPONENT CLASS IN COMPONENT"); + catch (e) { + qcobjects_1.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); } - } - catch (e) { - qcobjects_1.logger.debug("No data for component"); - } + return _ret_; + }); } - cssGrid() { - const component = this.component; - const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body); - if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { - const s = (0, qcobjects_1._DOMCreateElement)("style"); - const templateRows = "auto ".repeat(this.rows); - const templateCols = "auto ".repeat(this.cols); - const className = "grid" + this.__instanceID.toString(); - s.innerHTML = `.${className}{ - display: grid; \ - grid-template-rows: ${templateRows}; \ - grid-template-columns: ${templateCols}; \ - margin:0 auto; \ - }`; - _componentRoot.append(s); - _componentRoot.classList.add(className); - } + else { + qcobjects_1.logger.debug("NO SUBCOMPONENT CLASS IN COMPONENT"); } - done() { - this.cssGrid(); - const componentInstance = this.component; - qcobjects_1.logger.debug("ListController DONE"); - const serviceClass = this.component.body.getAttribute("serviceClass"); - if (serviceClass != null) { - let offset; - let limit; - let paginateIn = componentInstance.body.getAttribute("paginate-in"); - paginateIn = (paginateIn !== null) ? (paginateIn) : ("client"); - if (paginateIn === "server") { - let page = componentInstance.body.getAttribute("page-number"); - page = (isNaN(page) || page === null) ? (-1) : (page); - let pagesNumber; - if (page !== -1) { - const serverDataCount = (this.component.body.getAttribute("server-data-count") !== null) ? (this.component.body.getAttribute("server-data-count")) : (1); - pagesNumber = this.component.body.getAttribute("total-pages"); - pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber); - offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0]; - limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1]; - // send params in jsonrpc 2.0 style - componentInstance.serviceData = (typeof componentInstance.serviceData !== "undefined") ? (componentInstance.serviceData) : ({}); - componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== "undefined") ? (componentInstance.serviceData.params) : ({}); - componentInstance.serviceData.params.offset = offset; - componentInstance.serviceData.params.limit = limit; - } - } - (0, qcobjects_1.serviceLoader)((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(serviceClass), { - data: componentInstance.serviceData - }), false).then((successfulResponse) => { - // This will show the service response as a plain text - qcobjects_1.logger.debug("DONE SERVICE COMPONENT"); - successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template); - if (typeof successfulResponse.service.JSONresponse.result !== "undefined") { - qcobjects_1.logger.debug((0, qcobjects_1._DataStringify)(successfulResponse.service.JSONresponse.result)); - componentInstance.data = successfulResponse.service.JSONresponse.result; - } - else { - componentInstance.data = successfulResponse.service.JSONresponse; - } - this.addSubcomponents(); - }, (failedResponse) => { - qcobjects_1.logger.debug(failedResponse); - }).catch((e) => { - qcobjects_1.logger.debug("Something went wrong when calling the service from: " + serviceClass); - qcobjects_1.logger.debug(e.message); - }); + } + catch (e) { + qcobjects_1.logger.debug(`No data for component: ${e}`); + } + } + cssGrid() { + const component = this.component; + const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body); + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = (0, qcobjects_1._DOMCreateElement)("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; \ + grid-template-rows: ${templateRows}; \ + grid-template-columns: ${templateCols}; \ + margin:0 auto; \ + }`; + _componentRoot.append(s); + _componentRoot.classList.add(className); + } + } + done() { + this.cssGrid(); + const componentInstance = this.component; + qcobjects_1.logger.debug("ListController DONE"); + const serviceClass = this.component.body.getAttribute("serviceClass"); + if (serviceClass != null) { + let offset; + let limit; + let paginateIn = componentInstance.body.getAttribute("paginate-in"); + paginateIn = (paginateIn !== null) ? (paginateIn) : ("client"); + if (paginateIn === "server") { + let page = componentInstance.body.getAttribute("page-number"); + page = (isNaN(page) || page === null) ? (-1) : (page); + let pagesNumber; + if (page !== -1) { + const serverDataCount = (this.component.body.getAttribute("server-data-count") !== null) ? (this.component.body.getAttribute("server-data-count")) : (1); + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber); + offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0]; + limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1]; + // send params in jsonrpc 2.0 style + componentInstance.serviceData = (typeof componentInstance.serviceData !== "undefined") ? (componentInstance.serviceData) : ({}); + componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== "undefined") ? (componentInstance.serviceData.params) : ({}); + componentInstance.serviceData.params.offset = offset; + componentInstance.serviceData.params.limit = limit; } } + (0, qcobjects_1.serviceLoader)((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(serviceClass), { + data: componentInstance.serviceData + }), false).then((successfulResponse) => { + // This will show the service response as a plain text + qcobjects_1.logger.debug("DONE SERVICE COMPONENT"); + successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template); + if (typeof successfulResponse.service.JSONresponse.result !== "undefined") { + qcobjects_1.logger.debug((0, qcobjects_1._DataStringify)(successfulResponse.service.JSONresponse.result)); + componentInstance.data = successfulResponse.service.JSONresponse.result; + } + else { + componentInstance.data = successfulResponse.service.JSONresponse; + } + this.addSubcomponents(); + }, (failedResponse) => { + qcobjects_1.logger.debug(failedResponse); + }).catch((e) => { + qcobjects_1.logger.debug("Something went wrong when calling the service from: " + serviceClass); + qcobjects_1.logger.debug(e.message); + }); } - ]); -})(); + } +} +exports.ListController = ListController; +(0, qcobjects_1.Package)("org.qcobjects.controllers.list", [ + ListController +]); diff --git a/build/js/org.qcobjects.controllers.slider.js b/build/js/org.qcobjects.controllers.slider.js index 3057d5e..ca7496f 100644 --- a/build/js/org.qcobjects.controllers.slider.js +++ b/build/js/org.qcobjects.controllers.slider.js @@ -1,8 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const qcobjects_1 = require("qcobjects"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -25,107 +22,105 @@ const qcobjects_1 = require("qcobjects"); * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function (global) { - "use strict"; - (0, qcobjects_1.Package)("org.qcobjects.controllers.slider", [ - class SliderController extends qcobjects_1.Controller { - constructor({ component, dependencies = [], duration = 7100, slideIndex = 0, interval = null, sliderHandlerName = null }) { - super({ component, dependencies, duration, slideIndex, interval, sliderHandlerName }); - this.slideIndex = 0; - this.duration = 7100; - this.interval = null; - this.sliderHandlerName = ""; - this.component = component; - this._componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body); - this.sliderHandlerName = "slider_" + this.component.__instanceID.toString(); - global.set(this.sliderHandlerName, this); - } - stop() { - if (this.interval != null) { - clearInterval(this.interval); - } - } - plusSlidesAndStop(n) { - this.stop(); - this.plusSlides(n); - } - plusSlides(n) { - this.showSlides(this.slideIndex += n); - } - currentSlide(n) { - this.stop(); - this.showSlides(this.slideIndex = n); - } - automate() { - this.interval = setInterval(() => { - this.plusSlides(1); - }, this.duration); - } - showSlides(n) { - const slides = this._componentRoot?.subelements(".qcoSlides"); - const dots = this._componentRoot?.subelements(".qcoSlider__dots--dot"); - if (n > (slides.length - 1)) { - this.slideIndex = 0; - } - if (n < 0) { - this.slideIndex = 0; - } - slides.filter((slide, index) => { return index !== this.slideIndex; }).map((slide) => { - return ((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)("Fade"), {})).apply(slide, 1, 0); - }); - dots.filter((dot, index) => { return index !== this.slideIndex; }).map((dot) => { - return dot.classList.remove("active"); - }); - try { - dots[this.slideIndex].classList.add("active"); - } - catch (e) { - qcobjects_1.logger.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${e.message}`); - } - setTimeout(() => { - slides.filter((slide, index) => { return index !== this.slideIndex; }).map((slide) => { - slide.style.display = "none"; - return slide.style.display; - }); - try { - slides[this.slideIndex].style.display = "block"; - ((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)("Fade"), {})).apply(slides[this.slideIndex], 0, 1); - } - catch (e) { - qcobjects_1.logger.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${e.message}`); - } - }, 700); - } - fillDots() { - const slides = this._componentRoot?.subelements(".qcoSlides"); - slides.map((slide, index) => { - const dotHTML = document.createElement("span"); - const dotContent = ``; - dotHTML.innerHTML = dotContent; - return this._componentRoot?.subelements(".qcoSlider__dots")[0].append(dotHTML); - }); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SliderController = void 0; +const qcobjects_1 = require("qcobjects"); +class SliderController extends qcobjects_1.Controller { + slideIndex = 0; + duration = 7100; + interval = null; + sliderHandlerName = ""; + _componentRoot; + component; + constructor({ component, dependencies = [], duration = 7100, slideIndex = 0, interval = null, sliderHandlerName = null }) { + super({ component, dependencies, duration, slideIndex, interval, sliderHandlerName }); + this.component = component; + this._componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body); + this.sliderHandlerName = "slider_" + this.component.__instanceID.toString(); + global.set(this.sliderHandlerName, this); + } + stop() { + if (this.interval != null) { + clearInterval(this.interval); + } + } + plusSlidesAndStop(n) { + this.stop(); + this.plusSlides(n); + } + plusSlides(n) { + this.showSlides(this.slideIndex += n); + } + currentSlide(n) { + this.stop(); + this.showSlides(this.slideIndex = n); + } + automate() { + this.interval = setInterval(() => { + this.plusSlides(1); + }, this.duration); + } + showSlides(n) { + const slides = this._componentRoot?.subelements(".qcoSlides"); + const dots = this._componentRoot?.subelements(".qcoSlider__dots--dot"); + if (n > (slides.length - 1)) { + this.slideIndex = 0; + } + if (n < 0) { + this.slideIndex = 0; + } + slides.filter((slide, index) => { return index !== this.slideIndex; }).map((slide) => { + return ((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)("Fade"), {})).apply(slide, 1, 0); + }); + // eslint-disable-next-line no-unused-vars + dots.filter((dot, index) => { return index !== this.slideIndex; }).map((dot) => { + return dot.classList.remove("active"); + }); + try { + dots[this.slideIndex].classList.add("active"); + } + catch (e) { + qcobjects_1.logger.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${e.message}`); + } + setTimeout(() => { + slides.filter((slide, index) => { return index !== this.slideIndex; }).map((slide) => { + slide.style.display = "none"; + return slide.style.display; + }); + try { + slides[this.slideIndex].style.display = "block"; + ((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)("Fade"), {})).apply(slides[this.slideIndex], 0, 1); } - done() { - const slides = this._componentRoot?.subelements(".qcoSlides"); - slides.filter((slide, index) => { return index !== this.slideIndex; }).map((slide) => { - slide.style.display = "none"; - return slide.style.display; - }); - setTimeout(() => { - this.fillDots(); - this.slideIndex = 0; - this.showSlides(this.slideIndex); - this.automate(); - }, 3000); + catch (e) { + qcobjects_1.logger.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${e.message}`); } - } - ]); -})((typeof module === "object" && typeof module.exports === "object") ? (module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {})) : ((typeof global === "object") ? (global) : ((typeof window === "object") ? (window) : ({})))); + }, 700); + } + fillDots() { + const slides = this._componentRoot?.subelements(".qcoSlides"); + slides.map((slide, index) => { + const dotHTML = document.createElement("span"); + const dotContent = ``; + dotHTML.innerHTML = dotContent; + return this._componentRoot?.subelements(".qcoSlider__dots")[0].append(dotHTML); + }); + } + done() { + const slides = this._componentRoot?.subelements(".qcoSlides"); + slides.filter((slide, index) => { return index !== this.slideIndex; }).map((slide) => { + slide.style.display = "none"; + return slide.style.display; + }); + setTimeout(() => { + this.fillDots(); + this.slideIndex = 0; + this.showSlides(this.slideIndex); + this.automate(); + }, 3000); + } +} +exports.SliderController = SliderController; +(0, qcobjects_1.Package)("org.qcobjects.controllers.slider", [ + SliderController +]); diff --git a/build/js/org.qcobjects.controllers.swagger.js b/build/js/org.qcobjects.controllers.swagger.js index a1ebf48..7c1e250 100644 --- a/build/js/org.qcobjects.controllers.swagger.js +++ b/build/js/org.qcobjects.controllers.swagger.js @@ -1,50 +1,75 @@ +/** + * QCObjects SDK 2.5 + * ________________ + * + * Author: Jean Machuca + * + * Cross Browser Javascript Framework for MVC Patterns + * QuickCorp/QCObjects is licensed under the + * GNU Lesser General Public License v3.0 + * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt) + * + * Permissions of this copyleft license are conditioned on making available + * complete source code of licensed works and modifications under the same + * license or the GNU GPLv3. Copyright and license notices must be preserved. + * Contributors provide an express grant of patent rights. However, a larger + * work using the licensed work through interfaces provided by the licensed + * work may be distributed under different terms and without source code for + * the larger work. + * + * Copyright (C) 2015 Jean Machuca, + * + * Everyone is permitted to copy and distribute verbatim copies of this + * license document, but changing it is not allowed. + */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.SwaggerUIController = void 0; const qcobjects_1 = require("qcobjects"); -(function () { - "use strict"; - (0, qcobjects_1.Package)("org.qcobjects.controllers.swagger", [ - class SwaggerUIController extends qcobjects_1.Controller { - startSwaggerUI() { - // Begin Swagger UI call region - if (typeof SwaggerUIBundle !== "undefined") { - /* eslint-disable no-undef */ - const ui = SwaggerUIBundle({ - url: qcobjects_1.CONFIG.get("swagger-ui-url", "https://petstore.swagger.io/v2/swagger.json"), - dom_id: "#" + qcobjects_1.CONFIG.get("swagger-ui-dom_id", "swagger-ui"), - deepLinking: true, - presets: [ - SwaggerUIBundle.presets.apis, - SwaggerUIStandalonePreset - ], - plugins: [ - SwaggerUIBundle.plugins.DownloadUrl - ], - layout: "StandaloneLayout" - }); - // End Swagger UI call region - window.ui = ui; - } - } - done() { - this.component.body.innerHTML = "
      "; - const swaggerUIPackagePath = qcobjects_1.CONFIG.get("swagger-ui-package-path", "node_modules/swagger-ui-dist/"); - this.dependencies?.push((0, qcobjects_1.New)(qcobjects_1.SourceJS, { - url: swaggerUIPackagePath + "swagger-ui-standalone-preset.js", - external: qcobjects_1.CONFIG.get("swagger-ui-external", false) - })); - this.dependencies?.push((0, qcobjects_1.New)(qcobjects_1.SourceCSS, { - url: swaggerUIPackagePath + "swagger-ui.css", - external: qcobjects_1.CONFIG.get("swagger-ui-external", false) - })); - this.dependencies?.push((0, qcobjects_1.New)(qcobjects_1.SourceJS, { - url: swaggerUIPackagePath + "swagger-ui-bundle.js", - external: qcobjects_1.CONFIG.get("swagger-ui-external", false), - done: () => { - this.startSwaggerUI(); - } - })); - } +class SwaggerUIController extends qcobjects_1.Controller { + component; + dependencies; + startSwaggerUI() { + // Begin Swagger UI call region + if (typeof SwaggerUIBundle !== "undefined") { + const ui = SwaggerUIBundle({ + url: qcobjects_1.CONFIG.get("swagger-ui-url", "https://petstore.swagger.io/v2/swagger.json"), + dom_id: "#" + qcobjects_1.CONFIG.get("swagger-ui-dom_id", "swagger-ui"), + deepLinking: true, + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + }); + // End Swagger UI call region + window.ui = ui; } - ]); -})(); + } + done() { + this.component.body.innerHTML = "
      "; + const swaggerUIPackagePath = qcobjects_1.CONFIG.get("swagger-ui-package-path", "node_modules/swagger-ui-dist/"); + this.dependencies?.push((0, qcobjects_1.New)(qcobjects_1.SourceJS, { + url: swaggerUIPackagePath + "swagger-ui-standalone-preset.js", + external: qcobjects_1.CONFIG.get("swagger-ui-external", false) + })); + this.dependencies?.push((0, qcobjects_1.New)(qcobjects_1.SourceCSS, { + url: swaggerUIPackagePath + "swagger-ui.css", + external: qcobjects_1.CONFIG.get("swagger-ui-external", false) + })); + this.dependencies?.push((0, qcobjects_1.New)(qcobjects_1.SourceJS, { + url: swaggerUIPackagePath + "swagger-ui-bundle.js", + external: qcobjects_1.CONFIG.get("swagger-ui-external", false), + done: () => { + this.startSwaggerUI(); + } + })); + } +} +exports.SwaggerUIController = SwaggerUIController; +(0, qcobjects_1.Package)("org.qcobjects.controllers.swagger", [ + SwaggerUIController +]); diff --git a/build/js/org.qcobjects.effects.base.js b/build/js/org.qcobjects.effects.base.js new file mode 100644 index 0000000..631f01f --- /dev/null +++ b/build/js/org.qcobjects.effects.base.js @@ -0,0 +1,86 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Move = exports.Fade = void 0; +const qcobjects_1 = require("qcobjects"); +class Fade extends qcobjects_1.Effect { + duration = 1000; + static duration; + constructor(o) { + super(o); + this.duration = o?.duration; + } + apply(element, alphaFrom, alphaTo) { + const da = alphaTo - alphaFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const alpha = alphaFrom + (progress * da / 100); + qcobjects_1.logger.debug("alpha: " + alpha.toString()); + element.style.opacity = alpha.toString(); + } + }); + } + static apply(element, alphaFrom, alphaTo) { + const da = alphaTo - alphaFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const alpha = alphaFrom + (progress * da / 100); + qcobjects_1.logger.debug("alpha: " + alpha.toString()); + element.style.opacity = alpha.toString(); + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.Fade = Fade; +class Move extends qcobjects_1.Effect { + duration = 1000; + static duration; + static apply(element, xfrom, yfrom, xto, yto) { + const dx = xto - xfrom; + const dy = yto - yfrom; + element.style.transform = "translate(" + xfrom + "px," + yfrom + "px)"; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const y = yfrom + (progress * dy / 100); + const x = xfrom + (progress * dx / 100); + qcobjects_1.logger.debug("x: " + x.toString() + " y:" + y.toString()); + element.style.transform = "translate(" + x + "px," + y + "px)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.Move = Move; +(0, qcobjects_1.Package)("org.qcobjects.effects.base", [ + Fade, + Move +]); diff --git a/build/js/org.qcobjects.effects.extended.js b/build/js/org.qcobjects.effects.extended.js new file mode 100644 index 0000000..753e0d1 --- /dev/null +++ b/build/js/org.qcobjects.effects.extended.js @@ -0,0 +1,318 @@ +/** + * QCObjects SDK 2.5 + * ________________ + * + * Author: Jean Machuca + * + * Cross Browser Javascript Framework for MVC Patterns + * QuickCorp/QCObjects is licensed under the + * GNU Lesser General Public License v3.0 + * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt) + * + * Permissions of this copyleft license are conditioned on making available + * complete source code of licensed works and modifications under the same + * license or the GNU GPLv3. Copyright and license notices must be preserved. + * Contributors provide an express grant of patent rights. However, a larger + * work using the licensed work through interfaces provided by the licensed + * work may be distributed under different terms and without source code for + * the larger work. + * + * Copyright (C) 2015 Jean Machuca, + * + * Everyone is permitted to copy and distribute verbatim copies of this + * license document, but changing it is not allowed. + */ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.WipeDown = exports.WipeUp = exports.WipeRight = exports.WipeLeft = exports.Resize = exports.Radius = exports.Rotate = exports.RotateZ = exports.RotateY = exports.RotateX = exports.MoveYInFromTop = exports.MoveYInFromBottom = exports.MoveXInFromLeft = exports.MoveXInFromRight = void 0; +const qcobjects_1 = require("qcobjects"); +const org_qcobjects_effects_base_1 = require("./org.qcobjects.effects.base"); +class MoveXInFromRight extends org_qcobjects_effects_base_1.Move { + duration = 1000; + static apply(element) { + org_qcobjects_effects_base_1.Move.apply.call(this, element, element.width, 0, 0, 0); + } +} +exports.MoveXInFromRight = MoveXInFromRight; +class MoveXInFromLeft extends org_qcobjects_effects_base_1.Move { + duration = 1000; + static apply(element) { + org_qcobjects_effects_base_1.Move.apply.call(this, element, -element.width, 0, 0, 0); + } +} +exports.MoveXInFromLeft = MoveXInFromLeft; +class MoveYInFromBottom extends org_qcobjects_effects_base_1.Move { + duration = 1000; + static apply(element) { + org_qcobjects_effects_base_1.Move.apply.call(this, element, 0, element.height, 0, 0); + } +} +exports.MoveYInFromBottom = MoveYInFromBottom; +class MoveYInFromTop extends org_qcobjects_effects_base_1.Move { + duration = 1000; + static apply(element) { + org_qcobjects_effects_base_1.Move.apply.call(this, element, 0, -element.height, 0, 0); + } +} +exports.MoveYInFromTop = MoveYInFromTop; +class RotateX extends qcobjects_1.Effect { + duration = 1000; + static duration; + static apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + (progress * da / 100)); + qcobjects_1.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(1,0,0," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.RotateX = RotateX; +class RotateY extends qcobjects_1.Effect { + duration = 1000; + static duration; + static apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + (progress * da / 100)); + qcobjects_1.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(0,1,0," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.RotateY = RotateY; +class RotateZ extends qcobjects_1.Effect { + duration = 1000; + apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + (progress * da / 100)); + qcobjects_1.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(0,0,1," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.RotateZ = RotateZ; +class Rotate extends qcobjects_1.Effect { + duration = 1000; + apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + (progress * da / 100)); + qcobjects_1.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(1,1,1," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.Rotate = Rotate; +class Radius extends qcobjects_1.Effect { + duration = 1000; + apply(element, radiusFrom, radiusTo) { + const dr = radiusTo - radiusFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const radius = radiusFrom + (progress * dr / 100); + qcobjects_1.logger.debug("radius: " + radius.toString()); + element.style.borderRadius = radius.toString() + "px"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.Radius = Radius; +class Resize extends qcobjects_1.Effect { + duration = 1000; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + (progress * ds / 100); + qcobjects_1.logger.debug("resize: " + scale.toString()); + element.style.transformOrigin = "center"; + element.style.transform = "scale(" + scale + "," + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.Resize = Resize; +class WipeLeft extends qcobjects_1.Effect { + duration = 1000; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + (progress * ds / 100); + qcobjects_1.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "right"; + element.style.transform = "scaleX(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.WipeLeft = WipeLeft; +class WipeRight extends qcobjects_1.Effect { + duration = 1000; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + (progress * ds / 100); + qcobjects_1.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "left"; + element.style.transform = "scaleX(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.WipeRight = WipeRight; +class WipeUp extends qcobjects_1.Effect { + duration = 1000; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + (progress * ds / 100); + qcobjects_1.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "bottom"; + element.style.transform = "scaleY(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.WipeUp = WipeUp; +class WipeDown extends qcobjects_1.Effect { + duration = 1000; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + qcobjects_1.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + (progress * ds / 100); + qcobjects_1.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "top"; + element.style.transform = "scaleY(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +} +exports.WipeDown = WipeDown; +(0, qcobjects_1.Package)("org.qcobjects.effects.extended", [ + MoveXInFromRight, + MoveXInFromLeft, + MoveYInFromBottom, + MoveYInFromTop, + RotateX, + RotateY, + RotateZ, + Rotate, + Radius, + Resize, + WipeLeft, + WipeRight, + WipeUp, + WipeDown +]); diff --git a/build/js/org.qcobjects.effects.js b/build/js/org.qcobjects.effects.js index 6dc0271..e87ff07 100644 --- a/build/js/org.qcobjects.effects.js +++ b/build/js/org.qcobjects.effects.js @@ -1,9 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ModalMoveUp = exports.ModalMoveDown = exports.ModalFade = exports.WipeDown = exports.WipeUp = exports.WipeRight = exports.WipeLeft = exports.Resize = exports.Radius = exports.Rotate = exports.RotateZ = exports.RotateY = exports.RotateX = exports.MoveYInFromTop = exports.MoveYInFromBottom = exports.MoveXInFromLeft = exports.MoveXInFromRight = exports.Move = exports.Fade = void 0; -const qcobjects_1 = require("qcobjects"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -26,392 +22,28 @@ const qcobjects_1 = require("qcobjects"); * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -const _top = (typeof module === "object" && typeof module.exports === "object") ? (module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {})) : ((typeof global === "object") ? (global) : ((typeof window === "object") ? (window) : ({}))); -(function () { - "use strict"; - class Fade extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, alphaFrom, alphaTo) { - const da = alphaTo - alphaFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const alpha = alphaFrom + (progress * da / 100); - qcobjects_1.logger.debug("alpha: " + alpha.toString()); - element.style.opacity = alpha.toString(); - } - }); - } - } - class Move extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, xfrom, yfrom, xto, yto) { - const dx = xto - xfrom; - const dy = yto - yfrom; - element.style.transform = "translate(" + xfrom + "px," + yfrom + "px)"; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const y = yfrom + (progress * dy / 100); - const x = xfrom + (progress * dx / 100); - qcobjects_1.logger.debug("x: " + x.toString() + " y:" + y.toString()); - element.style.transform = "translate(" + x + "px," + y + "px)"; - } - }); - } - } - (0, qcobjects_1.Package)("org.qcobjects.effects.base", [ - Fade, - Move - ]); - class MoveXInFromRight extends Move { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element) { - super.apply.call(this, element, element.width, 0, 0, 0); - } - } - class MoveXInFromLeft extends Move { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element) { - super.apply.call(this, element, -element.width, 0, 0, 0); - } - } - class MoveYInFromBottom extends Move { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element) { - super.apply.call(this, element, 0, element.height, 0, 0); - } - } - class MoveYInFromTop extends Move { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element) { - super.apply.call(this, element, 0, -element.height, 0, 0); - } - } - class RotateX extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, angleFrom, angleTo) { - const da = angleTo - angleFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const angle = Math.round(angleFrom + (progress * da / 100)); - qcobjects_1.logger.debug("angle: " + angle.toString()); - element.style.transform = "rotate3d(1,0,0," + angle.toString() + "deg)"; - } - }); - } - } - class RotateY extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, angleFrom, angleTo) { - const da = angleTo - angleFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const angle = Math.round(angleFrom + (progress * da / 100)); - qcobjects_1.logger.debug("angle: " + angle.toString()); - element.style.transform = "rotate3d(0,1,0," + angle.toString() + "deg)"; - } - }); - } - } - class RotateZ extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, angleFrom, angleTo) { - const da = angleTo - angleFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const angle = Math.round(angleFrom + (progress * da / 100)); - qcobjects_1.logger.debug("angle: " + angle.toString()); - element.style.transform = "rotate3d(0,0,1," + angle.toString() + "deg)"; - } - }); - } - } - class Rotate extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, angleFrom, angleTo) { - const da = angleTo - angleFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const angle = Math.round(angleFrom + (progress * da / 100)); - qcobjects_1.logger.debug("angle: " + angle.toString()); - element.style.transform = "rotate3d(1,1,1," + angle.toString() + "deg)"; - } - }); - } - } - class Radius extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, radiusFrom, radiusTo) { - const dr = radiusTo - radiusFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const radius = radiusFrom + (progress * dr / 100); - qcobjects_1.logger.debug("radius: " + radius.toString()); - element.style.borderRadius = radius.toString() + "px"; - } - }); - } - } - class Resize extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, scaleFrom, scaleTo) { - const ds = scaleTo - scaleFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const scale = scaleFrom + (progress * ds / 100); - qcobjects_1.logger.debug("resize: " + scale.toString()); - element.style.transformOrigin = "center"; - element.style.transform = "scale(" + scale + "," + scale + ")"; - } - }); - } - } - class WipeLeft extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, scaleFrom, scaleTo) { - const ds = scaleTo - scaleFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const scale = scaleFrom + (progress * ds / 100); - qcobjects_1.logger.debug("wipe: " + scale.toString()); - element.style.transformOrigin = "right"; - element.style.transform = "scaleX(" + scale + ")"; - } - }); - } - } - class WipeRight extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, scaleFrom, scaleTo) { - const ds = scaleTo - scaleFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const scale = scaleFrom + (progress * ds / 100); - qcobjects_1.logger.debug("wipe: " + scale.toString()); - element.style.transformOrigin = "left"; - element.style.transform = "scaleX(" + scale + ")"; - } - }); - } - } - class WipeUp extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, scaleFrom, scaleTo) { - const ds = scaleTo - scaleFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const scale = scaleFrom + (progress * ds / 100); - qcobjects_1.logger.debug("wipe: " + scale.toString()); - element.style.transformOrigin = "bottom"; - element.style.transform = "scaleY(" + scale + ")"; - } - }); - } - } - class WipeDown extends qcobjects_1.Effect { - constructor() { - super(...arguments); - this.duration = 1000; - } - apply(element, scaleFrom, scaleTo) { - const ds = scaleTo - scaleFrom; - this.animate({ - duration: this.duration, - timing(timeFraction) { - return timeFraction; - }, - draw(progress) { - qcobjects_1.logger.debug("animation progress: " + progress.toString()); - const scale = scaleFrom + (progress * ds / 100); - qcobjects_1.logger.debug("wipe: " + scale.toString()); - element.style.transformOrigin = "top"; - element.style.transform = "scaleY(" + scale + ")"; - } - }); - } - } - (0, qcobjects_1.Package)("org.qcobjects.effects.extended", [ - MoveXInFromRight, - MoveXInFromLeft, - MoveYInFromBottom, - MoveYInFromTop, - RotateX, - RotateY, - RotateZ, - Rotate, - Radius, - Resize, - WipeLeft, - WipeRight, - WipeUp, - WipeDown - ]); - class ModalFade extends Fade { - constructor() { - super(...arguments); - this.duration = 500; - } - } - class ModalMoveDown extends Move { - constructor() { - super(...arguments); - this.duration = 300; - } - } - class ModalMoveUp extends Move { - constructor() { - super(...arguments); - this.duration = 800; - } - } - (0, qcobjects_1.Package)("org.qcobjects.modal.effects", [ - ModalFade, - ModalMoveDown, - ModalMoveUp - ]); -})(); -const Fade = _top.Fade; -exports.Fade = Fade; -const Move = _top.Fade; -exports.Move = Move; -const MoveXInFromRight = _top.MoveXInFromRight; -exports.MoveXInFromRight = MoveXInFromRight; -const MoveXInFromLeft = _top.MoveXInFromLeft; -exports.MoveXInFromLeft = MoveXInFromLeft; -const MoveYInFromBottom = _top.MoveYInFromBottom; -exports.MoveYInFromBottom = MoveYInFromBottom; -const MoveYInFromTop = _top.MoveYInFromTop; -exports.MoveYInFromTop = MoveYInFromTop; -const RotateX = _top.RotateX; -exports.RotateX = RotateX; -const RotateY = _top.RotateY; -exports.RotateY = RotateY; -const RotateZ = _top.RotateZ; -exports.RotateZ = RotateZ; -const Rotate = _top.Rotate; -exports.Rotate = Rotate; -const Radius = _top.Radius; -exports.Radius = Radius; -const Resize = _top.Resize; -exports.Resize = Resize; -const WipeLeft = _top.WipeLeft; -exports.WipeLeft = WipeLeft; -const WipeRight = _top.WipeRight; -exports.WipeRight = WipeRight; -const WipeUp = _top.WipeUp; -exports.WipeUp = WipeUp; -const WipeDown = _top.WipeDown; -exports.WipeDown = WipeDown; -const ModalFade = _top.ModalFade; -exports.ModalFade = ModalFade; -const ModalMoveDown = _top.ModalMoveDown; -exports.ModalMoveDown = ModalMoveDown; -const ModalMoveUp = _top.ModalMoveUp; -exports.ModalMoveUp = ModalMoveUp; +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalMoveDown = exports.ModalMoveUp = exports.ModalFade = exports.WipeDown = exports.WipeUp = exports.WipeRight = exports.WipeLeft = exports.Resize = exports.Radius = exports.Rotate = exports.RotateZ = exports.RotateY = exports.RotateX = exports.MoveYInFromTop = exports.MoveYInFromBottom = exports.MoveXInFromLeft = exports.MoveXInFromRight = exports.Move = exports.Fade = void 0; +var org_qcobjects_effects_base_1 = require("./org.qcobjects.effects.base"); +Object.defineProperty(exports, "Fade", { enumerable: true, get: function () { return org_qcobjects_effects_base_1.Fade; } }); +Object.defineProperty(exports, "Move", { enumerable: true, get: function () { return org_qcobjects_effects_base_1.Move; } }); +var org_qcobjects_effects_extended_1 = require("./org.qcobjects.effects.extended"); +Object.defineProperty(exports, "MoveXInFromRight", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.MoveXInFromRight; } }); +Object.defineProperty(exports, "MoveXInFromLeft", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.MoveXInFromLeft; } }); +Object.defineProperty(exports, "MoveYInFromBottom", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.MoveYInFromBottom; } }); +Object.defineProperty(exports, "MoveYInFromTop", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.MoveYInFromTop; } }); +Object.defineProperty(exports, "RotateX", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.RotateX; } }); +Object.defineProperty(exports, "RotateY", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.RotateY; } }); +Object.defineProperty(exports, "RotateZ", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.RotateZ; } }); +Object.defineProperty(exports, "Rotate", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.Rotate; } }); +Object.defineProperty(exports, "Radius", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.Radius; } }); +Object.defineProperty(exports, "Resize", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.Resize; } }); +Object.defineProperty(exports, "WipeLeft", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.WipeLeft; } }); +Object.defineProperty(exports, "WipeRight", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.WipeRight; } }); +Object.defineProperty(exports, "WipeUp", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.WipeUp; } }); +Object.defineProperty(exports, "WipeDown", { enumerable: true, get: function () { return org_qcobjects_effects_extended_1.WipeDown; } }); +var org_qcobjects_modal_effects_1 = require("./org.qcobjects.modal.effects"); +Object.defineProperty(exports, "ModalFade", { enumerable: true, get: function () { return org_qcobjects_modal_effects_1.ModalFade; } }); +Object.defineProperty(exports, "ModalMoveUp", { enumerable: true, get: function () { return org_qcobjects_modal_effects_1.ModalMoveUp; } }); +Object.defineProperty(exports, "ModalMoveDown", { enumerable: true, get: function () { return org_qcobjects_modal_effects_1.ModalMoveDown; } }); diff --git a/build/js/org.qcobjects.i18n_messages.js b/build/js/org.qcobjects.i18n_messages.js index fd06a4a..02ca441 100644 --- a/build/js/org.qcobjects.i18n_messages.js +++ b/build/js/org.qcobjects.i18n_messages.js @@ -1,8 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const qcobjects_1 = require("qcobjects"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -25,48 +22,38 @@ const qcobjects_1 = require("qcobjects"); * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function (global) { - "use strict"; - // eslint-disable-next-line camelcase - class i18n_messages extends qcobjects_1.InheritClass { - constructor({ messages = [] }) { - super({ - messages - }); - if (qcobjects_1.CONFIG.get("use_i18n", false)) { - qcobjects_1.CONFIG.set("lang", "en"); - if (!global.get("i18n")) { - global.set("i18n", { - messages - }); - } - else { - global.set("i18n", { - messages: global.get("i18n").messages.concat(messages) - }); - } +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.i18n_messages = void 0; +const qcobjects_1 = require("qcobjects"); +class i18n_messages extends qcobjects_1.InheritClass { + constructor({ messages = [] }) { + super({ + messages + }); + if (qcobjects_1.CONFIG.get("use_i18n", false)) { + qcobjects_1.CONFIG.set("lang", "en"); + if (!qcobjects_1.global.get("i18n")) { + qcobjects_1.global.set("i18n", { + messages + }); + } + else { + qcobjects_1.global.set("i18n", { + messages: qcobjects_1.global.get("i18n").messages.concat(messages) + }); } } - _load_i18n_packages_() { - // eslint-disable-next-line array-callback-return, camelcase - return qcobjects_1.CONFIG.get("i18n_languages", []).map((i18n_packagename) => { - // eslint-disable-next-line camelcase - (0, qcobjects_1.Import)(`org.quickcorp.i18n_messages.${i18n_packagename}`); - }); - } } - (0, qcobjects_1.Package)("org.qcobjects.i18n_messages", [ - // eslint-disable-next-line camelcase - i18n_messages - ]); - // eslint-disable-next-line new-cap - (new i18n_messages({}))._load_i18n_packages_(); -})((typeof module === "object" && typeof module.exports === "object") ? (module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {})) : ((typeof global === "object") ? (global) : ((typeof window === "object") ? (window) : ({})))); + _load_i18n_packages_() { + // eslint-disable-next-line array-callback-return + return qcobjects_1.CONFIG.get("i18n_languages", []).map((i18n_packagename) => { + (0, qcobjects_1.Import)(`org.quickcorp.i18n_messages.${i18n_packagename}`); + }); + } +} +exports.i18n_messages = i18n_messages; +(0, qcobjects_1.Package)("org.qcobjects.i18n_messages", [ + i18n_messages +]); +(new i18n_messages({}))._load_i18n_packages_(); diff --git a/build/js/org.qcobjects.modal.controllers.js b/build/js/org.qcobjects.modal.controllers.js index e314c5d..f683624 100644 --- a/build/js/org.qcobjects.modal.controllers.js +++ b/build/js/org.qcobjects.modal.controllers.js @@ -1,8 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const qcobjects_1 = require("qcobjects"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -25,14 +22,18 @@ const qcobjects_1 = require("qcobjects"); * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function () { - "use strict"; - (0, qcobjects_1.Package)("org.qcobjects.modal.controllers", [ - class ModalController extends qcobjects_1.Controller { - done() { - const component = this.component; - component.body.innerHTML = component.body.innerHTML.replace("/{{content}}/g", component.submodal.template); - } - } - ]); -})(); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalController = void 0; +const qcobjects_1 = require("qcobjects"); +class ModalController extends qcobjects_1.Controller { + component; + done() { + const component = this.component; + component.body.innerHTML = component.body.innerHTML.replace("/{{content}}/g", component.submodal.template); + } +} +exports.ModalController = ModalController; +(0, qcobjects_1.Package)("org.qcobjects.modal.controllers", [ + ModalController +]); diff --git a/build/js/org.qcobjects.modal.effects.js b/build/js/org.qcobjects.modal.effects.js index dc2bb8a..0841e11 100644 --- a/build/js/org.qcobjects.modal.effects.js +++ b/build/js/org.qcobjects.modal.effects.js @@ -1,9 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const qcobjects_1 = require("qcobjects"); -const org_qcobjects_effects_1 = require("./org.qcobjects.effects"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -26,26 +22,25 @@ const org_qcobjects_effects_1 = require("./org.qcobjects.effects"); * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function () { - "use strict"; - (0, qcobjects_1.Package)("org.qcobjects.modal.effects", [ - class ModalFade extends org_qcobjects_effects_1.Fade { - constructor() { - super(...arguments); - this.duration = 500; - } - }, - class ModalMoveDown extends org_qcobjects_effects_1.Move { - constructor() { - super(...arguments); - this.duration = 300; - } - }, - class ModalMoveUp extends org_qcobjects_effects_1.Move { - constructor() { - super(...arguments); - this.duration = 800; - } - } - ]); -})(); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalMoveDown = exports.ModalMoveUp = exports.ModalFade = void 0; +const qcobjects_1 = require("qcobjects"); +const org_qcobjects_effects_1 = require("./org.qcobjects.effects"); +class ModalFade extends org_qcobjects_effects_1.Fade { + duration = 500; +} +exports.ModalFade = ModalFade; +class ModalMoveUp extends org_qcobjects_effects_1.Move { + duration = 800; +} +exports.ModalMoveUp = ModalMoveUp; +class ModalMoveDown extends org_qcobjects_effects_1.Move { + duration = 300; +} +exports.ModalMoveDown = ModalMoveDown; +(0, qcobjects_1.Package)("org.qcobjects.modal.effects", [ + ModalFade, + ModalMoveDown, + ModalMoveUp +]); diff --git a/build/js/org.qcobjects.models.js b/build/js/org.qcobjects.models.js index 43a4c08..be1e84f 100644 --- a/build/js/org.qcobjects.models.js +++ b/build/js/org.qcobjects.models.js @@ -1,8 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const qcobjects_1 = require("qcobjects"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -25,10 +22,13 @@ const qcobjects_1 = require("qcobjects"); * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function () { - "use strict"; - (0, qcobjects_1.Package)("org.qcobjects.models", [ - class Contact extends qcobjects_1.VO { - } - ]); -})(); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Contact = void 0; +const qcobjects_1 = require("qcobjects"); +class Contact extends qcobjects_1.VO { +} +exports.Contact = Contact; +(0, qcobjects_1.Package)("org.qcobjects.models", [ + Contact +]); diff --git a/build/js/org.qcobjects.tools.canvas.js b/build/js/org.qcobjects.tools.canvas.js index 53262d3..512240c 100644 --- a/build/js/org.qcobjects.tools.canvas.js +++ b/build/js/org.qcobjects.tools.canvas.js @@ -1,5 +1,5 @@ /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -24,30 +24,31 @@ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.CanvasTool = void 0; const qcobjects_1 = require("qcobjects"); -(function () { - (0, qcobjects_1.Package)("org.qcobjects.tools.canvas", [ - class CanvasTool extends qcobjects_1.InheritClass { - drawImageFilled(img, canvas, zoom = 1, px = 0, py = 0) { - // get the scale - let scale = Math.max(canvas.width / img.width, canvas.height / img.height); - scale = scale * zoom; - // get the top left position of the image - const x = (canvas.width / 2) - (img.width / 2) * scale; - const y = (canvas.height / 2) - (img.height / 2) * scale; - const ctx = canvas.getContext("2d"); - ctx?.drawImage(img, (px + x), (py + y), img.width * scale, img.height * scale); - } - getImageResized(img, width, height, resizedImage, zoom = 1, px = 0, py = 0) { - const canvas = document.createElement("canvas"); - canvas.width = width; - canvas.height = height; - canvas.style.width = width.toString(); - canvas.style.height = height.toString(); - this.drawImageFilled(img, canvas, zoom, px, py); - resizedImage.src = canvas.toDataURL("image/png"); - return canvas; - } - } - ]); -})(); +class CanvasTool extends qcobjects_1.InheritClass { + drawImageFilled(img, canvas, zoom = 1, px = 0, py = 0) { + // get the scale + let scale = Math.max(canvas.width / img.width, canvas.height / img.height); + scale = scale * zoom; + // get the top left position of the image + const x = (canvas.width / 2) - (img.width / 2) * scale; + const y = (canvas.height / 2) - (img.height / 2) * scale; + const ctx = canvas.getContext("2d"); + ctx?.drawImage(img, (px + x), (py + y), img.width * scale, img.height * scale); + } + getImageResized(img, width, height, resizedImage, zoom = 1, px = 0, py = 0) { + const canvas = document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + canvas.style.width = width.toString(); + canvas.style.height = height.toString(); + this.drawImageFilled(img, canvas, zoom, px, py); + resizedImage.src = canvas.toDataURL("image/png"); + return canvas; + } +} +exports.CanvasTool = CanvasTool; +(0, qcobjects_1.Package)("org.qcobjects.tools.canvas", [ + CanvasTool +]); diff --git a/build/js/org.qcobjects.tools.js b/build/js/org.qcobjects.tools.js index 65aee17..b08a044 100644 --- a/build/js/org.qcobjects.tools.js +++ b/build/js/org.qcobjects.tools.js @@ -1,5 +1,5 @@ /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -28,10 +28,12 @@ const qcobjects_1 = require("qcobjects"); (function () { (0, qcobjects_1.Package)("org.qcobjects.tools", [ class Process extends qcobjects_1.Timer { + alive; + steps = []; + currentStep = 0; + duration; constructor({ steps = [], currentStep = 0, alive = false }) { super({ steps, currentStep, alive }); - this.steps = []; - this.currentStep = 0; this.alive = alive; } stop() { @@ -43,6 +45,7 @@ const qcobjects_1 = require("qcobjects"); duration: this.duration, timing: (timeFraction) => { this.currentStep += 1; + // eslint-disable-next-line @typescript-eslint/no-floating-promises this.steps.map((p) => { let _ret_; if (typeof p === "function") { @@ -59,6 +62,10 @@ const qcobjects_1 = require("qcobjects"); } }); } + // eslint-disable-next-line no-unused-vars + thread(arg0) { + throw new Error("Method not implemented."); + } } ]); })(); diff --git a/build/js/org.qcobjects.tools.layouts.js b/build/js/org.qcobjects.tools.layouts.js index cf7496f..1c3bfb8 100644 --- a/build/js/org.qcobjects.tools.layouts.js +++ b/build/js/org.qcobjects.tools.layouts.js @@ -1,6 +1,6 @@ /* eslint-disable array-callback-return */ /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -25,49 +25,50 @@ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.BasicLayout = void 0; const qcobjects_1 = require("qcobjects"); const org_qcobjects_effects_1 = require("./org.qcobjects.effects"); -(function () { - (0, qcobjects_1.Package)("org.qcobjects.tools.layouts", [ - class BasicLayout extends qcobjects_1.InheritClass { - constructor({ component = null, dependencies = [] }) { - super({ component, dependencies }); - this.dependencies = []; - } - load() { - this.dependencies.push((0, qcobjects_1.New)(qcobjects_1.SourceCSS, { - external: !(qcobjects_1.CONFIG.get("useLocalSDK", false)), - url: (qcobjects_1.CONFIG.get("useLocalSDK", false)) ? ("css/basic-layout.css") : (qcobjects_1.CONFIG.get("remoteSDKPath", false) + "css/basic-layout.css") - })); - } - coloredBorder() { - /* - * A helper function to visualize the layout borders - * Usage: BasicLayout.coloredBorder() - */ - setTimeout(function () { - (0, qcobjects_1.Tag)("nav").map((element) => { element.style.border = "20px solid #3333"; }); - (0, qcobjects_1.Tag)("nav").map((element) => { element.style.backgroundColor = "#129999"; }); - (0, qcobjects_1.Tag)("component>footer").map((element) => { element.style.background = "#876"; }); - (0, qcobjects_1.Tag)("component>div").map((element) => { element.style.border = "3px dashed #fff"; }); - (0, qcobjects_1.Tag)("component>section").map((element) => { element.style.border = "3px solid #000"; }); - (0, qcobjects_1.Tag)("component>section").map((element) => { element.style.backgroundColor = "#fffaaa"; }); - (0, qcobjects_1.Tag)("component>article").map((element) => { element.style.border = "3px dotted #000"; }); - (0, qcobjects_1.Tag)("component>header").map((element) => { element.style.background = "#789"; }); - (0, qcobjects_1.Tag)("component>footer").map((element) => { element.style.background = "#876"; }); - (0, qcobjects_1.Tag)("component>article:nth-child(1)").map((element) => { element.style.border = "1px solid #444"; }); - (0, qcobjects_1.Tag)("component>article:nth-child(1)").map((element) => { element.style.backgroundColor = "#555aaa"; }); - (0, qcobjects_1.Tag)("component>article:nth-child(2)").map((element) => { element.style.backgroundColor = "#aaa333"; }); - (0, qcobjects_1.Tag)("component>article:nth-child(3)").map((element) => { element.style.backgroundColor = "#54da82"; }); - (0, qcobjects_1.Tag)("*").map((element) => { element.style.color = "#fff"; }); - (0, qcobjects_1.Tag)("component>article").map((element) => org_qcobjects_effects_1.Fade.apply(element, 0, 1)); - (0, qcobjects_1.Tag)("component>footer").map((element) => org_qcobjects_effects_1.Fade.apply(element, 0, 1)); - (0, qcobjects_1.Tag)("component>header").map((element) => org_qcobjects_effects_1.Fade.apply(element, 0, 1)); - (0, qcobjects_1.Tag)("nav").map((element) => { element.style.display = "block"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); org_qcobjects_effects_1.MoveXInFromLeft.apply(element); }); - (0, qcobjects_1.Tag)("component>article").map((element) => { element.style.display = "block"; element.style.height = element.offsetParent?.scrollHeight.toString() || element.clientHeight.toString(); org_qcobjects_effects_1.MoveYInFromBottom.apply(element); }); - (0, qcobjects_1.Tag)("component>article:nth-child(2)").map((element) => { element.style.display = "block"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); org_qcobjects_effects_1.MoveXInFromRight.apply(element); }); - }, 300); - } - } - ]); -})(); +class BasicLayout extends qcobjects_1.InheritClass { + dependencies = []; + constructor({ component = null, dependencies = [] }) { + super({ component, dependencies }); + } + load() { + this.dependencies.push((0, qcobjects_1.New)(qcobjects_1.SourceCSS, { + external: !(qcobjects_1.CONFIG.get("useLocalSDK", false)), + url: (qcobjects_1.CONFIG.get("useLocalSDK", false)) ? ("css/basic-layout.css") : (qcobjects_1.CONFIG.get("remoteSDKPath", false) + "css/basic-layout.css") + })); + } + coloredBorder() { + /* + * A helper function to visualize the layout borders + * Usage: BasicLayout.coloredBorder() + */ + setTimeout(function () { + (0, qcobjects_1.Tag)("nav").map((element) => { element.style.border = "20px solid #3333"; }); + (0, qcobjects_1.Tag)("nav").map((element) => { element.style.backgroundColor = "#129999"; }); + (0, qcobjects_1.Tag)("component>footer").map((element) => { element.style.background = "#876"; }); + (0, qcobjects_1.Tag)("component>div").map((element) => { element.style.border = "3px dashed #fff"; }); + (0, qcobjects_1.Tag)("component>section").map((element) => { element.style.border = "3px solid #000"; }); + (0, qcobjects_1.Tag)("component>section").map((element) => { element.style.backgroundColor = "#fffaaa"; }); + (0, qcobjects_1.Tag)("component>article").map((element) => { element.style.border = "3px dotted #000"; }); + (0, qcobjects_1.Tag)("component>header").map((element) => { element.style.background = "#789"; }); + (0, qcobjects_1.Tag)("component>footer").map((element) => { element.style.background = "#876"; }); + (0, qcobjects_1.Tag)("component>article:nth-child(1)").map((element) => { element.style.border = "1px solid #444"; }); + (0, qcobjects_1.Tag)("component>article:nth-child(1)").map((element) => { element.style.backgroundColor = "#555aaa"; }); + (0, qcobjects_1.Tag)("component>article:nth-child(2)").map((element) => { element.style.backgroundColor = "#aaa333"; }); + (0, qcobjects_1.Tag)("component>article:nth-child(3)").map((element) => { element.style.backgroundColor = "#54da82"; }); + (0, qcobjects_1.Tag)("*").map((element) => { element.style.color = "#fff"; }); + (0, qcobjects_1.Tag)("component>article").map((element) => org_qcobjects_effects_1.Fade.apply(element, 0, 1)); + (0, qcobjects_1.Tag)("component>footer").map((element) => org_qcobjects_effects_1.Fade.apply(element, 0, 1)); + (0, qcobjects_1.Tag)("component>header").map((element) => org_qcobjects_effects_1.Fade.apply(element, 0, 1)); + (0, qcobjects_1.Tag)("nav").map((element) => { element.style.display = "block"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); org_qcobjects_effects_1.MoveXInFromLeft.apply(element); }); + (0, qcobjects_1.Tag)("component>article").map((element) => { element.style.display = "block"; element.style.height = element.offsetParent?.scrollHeight.toString() || element.clientHeight.toString(); org_qcobjects_effects_1.MoveYInFromBottom.apply(element); }); + (0, qcobjects_1.Tag)("component>article:nth-child(2)").map((element) => { element.style.display = "block"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); org_qcobjects_effects_1.MoveXInFromRight.apply(element); }); + }, 300); + } +} +exports.BasicLayout = BasicLayout; +(0, qcobjects_1.Package)("org.qcobjects.tools.layouts", [ + BasicLayout +]); diff --git a/build/js/org.qcobjects.views.js b/build/js/org.qcobjects.views.js index bc060bd..4d63645 100644 --- a/build/js/org.qcobjects.views.js +++ b/build/js/org.qcobjects.views.js @@ -1,8 +1,5 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const qcobjects_1 = require("qcobjects"); /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -25,10 +22,13 @@ const qcobjects_1 = require("qcobjects"); * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function () { - "use strict"; - (0, qcobjects_1.Package)("org.qcobjects.views", [ - class GridView extends qcobjects_1.View { - } - ]); -})(); +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GridView = void 0; +const qcobjects_1 = require("qcobjects"); +class GridView extends qcobjects_1.View { +} +exports.GridView = GridView; +(0, qcobjects_1.Package)("org.qcobjects.views", [ + GridView +]); diff --git a/build/templates/components/modalyoulose.tpl.html b/build/templates/components/modalyoulose.tpl.html deleted file mode 100644 index d2108e7..0000000 --- a/build/templates/components/modalyoulose.tpl.html +++ /dev/null @@ -1,3 +0,0 @@ -
      -

      YOU LOSE!

      -
      diff --git a/build/templates/components/modalyouwin.tpl.html b/build/templates/components/modalyouwin.tpl.html deleted file mode 100644 index 4a91baa..0000000 --- a/build/templates/components/modalyouwin.tpl.html +++ /dev/null @@ -1,4 +0,0 @@ -
      -

      Title

      -

      YOU WIN!

      -
      diff --git a/build/templates/components/splashscreen.tpl.html b/build/templates/components/splashscreen.tpl.html deleted file mode 100644 index 450b936..0000000 --- a/build/templates/components/splashscreen.tpl.html +++ /dev/null @@ -1,128 +0,0 @@ - -
      -
      - - -
      -
      diff --git a/build/templates/components/swagger-ui.tpl.html b/build/templates/components/swagger-ui.tpl.html deleted file mode 100644 index fbfe9ad..0000000 --- a/build/templates/components/swagger-ui.tpl.html +++ /dev/null @@ -1,22 +0,0 @@ - -
      diff --git a/eslint.config.mjs b/eslint.config.mjs index 981086b..80833b2 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -80,7 +80,8 @@ export default [ "@typescript-eslint/no-unsafe-member-access":"off", "@typescript-eslint/no-unsafe-assignment":"off", "@typescript-eslint/no-unsafe-call":"off", - "@typescript-eslint/no-unsafe-argument":"off" + "@typescript-eslint/no-unsafe-argument":"off", + "@typescript-eslint/no-unsafe-return":"off" } } diff --git a/package-lock.json b/package-lock.json index dee276b..1e4cf56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,17 +27,18 @@ "globals": "^15.11.0", "hint": "^2.0.0", "install": "^0.13.0", - "jasmine": "^3.7.0", + "jasmine": "^3.99.0", "ts-node": "^10.9.2", - "typescript": "^5.6.3", - "typescript-eslint": "^8.11.0" + "tsconfig-paths": "^4.2.0", + "typescript": "^5.7.2", + "typescript-eslint": "^8.18.1" }, "engines": { "node": ">=22", "npm": ">=10" }, "peerDependencies": { - "qcobjects": ">=2.5.108-beta" + "qcobjects": ">=2.5.140-beta" } }, "node_modules/@adobe/css-tools": { @@ -499,9 +500,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -536,9 +537,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.14.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", - "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", + "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", "dev": true, "license": "MIT", "engines": { @@ -768,9 +769,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", - "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "version": "22.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.3.tgz", + "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==", "dev": true, "license": "MIT", "dependencies": { @@ -1349,9 +1350,9 @@ "license": "MIT" }, "node_modules/cross-spawn": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", - "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -1531,9 +1532,9 @@ "peer": true }, "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1552,7 +1553,7 @@ "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.4", "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", + "globalthis": "^1.0.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", @@ -1568,10 +1569,10 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", + "regexp.prototype.flags": "^1.5.3", "safe-array-concat": "^1.1.2", "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.9", @@ -1997,6 +1998,19 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -2007,6 +2021,19 @@ "semver": "bin/semver.js" } }, + "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "node_modules/eslint-plugin-n": { "version": "15.7.0", "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", @@ -2417,9 +2444,9 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, @@ -2846,6 +2873,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -2947,6 +2990,22 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -2958,6 +3017,22 @@ "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -2971,6 +3046,19 @@ "node": ">=0.10.0" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", @@ -3037,6 +3125,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", @@ -3101,6 +3202,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -3114,6 +3228,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -3201,16 +3332,16 @@ "license": "MIT" }, "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/keyv": { @@ -3651,9 +3782,9 @@ } }, "node_modules/qcobjects": { - "version": "2.5.108-beta", - "resolved": "https://registry.npmjs.org/qcobjects/-/qcobjects-2.5.108-beta.tgz", - "integrity": "sha512-GtcGdCZnW1TUGjmwmwd6behOZ9X+ZvNuQXFR7QejbXJ0ljLv1SmVl2oHF0V8nZ854NPgHJwhf7DUlgzufoAJxg==", + "version": "2.5.140-beta", + "resolved": "https://registry.npmjs.org/qcobjects/-/qcobjects-2.5.140-beta.tgz", + "integrity": "sha512-JPGb0IuWD/biN/6ymg5XS6JWksD5U4G6s0d/JPHXrB9MgdMWrBWg53e/aTnwpGNxvCMgA3eWZo5oxdWE7hdqzQ==", "license": "LGPL-3.0", "peer": true, "engines": { @@ -3682,6 +3813,28 @@ ], "license": "MIT" }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", + "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "which-builtin-type": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", @@ -4262,9 +4415,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", - "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, "license": "MIT", "engines": { @@ -4319,16 +4472,18 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "license": "MIT", "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", + "json5": "^2.2.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/tslib": { @@ -4416,9 +4571,9 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", + "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", "dev": true, "license": "MIT", "dependencies": { @@ -4427,7 +4582,8 @@ "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.13", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -4437,18 +4593,18 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -4458,9 +4614,9 @@ } }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4472,15 +4628,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.13.0.tgz", - "integrity": "sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.18.2.tgz", + "integrity": "sha512-KuXezG6jHkvC3MvizeXgupZzaG5wjhU3yE8E7e6viOvAvD9xAWYp8/vy0WULTGe9DYDWcQu7aW03YIV3mSitrQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.13.0", - "@typescript-eslint/parser": "8.13.0", - "@typescript-eslint/utils": "8.13.0" + "@typescript-eslint/eslint-plugin": "8.18.2", + "@typescript-eslint/parser": "8.18.2", + "@typescript-eslint/utils": "8.18.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4489,24 +4645,23 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz", - "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.2.tgz", + "integrity": "sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/type-utils": "8.13.0", - "@typescript-eslint/utils": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", + "@typescript-eslint/scope-manager": "8.18.2", + "@typescript-eslint/type-utils": "8.18.2", + "@typescript-eslint/utils": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -4521,25 +4676,21 @@ }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz", - "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.2.tgz", + "integrity": "sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/typescript-estree": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", + "@typescript-eslint/scope-manager": "8.18.2", + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/typescript-estree": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2", "debug": "^4.3.4" }, "engines": { @@ -4550,23 +4701,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", - "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.2.tgz", + "integrity": "sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0" + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4577,14 +4724,14 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz", - "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.2.tgz", + "integrity": "sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.13.0", - "@typescript-eslint/utils": "8.13.0", + "@typescript-eslint/typescript-estree": "8.18.2", + "@typescript-eslint/utils": "8.18.2", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -4595,16 +4742,15 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", - "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.2.tgz", + "integrity": "sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==", "dev": true, "license": "MIT", "engines": { @@ -4616,14 +4762,14 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", - "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz", + "integrity": "sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/visitor-keys": "8.18.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -4638,23 +4784,21 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.2.tgz", + "integrity": "sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/typescript-estree": "8.13.0" + "@typescript-eslint/scope-manager": "8.18.2", + "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/typescript-estree": "8.18.2" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4664,18 +4808,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", - "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz", + "integrity": "sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.13.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.18.2", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4695,6 +4840,19 @@ "balanced-match": "^1.0.0" } }, + "node_modules/typescript-eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/typescript-eslint/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -4784,6 +4942,53 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", diff --git a/package.json b/package.json index 731c3a9..13c2206 100644 --- a/package.json +++ b/package.json @@ -14,35 +14,32 @@ "import": "./public/esm/index.mjs" }, "./package.json": "./package.json", - "./js/org.qcobjects.cloud.auth.session.data": "./public/js/org.qcobjects.cloud.auth.session.data.js", - "./js/org.qcobjects.cloud.auth.session.usertoken": "./public/js/org.qcobjects.cloud.auth.session.usertoken.js", - "./js/org.qcobjects.components.grid": "./public/js/org.qcobjects.components.grid.js", - "./js/org.qcobjects.components": "./public/js/org.qcobjects.components.js", - "./js/org.qcobjects.components.list": "./public/js/org.qcobjects.components.list.js", - "./js/org.qcobjects.components.notifications": "./public/js/org.qcobjects.components.notifications.js", - "./js/org.qcobjects.components.slider": "./public/js/org.qcobjects.components.slider.js", - "./js/org.qcobjects.components.splashscreen": "./public/js/org.qcobjects.components.splashscreen.js", - "./js/org.qcobjects.controllers.form": "./public/js/org.qcobjects.controllers.form.js", - "./js/org.qcobjects.controllers.grid": "./public/js/org.qcobjects.controllers.grid.js", - "./js/org.qcobjects.controllers": "./public/js/org.qcobjects.controllers.js", - "./js/org.qcobjects.controllers.list": "./public/js/org.qcobjects.controllers.list.js", - "./js/org.qcobjects.controllers.slider": "./public/js/org.qcobjects.controllers.slider.js", - "./js/org.qcobjects.controllers.swagger": "./public/js/org.qcobjects.controllers.swagger.js", - "./js/org.qcobjects.effects": "./public/js/org.qcobjects.effects.js", - "./js/org.qcobjects.i18n_messages": "./public/js/org.qcobjects.i18n_messages.js", - "./js/org.qcobjects.modal.controllers": "./public/js/org.qcobjects.modal.controllers.js", - "./js/org.qcobjects.modal.effects": "./public/js/org.qcobjects.modal.effects.js", - "./js/org.qcobjects.models": "./public/js/org.qcobjects.models.js", - "./js/org.qcobjects.tools.canvas": "./public/js/org.qcobjects.tools.canvas.js", - "./js/org.qcobjects.tools": "./public/js/org.qcobjects.tools.js", - "./js/org.qcobjects.tools.layouts": "./public/js/org.qcobjects.tools.layouts.js", - "./js/org.qcobjects.views": "./public/js/org.qcobjects.views.js", - "./QCObjects-SDK": "./public/js/QCObjects-SDK.js" + "./js/org.qcobjects.i18n_messages":"./build/js/org.qcobjects.i18n_messages.js", + "./js/org.qcobjects.models":"./build/js/org.qcobjects.models.js", + "./js/org.qcobjects.components":"./build/js/org.qcobjects.components.js", + "./js/org.qcobjects.components.grid":"./build/js/org.qcobjects.components.grid.js", + "./js/org.qcobjects.components.list":"./build/js/org.qcobjects.components.list.js", + "./js/org.qcobjects.components.slider":"./build/js/org.qcobjects.components.slider.js", + "./js/org.qcobjects.components.notifications":"./build/js/org.qcobjects.components.notifications.js", + "./js/org.qcobjects.components.splashscreen":"./build/js/org.qcobjects.components.splashscreen.js", + "./js/org.qcobjects.controllers":"./build/js/org.qcobjects.controllers.js", + "./js/org.qcobjects.controllers.grid":"./build/js/org.qcobjects.controllers.grid.js", + "./js/org.qcobjects.controllers.slider":"./build/js/org.qcobjects.controllers.slider.js", + "./js/org.qcobjects.controllers.form":"./build/js/org.qcobjects.controllers.form.js", + "./js/org.qcobjects.controllers.swagger":"./build/js/org.qcobjects.controllers.swagger.js", + "./js/org.qcobjects.effects":"./build/js/org.qcobjects.effects.js", + "./js/org.qcobjects.modal.controllers":"./build/js/org.qcobjects.modal.controllers.js", + "./js/org.qcobjects.views":"./build/js/org.qcobjects.views.js", + "./js/org.qcobjects.tools.canvas":"./build/js/org.qcobjects.tools.canvas.js", + "./js/org.qcobjects.tools.layouts":"./build/js/org.qcobjects.tools.layouts.js", + "./js/org.qcobjects.cloud.auth.session.usertoken":"./build/js/org.qcobjects.cloud.auth.session.usertoken.js", + "./js/org.qcobjects.cloud.auth.session.data":"./build/js/org.qcobjects.cloud.auth.session.data.js", + "./QCObjects-SDK":"./build/QCObjects-SDK.js" }, "license": "LGPL-3.0", "scripts": { "build": "npm run build:ts-types && npm run build:ts && npm run build:browser", - "postbuild":"node ./postbuild.js", + "postbuild": "node ./postbuild.js", "build:ts": "npm test && npx tsc", "build:ts-types": "npx tsc --project tsconfig.d.json", "build:browser": "npm run build:esbuild", @@ -103,10 +100,11 @@ "globals": "^15.11.0", "hint": "^2.0.0", "install": "^0.13.0", - "jasmine": "^3.7.0", + "jasmine": "^3.99.0", "ts-node": "^10.9.2", - "typescript": "^5.6.3", - "typescript-eslint": "^8.11.0" + "tsconfig-paths": "^4.2.0", + "typescript": "^5.7.2", + "typescript-eslint": "^8.18.1" }, "engines": { "npm": ">=10", @@ -118,7 +116,7 @@ }, "homepage": "https://sdk.qcobjects.dev", "peerDependencies": { - "qcobjects": ">=2.5.108-beta" + "qcobjects": ">=2.5.140-beta" }, "dependencies": {} } diff --git a/public/QCObjects-SDK.js b/public/QCObjects-SDK.js deleted file mode 100644 index 3751f14..0000000 --- a/public/QCObjects-SDK.js +++ /dev/null @@ -1,696 +0,0 @@ -"use strict";var global=(()=>{var Wt=Object.defineProperty;var Zn=(w,r,f)=>r in w?Wt(w,r,{enumerable:!0,configurable:!0,writable:!0,value:f}):w[r]=f;var c=(w,r)=>Wt(w,"name",{value:r,configurable:!0}),It=(w=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(w,{get:(r,f)=>(typeof require<"u"?require:r)[f]}):w)(function(w){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+w+'" is not supported')});var V=(w,r)=>()=>(r||w((r={exports:{}}).exports,r),r.exports);var S=(w,r,f)=>(Zn(w,typeof r!="symbol"?r+"":r,f),f);var zt=V((Go,We)=>{c(function w(r){"use strict";if(typeof Object.defineProperty<"u"&&typeof r<"u")try{Object.defineProperty(r,"__qcobjects_sdk__",{enumerable:!0,configurable:!1,writable:!1,value:w})}catch{typeof r.__qcobjects_sdk__<"u"&&(r.__qcobjects_sdk__.__loaded__=!0)}if(typeof r.__qcobjects_sdk__.__loaded__>"u"){if(r.__qcobjects_sdk__.__loaded__=!0,typeof r>"u")throw Error("Top context empty: It should either global, module or window");var f=r;r.global=f;var p=typeof window<"u"&&typeof window.self<"u"&&window===window.self,u=typeof We<"u",v=CONFIG.get("remoteImportsPath"),g=CONFIG.get("relativeImportPath"),b=!CONFIG.get("useLocalSDK");b&&!u?CONFIG.set("remoteImportsPath","https://sdk.qcobjects.dev/v2.4/src/js/"):CONFIG.set("relativeImportPath","qcobjects-sdk/src/js/"),typeof r._DOMCreateElement>"u"&&(r._DOMCreateElement=function(y){var T;return p?T=document.createElement(y):T={},T});var O;if(p&&!u)O=[Import("org.qcobjects.i18n_messages",function(){},b),Import("org.qcobjects.models",function(){},b),Import("org.qcobjects.components",function(){},b),Import("org.qcobjects.components.grid",function(){},b),Import("org.qcobjects.components.list",function(){},b),Import("org.qcobjects.components.slider",function(){},b),Import("org.qcobjects.components.notifications",function(){},b),Import("org.qcobjects.components.splashscreen",function(){},b),Import("org.qcobjects.controllers",function(){},b),Import("org.qcobjects.controllers.grid",function(){},b),Import("org.qcobjects.controllers.list",function(){},b),Import("org.qcobjects.controllers.slider",function(){},b),Import("org.qcobjects.controllers.form",function(){},b),Import("org.qcobjects.controllers.swagger",function(){},b),Import("org.qcobjects.effects",function(){},b),Import("org.qcobjects.modal.controllers",function(){},b),Import("org.qcobjects.views",function(){},b),Import("org.qcobjects.tools.canvas",function(){},b),Import("org.qcobjects.tools.layouts",function(){},b),Import("org.qcobjects.cloud.auth.session.usertoken",function(){},b),Import("org.qcobjects.cloud.auth.session.data",function(){},b)];else{u&&CONFIG.set("remoteImportsPath",CONFIG.get("basePath",""));var G="qcobjects-sdk/src/js/";O=[Import(G+"org.qcobjects.models",function(){},b),Import(G+"org.qcobjects.components",function(){},b),Import(G+"org.qcobjects.controllers",function(){},b),Import(G+"org.qcobjects.views",function(){},b),Import(G+"org.qcobjects.effects",function(){},b),Import(G+"org.qcobjects.tools.canvas",function(){},b),Import(G+"org.qcobjects.tools.layouts",function(){},b),Import(G+"org.qcobjects.cloud.auth.session.usertoken",function(){},b),Import(G+"org.qcobjects.cloud.auth.session.data",function(){},b)]}let P=GlobalSettings.__start__.bind(r);r._sdk_=Promise.all(O).then(()=>{CONFIG.set("useSDK",!0),CONFIG.set("remoteImportsPath",v),CONFIG.set("relativeImportPath",g),P()})}},"__qcobjects_sdk__").call(null,typeof We=="object"&&typeof We.exports=="object"?We.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{})});var Xt=V((Ho,Bt)=>{var Vn=zt();Bt.exports=Vn});var Zt=V((er,Pe)=>{c(function w(r){"use strict";if(typeof Object.defineProperty<"u"&&typeof r<"u")try{Object.defineProperty(r,"__qcobjects__",{enumerable:!0,configurable:!1,writable:!1,value:w})}catch{typeof r.__qcobjects__<"u"&&(r.__qcobjects__.loaded=!0)}if(typeof r.__qcobjects__.loaded>"u"){let $e=function(t){u?Ge.push(t.bind(window)):typeof f<"u"&&Ge.push(t.bind(f))};c($e,"Ready"),r.__qcobjects__.loaded=!0;var f=r;r.global=f;var p=typeof window<"u"&&"Deno"in window,u=typeof window<"u"&&typeof window.self<"u"&&window===window.self&&!p,v=typeof Pe<"u",g=c(function(){},"deno_require"),b=c(function(){return p?g(...arguments):It(...arguments)},"_require_"),O=c(function(t){var n=typeof t.prototype<"u"?t.prototype.toString:function(){return""};typeof t.prototype<"u"&&(t.prototype.toString=function(){var e=["__qcobjects__","__qcobjects_sdk__","__loaded__","ComplexStorageCache","css","append","attachIn","debug","info","warn","QC_Append","set","get","done","componentDone","_new_","__new__","Class","ClassFactory","New","Export","Package","Import","subelements","componentLoader","buildComponents","Controller","View","VO","Service","serviceLoader","JSONService","ConfigService","SourceJS","SourceCSS","ArrayList","ArrayCollection","Effect","Timer","sum","avg","table","max","min","range","matrix","matrix2d","matrix3d","unique","uniqueId","shortCode","NamespaceRef"],o;return e.includes(this.name)?o=this.name+"{ [QCObjects native code] }":o=n.call(this),o})},"_protected_code_");O(Function);var G=c(function(t){var n=[];for(var e in t)(typeof t[e]).toLowerCase()==="function"&&n.push(t[e]);return n},"_methods_");String.prototype.__mAll__=function(t){var n=[];return this.replace(t,function(){var e=Array.prototype.slice.call(arguments,0,-2);e.input=arguments[arguments.length-1],e.index=arguments[arguments.length-2],n.push(e)}),n},typeof String.prototype.matchAll>"u"&&(String.prototype.matchAll=String.prototype.__mAll__);var P=c(function(t){var n;return u?n=document.createElement(t):n={},n},"_DOMCreateElement");if(!u){let t=b("fs")}var y=c(function(t){var n=c(function(){var e=new WeakSet,o=0;return function(s,a){if(typeof a=="object"&&a!==null){if(e.has(a))return o+=1,o<=3?ct(a):null;e.add(a)}return a}},"getCircularReplacer");return JSON.stringify(t,n())},"_DataStringify");if(u){var T=c(function(n){return[...this.querySelectorAll(n)]},"subelements");Element.prototype.subelements=T,HTMLDocument.prototype.subelements=T,HTMLElement.prototype.subelements=T,typeof ShadowRoot<"u"&&(ShadowRoot.prototype.subelements=T)}if(u)try{r=typeof window.top<"u"?window.top:window,r._allowed_=!0}catch{try{r=document,r._allowed_=!0}catch{try{r=f,r._allowed_=!0}catch{r={},r._allowed_=!0}}}else typeof f<"u"&&(r=f);var L,D,ae="quick-component:not([loaded]),component:not([loaded])";if(D=function(){var t="";if(u){var n=r.document.baseURI.split("?")[0].split("/");n.pop(),t=n.join("/")+"/"}else{var e;try{e=b("process")}catch{}typeof e<"u"?t=`${e.cwd()}/`:t=""}return t}(),u){"Promise"in r||(r.Promise=function(t){var n={then(){},catch(){},_then(e){this.then.call(n,e)},_catch(e){this.catch.call(n,e)}};return t.call(n,n._then,n._catch),n}),typeof r.console>"u"&&(r.console=function(){},r.console.prototype.log=function(t){}),L=function(){return typeof document<"u"&&document.domain!==""?document.domain:"localhost"}();var le=function(){var t=r[(![]+[])[+!+[]+ +!+[]]+(typeof![])[+!+[]]+(typeof[])[(+!+[]+ +!+[])*(+!+[]+ +!+[])]+(![]+[])[+!+[]]+(!![]+[])[+[]]+([]+[]+[][[]])[+[+!+[]+[+[]]]/(+!+[]+ +!+[])]+(typeof![])[+!+[]]+([]+[]+[][[]])[+!+[]]]["h"+(typeof![])[+!+[]]+(![]+[])[+!+[]+(+!+[]+ +!+[])]+(!![]+[])[+[]]].toLowerCase();return t}(),he=function(){return typeof cordova<"u"}()}else{var le="secret";L="localhost"}r._asyncLoad=[];var be=c(function(t,n){var e={func:t,args:n,dispatch(){this.func.apply(null,this.args)}};return r._asyncLoad.push(e),e},"asyncLoad");if(u){var ee=c(function(){document.readyState==="complete"&&r._asyncLoad.map(function(t){t.dispatch.call(t)})},"_fireAsyncLoad");document.onreadystatechange=ee}else typeof r.global<"u"&&(r.global._fireAsyncLoad=function(){r._asyncLoad.map(function(t){t.dispatch.call(t)})});r.asyncLoad=be;var E=c(function(){return{debugEnabled:!0,infoEnabled:!0,warnEnabled:!0,debug(t){this.debugEnabled&&console.log("\x1B[35m%s\x1B[0m",`[DEBUG][${performance.now().toLocaleString()}] ${t}`)},info(t){var n;this.infoEnabled&&(u?n="\x1B[103m%s\x1B[0m":n="\x1B[33m%s\x1B[0m",console.info(n,`[INFO][${performance.now().toLocaleString()}] ${t}`))},warn(t){this.warnEnabled&&console.warn("\x1B[31m%s\x1B[0m",`[WARN][${performance.now().toLocaleString()}] ${t}`)}}},"Logger"),l=new E;l.debugEnabled=!1,l.infoEnabled=!0,r.logger=l;var U={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode(t){var n="",e,o,s,a,i,d,h,m=0;for(t=U._utf8_encode(t);m>2,i=(e&3)<<4|o>>4,d=(o&15)<<2|s>>6,h=s&63,isNaN(o)?d=h=64:isNaN(s)&&(h=64),n=n+this._keyStr.charAt(a)+this._keyStr.charAt(i)+this._keyStr.charAt(d)+this._keyStr.charAt(h);return n},decode(t){var n="",e,o,s,a,i,d,h,m=0;for(t=t.replace(/[^A-Za-z0-9+/=]/g,"");m>4,o=(i&15)<<4|d>>2,s=(d&3)<<6|h,n=n+String.fromCharCode(e),d!==64&&(n=n+String.fromCharCode(o)),h!==64&&(n=n+String.fromCharCode(s));return n=U._utf8_decode(n),n},_utf8_encode(t){t=t.replace(/rn/g,"n");for(var n="",e=0;e127&&o<2048?(n+=String.fromCharCode(o>>6|192),n+=String.fromCharCode(o&63|128)):(n+=String.fromCharCode(o>>12|224),n+=String.fromCharCode(o>>6&63|128),n+=String.fromCharCode(o&63|128))}return n},_utf8_decode(t){for(var n="",e=0,o=0,s=0,a=0,i;e191&&o<224?(a=t.charCodeAt(e+1),n+=String.fromCharCode((o&31)<<6|a&63),e+=2):(a=t.charCodeAt(e+1),i=t.charCodeAt(e+2),n+=String.fromCharCode((o&15)<<12|(a&63)<<6|i&63),e+=3);return n}},Y=c(function(t,n){var e=c(function(o,s){var a=2e3,i=0,d=setInterval(function(){s.call()?(clearInterval(d),o.call(),l.debug("Ejecuting "+o.name+" after wait")):i"u")var x={getItem(t){return Object.hasOwnProperty.call(this,t)?this[t]:null},setItem(t,n){this[t]=n},removeItem(t){delete this[t]}};var A=c(function(t){var n,e,o;if(n=t.index,typeof n<"u"){e=t.load,o=t.alternate;var s=this.getID(n),a=x.getItem(s);if(this.isEmpty(a)){var i=e.call(null,{cachedObjectID:s,cachedResponse:a,cache:this});this.save(n,i),l.debug("RESPONSE OF {{cachedObjectID}} CACHED".replace("{{cachedObjectID}}",s))}else{var d=o.call(null,{cachedObjectID:s,cachedResponse:a,cache:this});l.debug("RESPONSE OF {{cachedObjectID}} IS ALREADY CACHED ".replace("{{cachedObjectID}}",s))}}else throw new Error("ComplexStorageCache: index is undefined");return this},"ComplexStorageCache");if(A.prototype.getItem=function(t){var n=x.getItem(t);return this.isEmpty(n)?null:JSON.parse(n)},A.prototype.setItem=function(t,n){x.setItem(t,y(n))},A.prototype.isEmpty=function(t){var n=!1;switch(!0){case typeof t>"u":case(typeof t=="string"&&t===""):case(typeof t=="string"&&t==="undefined"):case(typeof t=="number"&&t===0):case t===null:n=!0;break;default:n=!1}return n},A.prototype.getID=function(t){var n;return typeof t<"u"&&(n="cachedObject_"+U.encode(y(t).replace(/\{|\}|,/g,"_"))),n},A.prototype.save=function(t,n){var e=this.getID(t);l.debug("CACHING THE RESPONSE OF {{cachedObjectID}} ".replace("{{cachedObjectID}}",e)),this.setItem(e,n)},A.prototype.getCached=function(t){var n=this.getID(t);return this.getItem(n)},A.prototype.clear=function(){Object.keys(x).filter(function(t){return t.startsWith("cachedObject_")}).map(function(t){x.removeItem(t)})},u){var Fe=!1;try{var Oe=Object.defineProperty({},"passive",{get(){return Fe=!0,Fe}});window.addEventListener("testPassive",null,Oe),window.removeEventListener("testPassive",null,Oe)}catch{}var ze=c(function(){return Fe?{passive:!0}:!1},"captureFalse")}u&&(Element.prototype.find=function(t){var n=[],e=document.subelements(t);return e.map(function(o,s){typeof e[s]<"u"&&e[s].parentNode.tagName===this.parentNode.tagName&&n.push(De(o,new Object))}),n});var _e,ko=function(){var t=Object.prototype.hasOwnProperty;return function(n){if(typeof n!="object")throw TypeError("Object prototype may only be an Object or null. The type is "+typeof n);var e=c(function(){},"QCObjects");e.prototype=n;var o=new e;if(arguments.length>1){var s=Object(arguments[1]);for(var a in s)t.call(s,a)&&(o[a]=s[a])}return o}}();typeof Object.assign!="function"&&Object.defineProperty(Object,"assign",{value:c(function(n,e){"use strict";if(n===null)throw new TypeError("Cannot convert undefined or null to object");for(var o=Object(n),s=1;s"u"||o===null?o={}:o=ct(o),typeof o.__instanceID<"u"&&delete o.__instanceID,pe[n]=class extends t[e.name]{constructor(){var a;arguments.length>0?a={...arguments[0]}:a={};super(a);S(this,"__classType",n);S(this,"__definition",{...o});let i=this;if(_e=typeof _e>"u"||_e===null?0:_e+1,i.__instanceID||Object.defineProperty(i,"__instanceID",{value:_e,writable:!1}),typeof i.__definition<"u"&&Object.keys(i.__definition).filter(function(d){return isNaN(d)&&!["name","__instanceID","__classType","__definition"].includes(d)}).forEach(function(d){typeof i.__definition[d]=="function"?i[d]=i.__definition[d].bind(i):i[d]=i.__definition[d]}),G(pe[i.__classType]).map(function(d){i[d.name]=d.bind(i)}),G(i.__definition).map(function(d){i[d.name]=d.bind(i)}),i.body)if(typeof i.__definition>"u"||!Object.hasOwnProperty.call(i.__definition,"body")||typeof i.__definition.body>"u")try{u?i.body=P(i.__definition.__classType):i.body={}}catch{i.body={}}else Object.hasOwnProperty.call(i.__definition,"body")&&(i.body=i.__definition.body);try{if(typeof i.__new__=="function"?i.__new__.call(i,a):typeof super.__new__=="function"&&(i.__new__=super.__new__.bind(i),i.__new__.call(i,a)),typeof i=="object"&&Object.hasOwnProperty.call(i,"_new_")&&typeof i._new_.isCalled>"u")try{i._new_.call(i,a),i._new_.isCalled=!0}catch(d){l.warn(`${i.__classType}._new_() failed with error: ${d}`)}}catch(d){l.warn(d)}}static hierarchy(a){var i=c(function(m){return Object.hasOwnProperty.call(m,"__classType")?m.__classType:ye.call(a,m)},"__classType"),d=c(m=>typeof m<"u"&&typeof m.__proto__<"u"&&m.__proto__!==null?(i(m)!==""?[i(m)]:[]).concat(d(m.__proto__)):[],"__hierarchy__proto__");(typeof a>"u"||a===null)&&(a=this);var h=[];return h.push(i(a)),h=h.concat(d(a.__proto__)),h}static getParentClass(){return Object.getPrototypeOf(this.prototype.constructor)}__new__(a){Te(a,this)}_new_(){}getClass(){return Object.getPrototypeOf(this.constructor)}css(a){return typeof this.body<"u"&&this.body.style!=="undefined"&&(l.debug("body style"),this.body.style=De(a,this.body.style)),this.body.style}hierarchy(){var a=this;return this.getClass().hierarchy(a)}append(i){l.debug("append: start"),Ae(i,"Component")&&(l.debug("append: child is a Component"),l.debug(`appending the body of ${i.name}`));var i=arguments.length>0?arguments[0]:this.body;typeof this.body<"u"&&(l.debug("append element"),arguments.lenght>0?(l.debug("append to element"),this.body.append(i),typeof this.childs>"u"&&(this.childs=[]),this.childs.push(i)):u&&(l.debug("append to body"),document.body.append(i)))}attachIn(a){if(u)for(var i=document.subelements(a),d=0,h=i.length;d-1){var e=t.split(".").slice(0,t.split(".").length-1).join("."),o=t.split(".").slice(-1).join(""),s=ne(e),a=typeof s<"u"?s.filter(i=>Ie(i)&&(i.__definition.__classType===o||typeof i=="function"&&!!i.name)).reverse():[];if(a.length>0)n=a[0];else throw Error(`Class ${t} not found.`)}else t!==null&&Object.hasOwnProperty.call(pe,t)&&(n=pe[t]);return n},"ClassFactory");u&&(Element.prototype.append=c(function(n){He(n)||typeof n.body<"u"?this.appendChild(n.body):this.appendChild(n)},"QC_Append"),Element.prototype.render=c(function(n){var e=this,o=c(function(s,a){if(typeof document.implementation.createHTMLDocument<"u"){var i=document.implementation.createHTMLDocument("");i.innerHTML=a,i.body.subelements("*").map(function(d){return s.append(d)})}},"_appendVDOM");if(typeof this.innerHTML<"u")try{this.innerHTML+=n}catch{o(e,n)}else o(e,n)},"QC_Render"));var qt=c(function(t,n,e){return C(t)[n]},"_super_");qt.prototype.toString=function(){return"_super_(className,classMethodName,params) { [QCObjects native code] }"};var te=c(function(t,n){return n=arguments.length>1?n:{},typeof t>"u"?new Object:new t(n)},"New");te.prototype.toString=function(){return"New(QCObjectsClassName, args) { [QCObjects native code] }"};var F=c(function(t){return ft(t)},"Export");if(F.prototype.toString=function(){return"Export(function or symbol) { [QCObjects native code] }"},!u){var Xe=c(function(t){let n=b("fs");var e=null;try{var o=[`${r.CONFIG.get("projectPath")}${r.CONFIG.get("relativeImportPath")}`,`${r.CONFIG.get("basePath")}${r.CONFIG.get("relativeImportPath")}`,`${r.CONFIG.get("projectPath")}`,`${r.CONFIG.get("basePath")}`,`${r.CONFIG.get("relativeImportPath")}`,`${process.cwd()}${r.CONFIG.get("relativeImportPath")}`,`${process.cwd()}/node_modules/`+t,`${process.cwd()}/node_modules`,`${process.cwd()}`,"node_modules","./",""].concat(Pe.paths);o=o.filter(s=>n.existsSync(s+"/"+t)),o.length>0&&(e=o[0],l.info(t+" is Installed."))}catch(s){console.log(s)}return e},"findPackageNodePath");F(Xe)}me("_Crypt",Object,{last_string:"",last_key:"",construct:!1,_new_(t){var n=t.string,e=t.hasOwnProperty.call(t,"key")?t.key:null;this.__new__(t),e=e===null?this.__instanceID:e,this.last_key=e,this.last_string=n,this.construct=!0},_encrypt(){for(var t=this.string,n=this.key,e="",o,s,a=0;an.list()[a]===s?null:s).filter(s=>s!==null).join("");return o},"shortCode"),qo=Ft;me("InheritClass",class{},{});let we=class extends C("InheritClass"){constructor(){super(...arguments);S(this,"component",null);S(this,"__definition",{});S(this,"__classType","Processor");this.processors=we.processors,this.process=we.process.bind(this),this.processObject=we.processObject.bind(this),this.setProcessor=we.setProcessor.bind(this),this.execute=we.execute.bind(this)}static setProcessor(e){typeof e=="function"&&e.name!==""&&(this.processors[e.name]=e)}static execute(e,o,s){var a=typeof e<"u"&&e!==null?e.processorHandler:this;return a.processors[o].bind(a).apply(a,[e,...s.split(",")])}static process(e,o=null){var s=o!==null?o.processorHandler:te(we,{component:null});return typeof e=="string"&&Object.keys(s.processors).map(function(a){[...e.matchAll(new RegExp("\\$"+a+"\\((.*)\\).*","g"))].map(function(i){var d=`$${a}(${i[1]})`;e=e.replace(d,s.execute.bind(s).call(s,o,a,i[1]))})}),e}static processObject(e,o=null){var s=o===null?this:o.processorHandler;return typeof s>"u"&&(s=new we({component:o})),typeof e=="object"?Object.keys(e).map(function(a){typeof e[a]=="object"&&!e[a].hasOwnProperty.call(e[a],"call")?e[a]=s.processObject.bind(s)(e[a],o):typeof e[a]=="string"&&(e[a]=s.process.bind(s)(e[a],o))}):typeof e=="string"&&(e=s.process.bind(s)(e,o)),e}},oe=we;c(oe,"Processor"),S(oe,"processors",{config(e,o){return r.CONFIG.get(o,"")},ENV(e,o){return typeof process<"u"?process.env[o]:""},global(e,o){return typeof f<"u"?f[o]:""}}),oe.__definition={},oe.__classType="Processor",pt(oe,"com.qcobjects"),ft(oe);let Ot=class{static get instance(){if(this._instance===null){var n=new Ot;n._CONFIG={relativeImportPath:"",remoteImportsPath:"",remoteSDKPath:"https://sdk.qcobjects.dev/v2.4/",asynchronousImportsLoad:!1,removePackageScriptAfterLoading:!0,componentsBasePath:"",delayForReady:0,preserveComponentBodyTag:!1,useConfigService:!1,routingWay:"hash",useSDK:!0,useLocalSDK:!1,basePath:D},n._CONFIG_ENC=null,this._instance=n}return this._instance}static set instance(n){this._instance=n}},je=Ot;c(je,"ConfigSettings"),S(je,"_instance",null),S(je,"_CONFIG_ENC",null),pe.ConfigSettings=je,me("CONFIG",Object,{get _CONFIG_ENC(){return C("ConfigSettings").instance._CONFIG_ENC},get _CONFIG(){return C("ConfigSettings").instance._CONFIG},set(t,n){l.debug(`CONFIG.set ${t}: ${n}`),t==="basePath"&&(D=n);var e;try{e=function(o){o._CONFIG_ENC===null&&(o._CONFIG_ENC=C("_Crypt").encrypt(y({}),le));var s=o._CONFIG_ENC.valueOf(),a=o._CONFIG.valueOf();return Te(a,Lt(s))}(C("ConfigSettings").instance)}catch(o){e={},console.error(o),l.debug("failed to encrypt config")}e[t]=n,C("ConfigSettings").instance._CONFIG_ENC=Hn(e),Object.hasOwnProperty.call(C("ConfigSettings").instance,"_CONFIG")&&Object.hasOwnProperty.call(C("ConfigSettings").instance._CONFIG,t)&&(C("ConfigSettings").instance._CONFIG[t]=n)},get(t,n){var e;try{var o=function(s){s._CONFIG_ENC===null&&(s._CONFIG_ENC=C("_Crypt").encrypt(y({}),le));var a=s._CONFIG_ENC.valueOf(),i=s._CONFIG.valueOf();return Te(i,Lt(a))}(C("ConfigSettings").instance);typeof o[t]<"u"?e=o[t]:typeof n<"u"&&(e=n)}catch(s){console.error(s),l.debug("Something wrong when trying to get CONFIG values"),l.debug("No config value for: "+t),e=n}return oe.processObject.call(oe,e)}}),F(Y),F(qt),F(A),F(C),F(P),F(Ft),F(ye),F(Ae);var He=c(function(t){return!!(typeof t=="object"&&Object.hasOwnProperty.call(t,"__classType")&&t.__instanceID&&Object.hasOwnProperty.call(t,"__definition")&&typeof t.__definition<"u")},"isQCObjects_Object"),Ie=c(function(t){return!!(typeof t=="function"&&!t.__instanceID&&t.__definition&&typeof t.__definition<"u"&&t.__definition.__classType)},"isQCObjects_Class"),ne=c(function(t,n){return de.hasOwnProperty.call(de,t)&&typeof de[t]<"u"&&de[t].hasOwnProperty.call(de[t],"length")&&de[t].length>0&&typeof n<"u"&&n.hasOwnProperty.call(n,"length")&&n.length>0?(n.filter(function(e){return Ie(e)}).map(function(e){e.__definition.__namespace=t,e.__namespace=t}),de[t]=de[t].concat(n)):typeof n<"u"&&(typeof n=="object"&&n.hasOwnProperty.call(n,"length")?n.filter(function(e){return Ie(e)}).map(function(e){e.__definition.__namespace=t,e.__namespace=t}):Ie(n)&&(n.__definition.__namespace=t,n.__namespace=t),de[t]=n),Object.hasOwnProperty.call(de,t)&&de[t].map(function(e){kt(e,t)}),Object.hasOwnProperty.call(de,t)?de[t]:void 0},"Package");ne.prototype.toString=function(){return"Package(namespace, classes) { [QCObjects native code] }"},ne("com.qcobjects",[oe]);var $n=c(function(t){let e=ne(t).filter(o=>Ie(o)).map(o=>({[o.__definition.__classType]:o})).reduce((o,s)=>Object.assign(o,s));return t.split(".").map(o=>({[o]:e})).reverse().reduce((o,s)=>(s[Object.keys(s)]=o,s))},"NamespaceRef"),ht=c(function(){var t,n=c(function(){},"ready"),e=!1;if(!(arguments.length<1)){arguments.length===1?t=arguments[0]:arguments.length===2?(t=arguments[0],n=arguments[1]):arguments.length>2&&(t=arguments[0],n=arguments[1],e=arguments[2],l.debug("[Import] Setting external="+e.toString()+" resource to import: "+t)),e?l.debug("[Import] Registering external resource to import: "+t):l.debug("[Import] Registering local resource to import: "+t);var o;return u?(o=new Promise(function(s,a){var i=c(function(){var m=!1,_=0;for(var I in de)_++;return _0?u?setTimeout(n.bind(window),r.CONFIG.get("delayForReady")):typeof f<"u"&&setTimeout(n.bind(f),r.CONFIG.get("delayForReady")):n.call(r)},"_Ready");u?(window.onload=mt,he&&document.addEventListener("deviceready",mt,ze)):f.onload=mt;class Ut extends C("InheritClass"){constructor({instance:n,name:e,fget:o,fset:s,value:a}){super({instance:n,name:e,fget:o,fset:s,value:a}),this._new_({instance:n,name:e,fget:o,fset:s,value:a})}_new_({instance:n,name:d,fget:o,fset:s,value:a}){var i=this,d=typeof d>"u"?Be(i):d;Object.defineProperty(n,d,{set(h){let m=h;l.debug("value changed "+d);var _;typeof s<"u"&&typeof s=="function"?_=s(m):_=m,n["_"+d]=_},get(){let h=n["_"+d];l.debug("returning value "+d);var m=c(function(I){return typeof I=="object"&&Object.hasOwnProperty.call(I,"value")?I.value:I},"is_ddo"),_;return typeof o<"u"&&typeof o=="function"?_=o(m(h)):_=m(h),_}})}}c(Ut,"DDO"),F(Ut);class wt{constructor({component:n,template:e}){S(this,"template","");S(this,"__definition",{});this.component=n,this.template=e}assign(n){var e=this;if(typeof e.component>"u")throw new Error("DefaultTemplateHandler.assign: component is undefined");if(typeof e.component.processorHandler>"u")throw new Error("DefaultTemplateHandler.assign: component.processorHandler is undefined");var o=e.component.processorHandler;o.component=e.component;var s=typeof e.template<"u"?e.template:"";typeof n=="object"?[...Object.keys(n)].map(function(a){var i=n[a];if(typeof i=="string"||typeof i=="number"||!isNaN(i))try{i=oe.processObject.bind(o).call(o,i,e.component),s=s.replace(new RegExp(`{{${a}}}`,"g"),i)}catch(d){throw l.warn(`${e.component.name} could not parse processors.`),Error(`${e.component.name} could not parse processors. Reason: ${d.message}`)}}):l.debug(`${e.component.name}.data is not an object`);try{s=oe.processObject.call(o,s,e.component)}catch(a){throw l.warn(`${e.component.name} could not parse processors.`),Error(`${e.component.name} could not parse processors. Reason: ${a.message}`)}return s}}c(wt,"DefaultTemplateHandler"),wt.__definition={},pt(wt,"com.qcobjects");var zn=c(function(t,n){let e=t.path.replace(/{(.*?)}/g,"(?<$1>.*)");return{...[...n.matchAll(new RegExp(e,"g"))][0].groups}},"__routing_params__"),Bn=c(function(t,n){return t.filter(function(e){var o=e.path.replace(/{(.*?)}/g,"(?<$1>.*)");return new RegExp(o,"g").test(n)}).reverse()},"__valid_routings__"),Gt=c(function(t,n){return t.includes(n)},"__valid_routing_way__"),Xn=c(function(t,n){var e=t.getAttribute("shadowed")===null,o=t.getAttribute("template-source")===null,s=t.getAttribute("shadowed")==="true",a=t.getAttribute("cached")===null,i=t.getAttribute("cached")==="true",d=typeof r.CONFIG.get("tplextension")<"u"?r.CONFIG.get("tplextension"):"html";d=t.getAttribute("tplextension")!==null?t.getAttribute("tplextension"):d;var h=t.getAttribute("name"),m=t.getAttribute("componentClass")!==null?t.getAttribute("componentClass"):"Component";let _=r.CONFIG.get("preserveComponentBodyTag")?h!==null?"com.qcobjects.components."+h+".ComponentBody":"com.qcobjects.components.ComponentBody":m;h=h!==null?h:C(_)&&typeof C(_).name<"u"?C(_).name:"";var I=C(_),N=_!=="Component"&&typeof I<"u"&&typeof I.tplsource=="string"&&I.tplsource!=="",H=o&&N?I.tplsource:o?"default":t.getAttribute("template-source");l.debug(`template source for ${h} is ${H} `),l.debug(`type for ${h} is ${ye(I)} `);var M;M=gt({COMPONENTS_BASE_PATH:r.CONFIG.get("componentsBasePath"),COMPONENT_NAME:h,TPLEXTENSION:d,TPL_SOURCE:H}),r.CONFIG.get("preserveComponentBodyTag")&&ne(h!==""?"com.qcobjects.components."+h:"com.qcobjects.components",[me("ComponentBody",C("Component"),{name:h,tplsource:H,tplextension:d,reload:!0})]);var j=c(function(){var B=e?I&&I.shadowed||C("Component").shadowed:s,K={__parent__:n,name:h,cached:a?C("Component").cached:i,shadowed:B,tplextension:d,body:r.CONFIG.get("preserveComponentBodyTag")?P("componentBody"):t,templateURI:M,tplsource:H};(typeof h>"u"||h===""||h===null)&&delete K.name,M===""&&delete K.templateURI;var Q=te(I,K);return r.CONFIG.get("preserveComponentBodyTag")&&t.append(Q),Q},"__create_component_instance_"),X=j.call(this);return X},"_buildComponentFromElement_"),Dt=c(function(t,n){var e=[];return u?e=t.map(function(o){return Xn(o,n)}):l.debug("[_buildComponentsFromElements_] not implemented for Non-Browser environments"),e},"_buildComponentsFromElements_");ne("com.qcobjects",[c(class extends C("InheritClass"){constructor({templateURI:e="",template:o,tplsource:s="default",url:a="",name:i="",method:d="GET",data:h={},reload:m=!1,shadowed:_=!1,cached:I=!0,_body:N=P("div"),__promise__:H=null,__shadowRoot:M,body:j,shadowRoot:X,splashScreenComponent:B,controller:K,view:Q}){super(...arguments);S(this,"validRoutingWays",["pathname","hash","search"]);S(this,"basePath",D);S(this,"domain",L);S(this,"templateHandler","DefaultTemplateHandler");S(this,"processorHandler",null);S(this,"routingWay",null);S(this,"routingNodes",[]);S(this,"routings",[]);S(this,"routingPath","");S(this,"routingPaths",[]);S(this,"_componentHelpers",[]);S(this,"subcomponents",[]);S(this,"splashScreenComponent");S(this,"controller");S(this,"view");S(this,"effect");S(this,"method","GET");S(this,"cached",!0);S(this,"__promise__",null);S(this,"__namespace");var W=this;typeof W.name>"u"&&l.warn("A name is not defined for "+ye(W)),W.routingWay=r.CONFIG.get("routingWay"),W.processorHandler=te(oe,{component:W}),W.data=typeof W.data>"u"||W.data===null?{}:W.data,W.data=Object.assign(W.data,W.dataAttributes),W.createServiceInstance().then(function(Ze){typeof W.__new__=="function"&&W.__new__.call(W,W),W._generateRoutingPaths(W.body).then(function(){W._reroute_().then(function(){return W.rebuild().then(function(){l.info(`Component._new_ The component ${W.name} was built successfully!`)}).catch(function(Ve){l.warn(`Component._new_ Something went wrong building the component ${W.name}`),console.error(Ve)})})})})}set body(e){var o=this;o._body=e}get body(){var e=this;return e._body}set cacheIndex(e){l.debug("[cacheIndex] This property is readonly")}get cacheIndex(){var e=this,o=y(e.routingPath);return U.encode(e.name+o)}set parsedAssignmentText(e){l.debug("[parsedAssignmentText] This property is readonly")}get parsedAssignmentText(){var e=this;if(e._parsedAssignmentText=e.parseTemplate(e.template),typeof e._parsedAssignmentText>"u")throw Error(`[Component][${this.name}][parsedAssignmentText] Could not generate content!`);return e._parsedAssignmentText}set shadowRoot(e){var o=this;typeof o.__shadowRoot>"u"?o.__shadowRoot=e:l.debug("[shadowRoot] This property can only be assigned once!")}get shadowRoot(){var e=this;return e.__shadowRoot}set routingSelected(e){l.debug("[routingSelected] This is a read-only property of the component")}get routingSelected(){var e=this;return Bn(e.routings,e.routingPath)}set routingParams(e){l.debug("[routingParams] This is a read-only property of the component")}get routingParams(){var e=this;return[{}].concat(e.routingSelected.map(function(o){return zn(o,e.routingPath)})).reduce(function(o,s,a){return Object.assign(o,s)})}createServiceInstance(){var e=this,o=e.body,s=this.data,a,i=e.getClass().__definition,d=u&&o.getAttribute("serviceClass")!==null?o.getAttribute("serviceClass"):null;return new Promise(function(h,m){var _=!!(Object.hasOwnProperty.call(o,"enableServiceClass")&&o.enableServiceClass||!Object.hasOwnProperty.call(o,"enableServiceClass")),I=!!(u&&o.getAttribute("response-to")!==null&&o.getAttribute("response-to")==="data"),N=!!(u&&o.getAttribute("response-to")!==null&&o.getAttribute("response-to")==="template");if(_&&d!==null&&(a=C(d)),!I&&i&&Object.hasOwnProperty.call(i,"responseTo")?I=i.responseTo==="data":!I&&Object.hasOwnProperty.call(C("Component"),"responseTo")&&(I=C("Component").responseTo==="data"),!N&&i&&Object.hasOwnProperty.call(i,"responseTo")?N=i.responseTo==="template":!N&&Object.hasOwnProperty.call(C("Component"),"responseTo")&&(N=C("Component").responseTo==="template"),typeof a<"u"&&typeof _<"u"&&_===!0&&(I||N)){l.info("Loading service "+d);var H=te(a,{data:s});yt(H).then(function({request:M,service:j}){var X;typeof j.JSONresponse<"u"&&j.JSONresponse!==null?X=j.JSONresponse:X=j.template,I&&(typeof s=="object"&&typeof X=="object"?s=Object.assign(s,X):s=X,e.data=s),e.serviceInstance=H,e.serviceData=s,N&&(e.template=X),h(X)},function(M){l.debug(`Service loading rejected for ${d} in ${e.name}`),m(M)}).catch(function(M){throw l.debug("Something went wroing while trying to load the service "+d),Error(`Error loading ${d} for ${e.name}. Detail: ${M}`)})}else h(null)})}_bindroute_(){var e=this;e._bindroute_.loaded?l.debug(`Routes already bound to popstate events for ${e.name}`):(u&&e.hostElements("a").map(function(o){return o.oldclick=o.onclick,o.onclick=function(s){var a=!0;r.global.get("routingPaths")||r.global.set("routingPaths",[]);var i=r.CONFIG.get("routingWay"),d=s.target[i];return r.global.get("routingPaths").includes(d)&&s.target[i]!==document.location[i]&&s.target.href!==document.location.href?(l.debug("A ROUTING WAS FOUND: "+d),window.history.pushState({href:s.target.href},s.target.href,s.target.href),C("Component").route(),a=!1):l.debug("NO ROUTING FOUND FOR: "+d),typeof s.target.oldclick<"u"&&typeof s.target.oldclick=="function"&&s.target.oldclick.call(s.target,s),a},null}),this._bindroute_.loaded=!0)}done(e){var o;if(typeof e<"u"){var{request:s,component:a}=e;o=Promise.resolve({request:s,component:a})}return o}createControllerInstance(){var e;if(u){if(typeof this.body>"u")throw new Error("The component has no body");var o=this.body.getAttribute("controllerClass");o||(o="Controller"),e=C(o),typeof e<"u"&&(this.controller=te(e,{component:this}))}return new Promise((s,a)=>{if(u&&typeof e<"u"&&typeof this.controller<"u"){if(typeof this.controller.done=="function")try{this.controller.done.call(this.controller)}catch(i){throw Error(i)}else l.debug(`${o} does not have a done() method.`),a(`${o} does not have a done() method.`);typeof this.controller.createRoutingController=="function"?this.controller.createRoutingController.call(this.controller):l.debug(`${o} does not have a createRoutingController() method.`)}s({component:this,controller:this.controller})})}createEffectInstance(){var e=this;return new Promise(function(o,s){if(u){var a=e.body.getAttribute("effectClass"),i=e.body.getAttribute("apply-effect-to");i=i!==null?i:"load",a!==null&&i==="observe"?e.applyObserveTransitionEffect(a):a!==null&&i==="load"&&e.applyTransitionEffect(a)}o({component:e,effect:e.effect})})}createViewInstance(){var e=this;return new Promise(function(o,s){var a=u?e.body.getAttribute("viewClass"):null;if(a!==null){var i=C(a);typeof i<"u"&&(e.view=te(i,{component:e}),Object.hasOwnProperty.call(e.view,"done")&&typeof e.view.done=="function"&&e.view.done.call(e.view))}o({component:e,view:e.view})})}__done__(){var e=this,o=c(function(){if(typeof e>"u")throw new Error("componentDone() has lost its context");if(typeof e.body>"u")throw new Error("The component has no body");e.createViewInstance(),e.createControllerInstance(),e.createEffectInstance(),l.debug(`Trying to run component helpers for ${e.name}...`);try{e.runComponentHelpers(),l.debug(`Component helpers for ${e.name} executed.`)}catch(s){throw l.debug(`Component helpers for ${e.name} could not be executed.`),Error(s)}e.subcomponents=e.__buildSubComponents__(),e._bindroute_(),e.body.setAttribute("loaded",!0)},"componentDone");return new Promise(function(s,a){try{Promise.resolve(o.call(e))}catch(i){a(i)}})}hostElements(e){var o=this,s=o.shadowed&&typeof o.shadowRoot<"u"?o.shadowRoot.subelements(e):o.body.subelements(e);return s}get subtags(){var e=this,o=ae;return e.hostElements(o)}get bodyAttributes(){var e=this,o=e.body;return u?[...o.getAttributeNames()].map(s=>({[s]:o.getAttribute(s)})).reduce((s,a,i)=>Object.assign(s,a)):{}}get dataAttributes(){var e=this,o=e.body;return u?[{}].concat([...o.getAttributeNames()].filter(s=>s.startsWith("data-")).map(s=>({[s.split("-")[1]]:o.getAttribute(s)}))).reduce((s,a,i)=>Object.assign(s,a)):{}}__buildSubComponents__(e=!1){var o=this,s=o.subtags;return e||(s=s.filter(a=>a.getAttribute("loaded")!=="true")),(typeof o<"u"||o.subcomponents.length<1)&&(o.subcomponents=Dt(s,o)),o.subcomponents}fail(e){var o;if(typeof e<"u"){var{error:s,component:a}=e;o=Promise.resolve({error:s,component:a})}return o}set(e,o){this[e]=o}get(e){return this[e]}feedComponent(){var e=this;l.debug(`[Component][${this.name}][feedComponent] start feeding component...`);var o=c(function(i){if(typeof i.container>"u"&&typeof i.body>"u"){l.warn("COMPONENT {{NAME}} has an undefined container and body".replace("{{NAME}}",i.name));return}var d=typeof i.container>"u"||i.container===null?i.body:i.container,h=i.parsedAssignmentText;if(i.innerHTML=h,i.shadowed){l.debug("COMPONENT {{NAME}} is shadowed".replace("{{NAME}}",i.name)),l.debug("Preparing slots for Shadowed COMPONENT {{NAME}}".replace("{{NAME}}",i.name));var m=P("div");d.subelements("[slot]").map(function(N){N.parentElement===d&&m.appendChild(N)}),l.debug("Creating shadowedContainer for COMPONENT {{NAME}}".replace("{{NAME}}",i.name));var _=P("div");_.classList.add("shadowHost");try{i.shadowRoot=_.attachShadow({mode:"open"})}catch{try{l.debug("Shadowed COMPONENT {{NAME}} is repeated".replace("{{NAME}}",i.name)),i.shadowRoot=_.shadowRoot}catch{l.warn("Shadowed COMPONENT {{NAME}} is not allowed on this browser".replace("{{NAME}}",i.name))}}if(typeof i.shadowRoot<"u"&&i.shadowRoot!==null){i.reload?(l.debug("FORCED RELOADING OF CONTAINER FOR Shadowed COMPONENT {{NAME}}".replace("{{NAME}}",i.name)),_.shadowRoot.innerHTML=i.innerHTML):(m.innerHTML=i.parseTemplate(m.innerHTML),l.debug("ADDING Shadowed COMPONENT {{NAME}} ".replace("{{NAME}}",i.name)),_.shadowRoot.innerHTML+=i.innerHTML),l.debug("ADDING Slots to Shadowed COMPONENT {{NAME}} ".replace("{{NAME}}",i.name)),_.innerHTML+=m.innerHTML,l.debug("APPENDING Shadowed COMPONENT {{NAME}} to Container ".replace("{{NAME}}",i.name));var I=d.querySelector(".shadowHost");typeof I<"u"&&I!==null?(l.debug("Shadowed Container for COMPONENT {{NAME}} is already present in the tree ".replace("{{NAME}}",i.name)),i.shadowRoot.innerHTML=_.shadowRoot.innerHTML):d.appendChild(_)}else l.warn("Shadowed COMPONENT {{NAME}} is bad configured".replace("{{NAME}}",i.name))}else i.reload?(l.debug("FORCED RELOADING OF CONTAINER FOR COMPONENT {{NAME}}".replace("{{NAME}}",i.name)),d.innerHTML=i.innerHTML):d&&i?(l.debug("ADDING COMPONENT {{NAME}} ".replace("{{NAME}}",i.name)),d.innerHTML+=i.innerHTML):l.warn("COMPONENT {{NAME}} is not added to the DOM".replace("{{NAME}}",i.name))},"_feedComponent_InBrowser"),s=c(function(i){var d=i.parsedAssignmentText;i.innerHTML=d},"_feedComponent_InNode"),a;if(!Ae(e,"Component")){l.warn("Trying to feed a non component object");return}return u?a=o(e):a=s(e),a}rebuild(){var e=this,o=new Promise(function(s,a){if((typeof e>"u"||e===null)&&a("Component is undefined"),He(e)&&Ae(e,"Component"))switch(!0){case e.get("tplsource")==="none":l.debug("Component "+e.name+" has specified template-source=none, so no template load was done");var i={request:null,component:e};e.__done__().then(function(){typeof e.done=="function"&&e.done.call(e,i),s.call(o,i)},function(){a.call(o,i)});break;case e.get("tplsource")==="inline":l.debug("Component "+e.name+" has specified template-source=inline, so it is assumed that template is already declared"),async function(d){d.feedComponent.bind(d)()}(e);var i={request:null,component:e};e.__done__().then(function(){typeof e.done=="function"&&e.done.call(e,i),s.call(o,i)},function(){a.call(o,i)});break;case(e.get("tplsource")==="default"&&e.get("templateURI")!==""):e.set("url",e.get("basePath")+e.get("templateURI")),bt(e,!1).then(function(d){s.call(o,d)},function(d){a.call(o,d)});break;case(e.get("tplsource")==="external"&&e.get("templateURI")!==""):e.set("url",e.get("templateURI")),bt(e,!1).then(function(d){s.call(o,d)},function(d){a.call(o,d)});break;case(e.get("tplsource")==="default"&&e.get("templateURI","")===""):l.debug(`Component ${e.name} template-source is ${e.get("tplsource")} and no templateURI is present`),a.call(o,`Component ${e.name} template-source is ${e.get("tplsource")} and no templateURI is present`);break;default:l.debug("Component "+e.name+" will not be rebuilt because no templateURI is present"),a.call(o,{request:null,component:e});break}});return o}Cast(e){let o=G(e).map(s=>s.name.replace(/bound /g,"")).map(s=>({[s]:e[s].bind(this)})).reduce((s,a)=>Object.assign(s,a),{});return De(this,o)}static route(){var e=this,o,s=!!(He(e)&&Ae(e,"Component")),a=c(function(i){var d=[],h=i.filter(function(m){return typeof m<"u"}).map(function(m){if(typeof m.name<"u")d.push(m.name);else throw new Error(ye(m)+" does not have a name");return new Promise(function(_,I){var N;return typeof m<"u"&&m._reroute_?N=m._reroute_().then(function(){return m.reload=!0,m.rebuild()}).then(function(H){if(Object.hasOwnProperty.call(m,"subcomponents")&&typeof m.subcomponents<"u"&&m.subcomponents.length>0)return l.debug("LOOKING FOR ROUTINGS IN SUBCOMPONENTS FOR: "+m.name),a.call(m,m.subcomponents);l.debug("No subcomponents to look for routings in: "+m.name),m.subtags.length>0&&(m.subcomponents=m.__buildSubComponents__(!0)),_(m)}):typeof m<"u"&&I("Component "+m.name+" is not an instance of Component"),N})});return Promise.all(h).then(function(){l.debug("ROUTING COMPLETED FOR "+d.join(", "))}).catch(function(m){l.warn("ROUTING FAILED FOR "+d.join(", ")+": "+m)})},"__route__");if(s||r.componentsStack)s&&l.debug("loading routings for instance "+e.name),o=a.call(e,s?e.subcomponents:r.componentsStack);else throw l.debug("An undetermined result expected if load routings. So will not be loaded this time."),Error("There is no valid instance and no components stack available to apply rountings");return o}fullscreen(){if(u){var e=this.body;e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen()}}closefullscreen(){u&&(document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen())}_generateRoutingPaths(e){var o=this;return new Promise(function(s,a){u&&Gt(o.validRoutingWays,o.routingWay)&&typeof e<"u"&&(o.innerHTML=e.innerHTML,o.routingNodes=e.subelements("routing"),o.routings=[],o.routingNodes.map(function(i,d){var h=i.getAttributeNames(),m={};h.map(function(_,I){m[h[I]]=i.getAttribute(h[I])}),o.routings.push(m),o.routingPaths||(o.routingPaths=[]),o.routingPaths.includes(m.path)||o.routingPaths.push(m.path),r.global.get("routingPaths")||r.global.set("routingPaths",[]),r.global.get("routingPaths").includes(m.path)||r.global.get("routingPaths").push(m.path)})),s()})}parseTemplate(e){var o=this,s,a=e;if(Object.hasOwnProperty.call(o,"templateHandler")){var i=o.templateHandler;l.debug(`[Component][${this.name}][parseTemplate] Attempting to use ${i} ...`);var d=C(i),h=te(d,{component:o,template:a});h.component=o;var m=o.data;if(Object.hasOwnProperty.call(o,"assignRoutingParams")&&o.assignRoutingParams)try{m=Object.assign(m,o.routingParams)}catch{l.debug("[parseTemplate] it was not possible to assign the routing params to the template")}s=h.assign(m)}else l.debug(`[Component][${this.name}][parseTemplate] No value for templateHandler. Using raw content...`),s=a;return s}_reroute_(){var e=this;return new Promise(function(o,s){u&&Gt(e.validRoutingWays,e.routingWay)&&(e.routingPath=document.location[e.routingWay],e.routingSelected.map(function(a,i){var d=gt({COMPONENTS_BASE_PATH:r.CONFIG.get("componentsBasePath"),COMPONENT_NAME:a.name.toString(),TPLEXTENSION:Object.hasOwnProperty.call(a,"tplextension")?a.tplextension:e.tplextension,TPL_SOURCE:"default"});e.templateURI=d}),e.routingSelected.length>0&&(e.template="",e.body.innerHTML="")),o(e)})}lazyLoadImages(){if(u){var e=this,o=e.shadowed?e.shadowRoot:e.body,s=[...o.subelements("img[lazy-src]")],a=c(function(d){d.setAttribute("src",d.getAttribute("lazy-src")),d.onload=()=>{d.removeAttribute("lazy-src")}},"_lazyLoadImages");if("IntersectionObserver"in window){var i=new IntersectionObserver((d,h)=>{d.forEach(m=>{m.isIntersecting&&(a(m.target),h.unobserve(m.target))})});s.map(function(d){return i.observe(d)})}else s.map(a)}return null}applyTransitionEffect(e){var o=C(e);if(typeof o>"u")throw Error(`${e} not found.`);typeof o<"u"&&Ae(o,"TransitionEffect")?(this.effect=te(o,{component:this}),this.effect.apply(this.effect.defaultParams)):l.debug(`${e} is ${ye(o)} but is not a TransitionEffect`)}applyObserveTransitionEffect(e){if(u){var o=this,s=o.shadowed?o.shadowRoot.host:o.body,a=c(function(d){o.applyTransitionEffect(e)},"_applyEffect_");if("IntersectionObserver"in window){var i=new IntersectionObserver((d,h)=>{d.forEach(m=>{m.isIntersecting&&(a(m.target),h.unobserve(m.target))})});i.observe(s)}else a(s)}return null}scrollIntoHash(){if(u){var e=this;if(document.location.hash!==""){var o=e.shadowed?e.shadowRoot:e.body;o.subelements(document.location.hash).map(function(s){typeof s.scrollIntoView=="function"&&s.scrollIntoView(r.CONFIG.get("scrollIntoHash",{behavior:"auto",block:"top",inline:"top"}))})}}}i18n_translate(){if(u&&r.CONFIG.get("use_i18n")){var e=this,o=e.shadowed?e.shadowRoot:e.body,s=r.CONFIG.get("lang","en"),a=navigator.language.slice(0,2),i=r.global.get("i18n");if(s!==a&&typeof i=="object"&&Object.hasOwnProperty.call(i,"messages")){var d=c(function(){var h=this;return new Promise(function(m,_){var I=i.messages.filter(function(N){return Object.hasOwnProperty.call(N,s)&&Object.hasOwnProperty.call(N,a)});o.subelements("ul,li,h1,h2,h3,a,b,p,input,textarea,summary,details,option,component").map(function(N){return I.map(function(H){var M=N.innerHTML;return M=M.replace(new RegExp(`${H[s]}`,"g"),H[a]),N.innerHTML=M,null}),N}),m()})},"callback_i18n");d.call(e).then(function(){l.debug("i18n loaded for component: "+e.name)})}}}addComponentHelper(e){var o=this;o._componentHelpers.push(e)}runComponentHelpers(){if(u){var e=this,o=[];o.push(e.i18n_translate.bind(e)),o.push(e.scrollIntoHash.bind(e)),o.push(e.lazyLoadImages.bind(e)),o=o.concat(e._componentHelpers),o.map(function(s){l.debug(`Executing ${s.name} as component helper for ${e.name}...`),s()})}}},"Component")]),G(C("Component")).map(function(t){O(t)}),u&&window.addEventListener("popstate",function(t){t.stopImmediatePropagation(),t.stopPropagation(),C("Component").route()}),ne("com.qcobjects.controllers",[c(class extends C("InheritClass"){constructor({component:e,dependencies:o}){super({component:e,dependencies:o});S(this,"component",null);S(this,"dependencies",[]);if(this.component=e,this.dependencies=o,typeof this.component>"u"||this.component==="null")throw Error(`${ye(this)} must be called with a component`)}routingSelectedAttr(e){return this.component.routingSelected.map(function(o){return o[e]}).filter(function(o){return o}).pop()}isTouchable(){return"ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0}onpress(e,o){try{this.isTouchable()?this.component.body.subelements(e)[0].addEventListener("touchstart",o,{passive:!0}):this.component.body.subelements(e)[0].addEventListener("click",o,{passive:!0})}catch{l.debug("No button to assign press event")}}createRoutingController(){var e=this,o=e.component,s=e.routingSelectedAttr("controllerclass");if(typeof s<"u"){var a=C(s);typeof a<"u"&&(o.routingController=te(a,{component:o}),Object.hasOwnProperty.call(o.routingController,"done")&&typeof o.routingController.done=="function"&&o.routingController.done.call(o.routingController))}}done(){}},"Controller")]),ne("com.qcobjects.views",[c(class extends C("InheritClass"){constructor({component:n=void 0,dependencies:e=[]}){if(super(...arguments),typeof this.component>"u"||this.component==="null")throw Error(`${ye(this)} must be called with a component`)}},"View")]),ne("com.qcobjects.api",[c(class extends C("InheritClass"){constructor(){super(...arguments);S(this,"kind","rest");S(this,"domain",L);S(this,"basePath",D);S(this,"url","");S(this,"method","GET");S(this,"data",{});S(this,"reload",!1);S(this,"cached",!1)}set(e,o){this[e]=o}get(e){return this[e]}},"Service")]),ne("com.qcobjects.api.services",[c(class extends C("Service"){constructor(){super(...arguments);S(this,"method","GET");S(this,"cached",!1);S(this,"headers",{"Content-Type":"application/json",charset:"utf-8"});S(this,"JSONresponse",null)}done(e){l.debug("***** RECEIVED RESPONSE:"),l.debug(e.service.template),this.JSONresponse=JSON.parse(e.service.template)}},"JSONService")]),ne("com.qcobjects.api.config",[c(class extends C("JSONService"){constructor(){super(...arguments);S(this,"method","GET");S(this,"cached",!1);S(this,"configFileName","config.json");S(this,"headers",{"Content-Type":"application/json",charset:"utf-8"});S(this,"JSONresponse",null);this.set("url",this.get("basePath")+this.get("configFileName"))}done(e){l.debug("***** CONFIG LOADED:"),l.debug(e.service.template),this.JSONresponse=JSON.parse(e.service.template),Object.hasOwnProperty.call(this.JSONresponse,"__encoded__")&&(this.JSONresponse=JSON.parse(C("_Crypt").decrypt(this.JSONresponse.__encoded__,le)));for(var o in this.JSONresponse)r.CONFIG.set(o,this.JSONresponse[o]);this.configLoaded.call(this)}fail(e){this.configLoaded.call(this)}},"ConfigService")]),ne("com.qcobjects.valueObjects",[c(class extends C("InheritClass"){constructor(){super(...arguments)}},"VO")]);var gt=c(function(t){var n="";if(t.TPL_SOURCE==="default"){n="{{COMPONENTS_BASE_PATH}}{{COMPONENT_NAME}}.{{TPLEXTENSION}}";for(var e in t){var o=t[e];n=n.replace("{{"+e+"}}",t[e])}}return n},"ComponentURI"),bt=c(function(t,n){var e,o=c(function(i,d){return e=new Promise(function(h,m){var _=i.__promise__,I=Object.hasOwnProperty.call(i,"container")&&typeof i.container<"u"&&i.container!==null?i.container:i.body;if(I!==null){var N=c(function(Q){Q.feedComponent();var W={request:j,component:Q};h.call(_,W)},"_feedComponent_");l.debug("LOADING COMPONENT DATA {{DATA}} FROM {{URL}}".replace("{{DATA}}",y(i.data)).replace("{{URL}}",i.url));var H=c(function(){var Q=M?0:200;if(j.status===Q){var W=j.responseText;l.debug("Data received {{DATA}}".replace("{{DATA}}",y(W))),l.debug("CREATING COMPONENT {{NAME}}".replace("{{NAME}}",i.name)),i.template=W,i.cached&&typeof K<"u"&&K.save(i.name,i.template),N.call(this,i)}else{var Ze={request:j,component:i};m.call(_,Ze)}},"_componentLoaded");if(typeof i.template=="string"&&i.template!=="")N.call(this,i);else{var M=!!i.url.startsWith("file:"),j=new XMLHttpRequest;if(M){if("fetch"in r){l.debug("I can use fetch..."),l.debug("It is a file to be loaded, so I will try to use fetch");var X=fetch(i.url).then(Q=>{l.debug("I got a response from fetch, so I'll feed the component"),Q.text().then(W=>{i.template=W,N.call(this,i)})})}}else try{l.debug("Calling the url of component in async mode."),j.open(i.method,i.url,!0)}catch{l.debug("Last try has failed... The component cannot be loaded.")}!he&&!M&&j.setRequestHeader("Content-Type","text/html"),M||(j.onload=H);var B=c(function(Q){Q=!(typeof Q>"u"||!Q),l.debug("SENDING THE NORMAL REQUEST "),Q?"fetch"in r||(l.debug("I have to try to load the file using xhr... "),j.send(null),j.status===XMLHttpRequest.DONE&&H.call(this)):(l.debug("Trying to send the data to the component... "),j.send(y(i.data)))},"_directLoad");if(i.cached&&!M){l.debug("USING CACHE FOR COMPONENT: "+i.name);var K=new A({index:i.cacheIndex,load(Q){B.call(this,M)},alternate(Q){i.method==="GET"?(i.template=Q.cache.getCached(i.cacheIndex),N.call(this,i)):B.call(this,M)}});f.lastCache=K}else l.debug("NOT USING CACHE FOR COMPONENT: "+i.name),B.call(this,M)}}else l.debug("CONTAINER DOESNT EXIST")}),e.then(function(h){return i.__done__().then(function(){var m;return typeof i.done=="function"&&(m=i.done.call(i,h)),Promise.resolve(m)})},function(h){var m;return typeof i.fail=="function"&&(m=i.fail.call(i,h)),Promise.reject(m)}).catch(function(h){l.debug("Something wrong loading the component")}),e},"_componentLoaderInBrowser"),s=c(function(i,d){return e=new Promise(function(h,m){var _=e,I=c(function(j){j.feedComponent();var X={request:null,component:j};h.call(_,X)},"_feedComponent_");l.debug("LOADING COMPONENT DATA {{DATA}} FROM {{URL}}".replace("{{DATA}}",y(i.data)).replace("{{URL}}",i.url));var N=c(function(j,X){if(j){var K={request:null,component:i};m.call(_,K)}else{var B=X.toString();l.debug("Data received {{DATA}}".replace("{{DATA}}",y(B))),l.debug("CREATING COMPONENT {{NAME}}".replace("{{NAME}}",i.name)),i.template=B,i.cached&&typeof M<"u"&&M.save(i.name,i.template),I.call(this,i)}},"_componentLoaded");if(typeof i.template=="string"&&i.template!=="")I.call(this,i);else{l.debug("Loading the component as a local file in server...");var H=c(function(j){let X=b("fs");l.debug("SENDING THE NORMAL REQUEST "),X.readFile(i.url,N)},"_directLoad");if(i.cached){l.debug("USING CACHE FOR COMPONENT: "+i.name);var M=new A({index:i.cacheIndex,load(j){H.call(this)},alternate(j){i.method==="GET"?(i.template=j.cache.getCached(i.cacheIndex),I.call(this,i)):H.call(this)}});f.lastCache=M}else l.debug("NOT USING CACHE FOR COMPONENT: "+i.name),H.call(this)}}),e.then(function(h){return i.__done__().then(function(){var m;return typeof i.done=="function"&&(m=i.done.call(i,h)),Promise.resolve(m)})},function(h){var m;return typeof i.fail=="function"&&(m=i.fail.call(i,h)),Promise.reject(m)}).catch(function(h){l.debug("Something wrong loading the component")}),e},"_componentLoaderInNode"),a;return u?typeof n<"u"&&n?a=be(o,arguments):a=o(t,n):a=s(t,n),a},"componentLoader"),yt=c(function(t,n){var e=c(function(d,h){var m=new Promise(function(_,I){l.debug("LOADING SERVICE DATA {{DATA}} FROM {{URL}}".replace("{{DATA}}",y(d.data)).replace("{{URL}}",d.url));var N=new XMLHttpRequest;N.withCredentials=d.withCredentials;var H=!0;N.open(d.method,d.url,H);for(var M in d.headers)try{typeof d.headers[M]!="function"&&N.setRequestHeader(M,d.headers[M])}catch{l.debug("Something went wrong when assign the header "+M)}N.onload=function(){if(N.status===200){var B=N.responseText;if(l.debug("Data received {{DATA}}".replace("{{DATA}}",y(B))),l.debug("CREATING SERVICE {{NAME}}".replace("{{NAME}}",d.name)),d.template=B,d.cached&&typeof X<"u"&&X.save(d.name,d.template),typeof d.done=="function"){var K={request:N,service:d};d.done.call(d,K),_.call(m,K)}}else if(typeof d.fail=="function"){var K={request:N,service:d};d.fail.call(d,K),I.call(m,K)}};var j=c(function(){l.debug("SENDING THE NORMAL REQUEST ");try{N.send(y(d.data))}catch{l.debug("SOMETHING WRONG WITH REQUEST "),I.call(m,{request:N,service:d})}},"_directLoad");if(d.cached){var X=new A({index:d.data,load(B){j.call(this)},alternate(B){if(d.method==="GET"){if(d.template=B.cache.getCached(d.name),typeof d.done=="function"){var K={request:N,service:d};d.done.call(d,K),_.call(m,K)}}else j.call(this)}});f.lastCache=X}else j.call(this);return N});return m},"_serviceLoaderInBrowser"),o=c(function(d,h){var m=new Promise(function(_,I){if(typeof URL>"u"){f.URL=b("url").URL;let ue=f.URL}var N=new URL(d.url),H;d.useHTTP2=Object.hasOwnProperty.call(d,"useHTTP2")&&d.useHTTP2;var M=c(function(ue){l.debug("LOADING SERVICE DATA (non-browser) {{DATA}} FROM {{URL}}".replace("{{DATA}}",y(d.data)).replace("{{URL}}",d.url));var Ue,_t={http2Client:B,request:ue,service:d,responseHeaders:null};if(typeof d.data=="object"&&d.data!==null&&d.useHTTP2)try{l.debug("Sending data...");let Ee=new Buffer(y(d.data));ue.write(Ee)}catch{l.debug("It was not possible to send any data")}Ue="",ue.on("response",(Ee,Lo)=>{l.debug("receiving response..."),_t.responseHeaders=Ee,Ue=""}),ue.on("data",Ee=>{l.debug("receiving data..."),Ue+=""+Ee.toString(),d.template=Ue}),d.useHTTP2&&ue.resume(),ue.on("end",()=>{l.debug("ending call..."),d.template=Ue,Object.hasOwnProperty.call(d,"useHTTP2")&&d.useHTTP2?B.destroy():ue.destroy(),d.done.call(d,_t),_.call(m,_t)}),d.useHTTP2&&ue.end()},"captureEvents");try{var j;if(d.useHTTP2){l.debug("using http2");var X=b("http2"),B=X.connect(N.origin);j=Object.assign({":method":d.method,":path":N.pathname},d.options),j=Object.assign(j,d.headers),H=B.request(j),H.setEncoding("utf8"),M(H)}else if(N.protocol==="http:"){var K=b("http"),Q=K.request;j=Object.assign({url:d.url,headers:d.headers},d.options);var H=Q(d.url);M(H)}else if(N.protocol==="https:"){var W=b("https");j=Object.assign({hostname:N.hostname,port:N.port,path:N.pathname,method:d.method,headers:d.headers},d.options);var Ze=W.request(j,function(ue){M(ue)});Ze.end()}else{var Ve="Protocol not supported: "+N.protocol;throw l.debug(Ve),new Error(Ve)}}catch(ue){l.debug(ue),d.fail.call(d,ue),I.call(m,ue)}}).catch(function(_){console.log(_),l.debug("Something happened when trying to call the service: "+d.name),d.fail.call(d,_)});return m},"_serviceLoaderInNode"),s=c(function(d,h){var m=new Promise(function(_,I){l.debug(`Calling mockup service ${d.name} ...`);var N={request:null,service:d,responseHeaders:d.responseHeaders};typeof d.mockup=="function"?d.mockup.call(d,N):d.done.call(d,N),_.call(m,N)});return m},"_serviceLoaderMockup"),a=c(function(d,h){var m=new Promise(function(_,I){l.debug(`Calling local service ${d.name} ...`);var N={request:null,service:d,responseHeaders:d.responseHeaders};typeof d.local=="function"?d.local.call(d,N):d.done.call(d,N),_.call(m,N)});return m},"_serviceLoaderLocal"),i;switch(t.kind){case"rest":u?typeof n<"u"&&n?i=be(e,arguments):i=e(t,n):i=o(t,n);break;case"mockup":i=s(t,n);break;case"local":i=a(t,n);break;default:l.debug(`The value of the kind property of the service ${t.name} is not valid`);break}return i},"serviceLoader");if(F(yt),F(bt),F(gt),F(Be),F(y),F(Ie),F(He),F($n),u){Element.prototype.buildComponents=function(t=!1){var n=ae,e=this,o=e.subelements(n);return Dt(o,null)},HTMLDocument.prototype.buildComponents=Element.prototype.buildComponents,HTMLElement.prototype.buildComponents=Element.prototype.buildComponents;var Ht=c(class extends HTMLElement{constructor(){super(...arguments);let t=this,n=t.nodeName.toLowerCase(),e=P("quick-component"),o=t.getAttributeNames();e.setAttribute("name",n),t.hasAttribute("shadowed")||e.setAttribute("shadowed","true"),o.map(function(a){t.hasAttribute(a)&&(e.setAttribute(a,t.getAttribute(a)),t.removeAttribute(a))});var s=t.getAttributeNames().filter(function(a){return a.startsWith("data-")}).map(function(a){return a.split("-")[1]});s.map(function(a){e.setAttribute("data-"+a,t.getAttribute("data-"+a)),t.removeAttribute("data-"+a)}),[...t.children].map(function(a){e.appendChild(a.cloneNode(!0)),a.remove()}),t.append(e)}},"_ComponentWidget_");F(Ht);var vt=c(function(t){customElements.define(t,class extends Ht{})},"RegisterWidget"),$t=c(function(){var t=[...arguments];t.filter(function(n){return typeof n=="string"}).map(function(n){vt(n)})},"RegisterWidgets");O(vt),O($t),F(vt),F($t)}u||ne("com.qcobjects.api",[c(class extends C("InheritClass"){constructor({domain:n=L,basePath:e=D,body:o=null,stream:s=null,request:a=null}){super(...arguments),l.debug("Initializing BackendMicroservice...");let i=this;typeof this.body>"u"&&(this.body=null),typeof o<"u"&&(this.body=o),this.cors(),i.stream=s,s.on("data",m=>{var _=a.method.toLowerCase(),I={post:i.post};Object.hasOwnProperty.call(I,_)&&I[_].call(i,m)});var d=a.method.toLowerCase(),h={get:i.get,head:i.head,put:i.put,delete:i.delete,connect:i.connect,options:i.options,trace:i.trace,patch:i.patch};Object.hasOwnProperty.call(h,d)&&h[d].call(i)}cors(){if(this.route.cors){l.debug("Validating CORS...");let{allow_origins:e,allow_credentials:o,allow_methods:s,allow_headers:a}=this.route.cors;var n=this;if(typeof n.headers!="object"&&(n.headers={}),typeof n.route.responseHeaders!="object"&&(n.route.responseHeaders={}),typeof e<"u")if(l.debug("CORS: allow_origins available. Validating origins..."),e==="*"||typeof n.request.headers.origin>"u"||[...e].indexOf(n.request.headers.origin)!==-1)l.debug("CORS: Adding header Access-Control-Allow-Origin=*"),n.route.responseHeaders["Access-Control-Allow-Origin"]="*";else{l.debug("CORS: Origin is not allowed: "+n.request.headers.origin),l.debug("CORS: Forcing to finish the response..."),this.body={};try{this.done()}catch(i){l.debug(`It was not possible to finish the call to the microservice: ${i}`)}}else l.debug("CORS: no allow_origins available. Allowing all origins..."),l.debug("CORS: Adding header Access-Control-Allow-Origin=*"),n.route.responseHeaders["Access-Control-Allow-Origin"]="*";typeof o<"u"?(l.debug(`CORS: allow_credentials present. Allowing ${o}...`),n.route.responseHeaders["Access-Control-Allow-Credentials"]=o.toString()):(l.debug("CORS: No allow_credentials present. Allowing all credentials."),n.route.responseHeaders["Access-Control-Allow-Credentials"]="true"),typeof s<"u"?(l.debug(`CORS: allow_methods present. Allowing ${s}...`),n.route.responseHeaders["Access-Control-Allow-Methods"]=[...s].join(",")):(l.debug("CORS: No allow_methods present. Allowing only GET, OPTIONS and POST"),n.route.responseHeaders["Access-Control-Allow-Methods"]="GET, OPTIONS, POST"),typeof a<"u"?(l.debug(`CORS: allow_headers present. Allowing ${a}...`),n.route.responseHeaders["Access-Control-Allow-Headers"]=[...a].join(",")):(l.debug("CORS: No allow_headers present. Allowing all headers..."),n.route.responseHeaders["Access-Control-Allow-Headers"]="*")}else l.debug("No CORS validation available. You can specify cors in CONFIG.backend.routes[].cors")}head(n){this.done()}get(n){l.debug(`[BackendMicroservice.get] Data received: ${y(n)}`),this.done()}post(n){this.done()}put(n){this.done()}delete(n){this.done()}connect(n){this.done()}options(n){this.done()}trace(n){this.done()}patch(n){this.done()}finishWithBody(n){try{l.debug("[BackendMicroservice.finishWithBody] Ending the stream..."),l.debug(`[BackendMicroservice.finishWithBody] type of body is: ${typeof this.body}`),typeof this.body!="string"&&(this.body=y(this.body)),l.debug(`[BackendMicroservice.finishWithBody] - body: ${this.body} `),n.write(this.body),n.end(),l.debug("[BackendMicroservice.finishWithBody] Stream ended.")}catch(e){l.debug(`[BackendMicroservice.finishWithBody] Something went wrong ending the stream: ${e}`)}}done(){l.debug("[BackendMicroservice.done] Finalizing the response...");var n=this,e=n.stream;try{if(l.debug("[BackendMicroservice.done] Sending response headers..."),n.route.responseHeaders)l.debug(`[BackendMicroservice.done] Response headers present: ${Object.keys(n.route.responseHeaders)}`),e.respond(n.route.responseHeaders);else throw Error("[BackendMicroservice.done] No headers present.")}catch(o){l.debug(`[BackendMicroservice.done] Something went wrong sending response headers: ${o}`)}if(n.body!==null)try{l.debug("[BackendMicroservice.done] A body of message is present. Finalizing the response..."),n.finishWithBody.call(n,e)}catch(o){l.debug(`[BackendMicroservice.done] Something went wrong finalizing the response: ${o}`)}else l.debug("[BackendMicroservice.done] No body present. Ending stream..."),e.end()}},"BackendMicroservice")]),me("SourceJS",Object,{domain:L,basePath:D,body:P("script"),type:"text/javascript",containerTag:"body",url:"",data:{},async:!1,external:!1,set(t,n){this[t]=n},get(t){return this[t]},status:!1,done(){},fail(){},rebuild(){var t=this;try{document.getElementsByTagName(t.containerTag)[0].appendChild(function(n,e,o){return n.type=o.type,n.src=e,n.crossOrigin=Object.hasOwnProperty.call(o,"crossOrigin")?o.crossOrigin:"anonymous",n.async=o.async,n.onreadystatechange=function(){this.readyState==="complete"&&o.done.call(o)},n.onload=function(s){o.status=!0,o.done.call(o,s)},n.onerror=function(s){o.status=!1,o.fail.call(o,s)},o.body=n,n}.call(this,P("script"),this.external?this.url:this.basePath+this.url,t))}catch(n){t.status=!1,t.fail.call(t,n)}},Cast(t){return De(this,t)},_new_(t){this.__new__(t),this.rebuild()}}),me("SourceCSS",Object,{domain:L,basePath:D,body:P("link"),url:"",data:{},async:!1,external:!1,set(t,n){this[t]=n},get(t){return this[t]},done(){},rebuild(){var t=this;u&&window.document.getElementsByTagName("head")[0].appendChild(function(n,e,o){return n.type="text/css",n.rel="stylesheet",n.href=e,n.crossOrigin="anonymous",n.onreadystatechange=function(){this.readyState==="complete"&&o.done.call(o)},n.onload=o.done,o.body=n,n}.call(this,P("link"),this.external?this.url:this.basePath+this.url,t))},Cast(t){return De(this,t)},_new_(t){this.__new__(t),this.rebuild()}});var Ce=c(function(t){return isNaN(t)?new Number(0):new Number(t)},"__to_number");Array.prototype.unique=function(){return this.filter(function(t,n,e){return e.indexOf(t)===n})},Array.unique=function(t){return t.unique()},O(Array.unique),O(Array.prototype.unique),Array.prototype.table=function(){console.table(this)},Array.table=function(t){return t.table()},O(Array.table),O(Array.prototype.table),Array.prototype.sum=function(){return this.reduce(function(t,n){return Ce(t)+Ce(n)},0)},Array.sum=function(t){return t.sum()},O(Array.sum),O(Array.prototype.sum),Array.prototype.avg=function(){return this.length<1?0:this.reduce(function(t,n){return(Ce(t)+Ce(n))/2})},Array.avg=function(t){return t.avg()},O(Array.avg),O(Array.prototype.avg),Array.prototype.min=function(){return this.reduce(function(t,n){return Ce(t)<=Ce(n)?t:n},1/0)},Array.min=function(t){return t.min()},O(Array.min),O(Array.prototype.min),Array.prototype.max=function(){return this.reduce(function(t,n){return Ce(t)>=Ce(n)?t:n},0)},Array.max=function(t){return t.max()},O(Array.max),O(Array.prototype.max),Array.prototype.sortBy=function(t,n=!0){var e=n?function(o,s){return s[t]o[t]?1:-1};return this.sort(e)},Array.sortBy=function(t,n,e=!0){return t.sortBy(n,e)},O(Array.sortBy),O(Array.prototype.sortBy),Array.matrix=function(t,n=0){var e=c(function(o){return n},"x_func");return Array.from({length:t},e)},O(Array.matrix),Array.matrix2d=function(t,n=0){var e=c(function(s){return n},"y_func"),o=c(function(s){return Array.from({length:t},e)},"x_func");return Array.from({length:t},o)},O(Array.matrix2d),Array.matrix3d=function(t,n=0){var e=c(function(s){return Array.from({length:t},function(){return n})},"y_func"),o=c(function(s){return Array.from({length:t},e)},"x_func");return Array.from({length:t},o)},O(Array.matrix3d),r.range=function(t,n=0,e=1){return(n===0||typeof n>"u")&&(n=t,t=0),Array.from({length:(n-t)/e+1},function(o,s){return t+s*e})},O(r.range),String.prototype.list=function(){var t=this;return r.range(0,t.length-1).map(function(n){return t[n]})},O(String.prototype.list),r.getDocumentLayout=function(){var t=c((o,s)=>o>s?"landscape":null,"h"),n=c((o,s)=>s>o?"portrait":null,"v"),e=c((o,s)=>o===s?"square":null,"square");return[t(document.documentElement.clientWidth,document.documentElement.clientHeight),n(document.documentElement.clientWidth,document.documentElement.clientHeight),e(document.documentElement.clientWidth,document.documentElement.clientHeight)].filter(o=>o!==null).pop()},me("ArrayList",Array,[]),C("ArrayList").matrix=Array.matrix,C("ArrayList").matrix2d=Array.matrix2d,C("ArrayList").matrix3d=Array.matrix3d,O(C("ArrayList").matrix),O(C("ArrayList").matrix2d),O(C("ArrayList").matrix3d),me("ArrayCollection",Object,{source:te(C("ArrayList"),[]),changed(t,n){l.debug("VALUE CHANGED"),l.debug(t),l.debug(n)},push(t){var n=this;l.debug("VALUE ADDED"),l.debug(t),n.source.push(t)},pop(t){var n=this;l.debug("VALUE POPPED"),l.debug(t),n.source.pop(t)},_new_(t){var n=this,e=0;n.source=te(C("ArrayList"),t);for(var o in n.source)isNaN(o)||(l.debug("binding "+o.toString()),function(s){Object.defineProperty(n,s,{set(a){l.debug("setting "+s+"="+a),n.source[s]=a,n.changed(s,a)},get(){return n.source[s]}})}(o),e++);n.source.length=e,Object.defineProperty(n,"length",{get(){return n.source.length}})}}),ne("com.qcobjects.effects.base",[c(class extends C("InheritClass"){constructor(){super(...arguments);S(this,"duration",1e3)}animate({timing:e,draw:o,duration:s}){let a=performance.now();requestAnimationFrame(c(function i(d){let h=(d-a)/s;h>1&&(h=1);let m=e(h);o(Math.round(m*100)),h<1?requestAnimationFrame(i):typeof this<"u"&&this!==null&&Object.hasOwnProperty.call(this,"done")&&(typeof this.done).toLowerCase()==="function"&&this.done.call(this)},"animate"))}},"Effect")]),ne("com.qcobjects.effects.transitions.base",[c(class extends C("Effect"){constructor(){super(...arguments);S(this,"duration",385);S(this,"defaultParams",{alphaFrom:0,alphaTo:1,angleFrom:180,angleTo:0,radiusFrom:0,radiusTo:30,scaleFrom:0,scaleTo:1});S(this,"fitToHeight",!1);S(this,"fitToWidth",!1);S(this,"effects",[]);l.info("DECLARING TransitionEffect "),this.component.defaultParams=this.defaultParams}apply({alphaFrom:e,alphaTo:o,angleFrom:s,angleTo:a,radiusFrom:i,radiusTo:d,scaleFrom:h,scaleTo:m}){var _=this;l.info("EXECUTING TransitionEffect ");var I=_.component.shadowed?_.component.shadowRoot.host:_.component.body;_.fitToHeight&&(I.height=typeof I.offsetParent=="object"&&I.offsetParent!==null?I.offsetParent.scrollHeight:I.getBoundingClientRect().height),_.fitToWidth&&(I.width=typeof I.offsetParent=="object"&&I.offsetParent!==null?I.offsetParent.scrollWidth:I.getBoundingClientRect().width),I.style.display="block",_.effects.map(function(N,H){var M=C(N),j=new M,X=j.apply,B=[I].concat(Object.values({alphaFrom:e,alphaTo:o,angleFrom:s,angleTo:a,radiusFrom:i,radiusTo:d,scaleFrom:h,scaleTo:m}));X.apply(_,B)})}},"TransitionEffect")]),ne("com.qcobjects.timing",[c(class extends C("InheritClass"){constructor(){super(...arguments);S(this,"duration",1e3);S(this,"alive",!0)}thread({timing:e,intervalInterceptor:o,duration:s}){var a=this;let i=performance.now();requestAnimationFrame(c(function d(h){let m=h-i,_=m/s;_>1&&(_=1);let I=e(_,m);o(Math.round(I*100)),(_<1||s===-1)&&a.alive&&requestAnimationFrame(d)},"thread"))}},"Timer")]),ne("com.qcobjects.tools.essentials",[c(class extends C("InheritClass"){constructor(){super(...arguments);S(this,"_toggle",!1);S(this,"_inverse",!0);S(this,"_positive",null);S(this,"_negative",null);S(this,"_dispatched",null);S(this,"_args",{});this._new_(...arguments)}changeToggle(){this._toggle=!this._toggle}_new_({positive:e,negative:o,args:s}){this._positive=e,this._negative=o,this._args=s}fire(){var e=this,o=new Promise(function(s,a){typeof e._positive=="function"&&typeof e._negative=="function"?(e._inverse?e._dispatched=e._toggle?e._negative.bind(e):e._positive.bind(e):e._dispatched=e._toggle?e._positive.bind(e):e._negative.bind(e),e._dispatched.call(e,e._args),s.call(o,e)):(l.debug("Toggle functions are not declared"),a.call(o,e))}).then(function(s){s.changeToggle()}).catch(function(s){l.debug(s.toString())});return o}},"Toggle")]),function(t){let n=c(function(i,d,h){var m=this;if(typeof i>"u"||i===null)throw Error(`mapper.${d}.${h} does not have a component instance or it is null.`);let _=t.global.get(h),I=i.get(h),N=i.data[h],H=typeof N<"u"?N:typeof I<"u"?I:_,M="";return typeof H<"u"&&typeof H.map<"u"?M=H.map(function(j){let X=[...Object.keys(j)].map(B=>` data-${B}="${typeof j[B]<"u"&&j[B]!==null?j[B].toString():""}"`).join("");return``}).join(""):l.debug(`${d}.${h} does not have a map property`),M},"mapper");oe.setProcessor(n);let e=c(function(i,d,h){var m=` - /* CSS Document for Mobile Imports */ - @import url("${h}") (orientation:portrait); - @import url("${h}") (max-width:460px); - @import url("${h}") (aspect-ratio: 9/16); - @import url("${h}") (aspect-ratio: 10/16); - @import url("${h}") (aspect-ratio: 5/8); - @import url("${h}") (aspect-ratio: 3/4); - @import url("${h}") (aspect-ratio: 2/3); - `,_=` - @import url("${h}") (orientation:landscape) and (min-width:460px); - @import url("${h}") (aspect-ratio: 16/9) and (min-width:460px); - @import url("${h}") (aspect-ratio: 16/10) and (min-width:460px); - @import url("${h}") (aspect-ratio: 8/5) and (min-width:460px); - @import url("${h}") (aspect-ratio: 4/3) and (min-width:460px); - @import url("${h}") (aspect-ratio: 3/2) and (min-width:460px); - `,I={landscape:_,portrait:m};return Object.hasOwnProperty.call(I,d)?I[d]:""},"layout");oe.setProcessor(e);let o=c(function(){let i=[...arguments].slice(1).map(function(h){return{[h.split("=")[0]]:h.split("=")[1]}}).reduce(function(h,m){return Object.assign(h,m)});return``},"component");oe.setProcessor(o);let s=c(function(){let i=[...arguments].slice(1).map(function(h){return{[h.split("=")[0]]:h.split("=")[1]}}).reduce(function(h,m){return Object.assign(h,m)});return``},"quick_component");oe.setProcessor(s);let a=c(function(i,d,h){return t.range(d).map(function(m){return h.replace("{{index}}",m.toString())}).join("")},"repeat");oe.setProcessor(a)}(r),$e(function(){r.CONFIG.get("useSDK")||r.__start__()}),F(F),F(ht),F(ne),F(me),F(te),F(Un),F($e),F(Wn),F(u),F(G),function(t){ne("com.qcobjects",[c(class Ye extends C("InheritClass"){constructor(){super(...arguments);S(this,"_GLOBAL",{});S(this,"__definition",{});S(this,"__classType","GlobalSettings");this.set=Ye.set.bind(this),this.get=Ye.get.bind(this),this.__start__=Ye.__start__.bind(this)}static set(o,s){this._GLOBAL[o]=s}static get(o,s){var a;return typeof this._GLOBAL[o]<"u"?a=this._GLOBAL[o]:typeof s<"u"&&(a=s),a}static __start__(){var o=c(function(){var a;return u&&(a=new Promise(function(i,d){"serviceWorker"in navigator&&typeof t.CONFIG.get("serviceWorkerURI")<"u"&&(t.CONFIG.set("serviceWorkerScope",t.CONFIG.get("serviceWorkerScope")?t.CONFIG.get("serviceWorkerScope"):"/"),navigator.serviceWorker.register(t.CONFIG.get("serviceWorkerURI"),{scope:t.CONFIG.get("serviceWorkerScope")}).then(function(h){l.debug("Service Worker Registered"),i.call(a,h)},function(h){l.debug("Error registering Service Worker"),d.call(a,h)}),navigator.serviceWorker.ready.then(function(h){l.debug("Service Worker Ready"),i.call(a,h)},function(h){l.debug("Error loading Service Worker"),d.call(a,h)}))})),a},"__load__serviceWorker"),s=c(function(){return new Promise((a,i)=>{if(u){l.debug("Starting to building components");try{t.componentsStack=document.buildComponents.call(document)}catch(d){throw Error(`Something went wrong trying to start components tree: ${d.message}`)}l.debug("Initializing the service worker"),o.call(t).catch(function(d){l.debug(`error loading the service worker ${d}`)})}a()})},"_buildComponents");l.debug("Starting to load the config settings..."),t.CONFIG.get("useConfigService",!1)?(l.debug("Loading settings using local configuration file..."),t.global.configService=te(C("ConfigService")),t.global.configService.configLoaded=s,yt(t.global.configService)):(l.debug("Starting to load the components..."),s.call(this))}},"GlobalSettings")]),F(C("GlobalSettings")),f=te(C("GlobalSettings")),t=Te(f,t),Object.defineProperty(t,"PackagesNameList",{set(n){l.debug("PackagesNameList is readonly")},get(){var n=c(function(e){var o=[];for(var s in e)typeof e[s]<"u"&&typeof e[s]!="function"&&Object.hasOwnProperty.call(e[s],"length")&&e[s].length>0&&(o.push(s),o=o.concat(n(e[s])));return o},"_get_packages_names");return n(de)}}),Object.defineProperty(t,"PackagesList",{set(n){l.debug("PackagesList is readonly")},get(){return t.PackagesNameList.map(function(n){let e=ne(n),o;return e&&(o={packageName:n,classesList:e.filter(function(s){return Ie(s)})}),o}).filter(function(n){return typeof n<"u"})}}),Object.defineProperty(t,"ClassesList",{set(n){l.debug("ClassesList is readonly")},get(){var n=[];return t.PackagesList.map(function(e){return n=n.concat(e.classesList.map(function(o){return{packageName:e.packageName,className:e.packageName+"."+o.__definition.__classType,classFactory:o}})),e}),n}}),Object.defineProperty(t,"ClassesNameList",{set(n){l.debug("ClassesNameList is readonly")},get(){return t.ClassesList.map(function(n){return n.className})}}),u&&(me("GLOBAL",pe.global),F(C("GLOBAL"))),F(f),t.CONFIG.get("useSDK")&&function(n){var e=n.CONFIG.get("remoteImportsPath"),o=!n.CONFIG.get("useLocalSDK");n.CONFIG.set("remoteImportsPath",n.CONFIG.get("remoteSDKPath"));var s=!1,a="QCObjects-SDK";if(u)s=!0;else{var i=Xe("qcobjects-sdk");i!==null?(a="qcobjects-sdk",s=!0):(a="node_modules/qcobjects-sdk/QCObjects-SDK",s=!0)}if(s)if(l.info("Importing SDK... "+a),v&&typeof It<"u"){let d=Xt()}else ht(a,function(){o?l.debug("QCObjects-SDK.js loaded from remote location"):l.debug("QCObjects-SDK.js loaded from local"),n.CONFIG.set("remoteImportsPath",e)},o);else l.debug("SDK has not been imported as it is not available at the moment")}(t)}(r),u&&be(function(){$e(function(){(function(t){let n=0,e=!1,o=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight),s=Math.max(document.body.scrollWidth,document.documentElement.scrollWidth,document.body.offsetWidth,document.documentElement.offsetWidth,document.body.clientWidth,document.documentElement.clientWidth);function a(i){var d=Math.round(t.scrollY*100/o),h=Math.round(t.scrollX*100/s),m=new CustomEvent("scrollpercent",{detail:{percentX:h,percentY:d}});i.target.dispatchEvent(m);var _="defaultscroll",I=[0,5,10,25,50,75,90,95,100];I.filter(function(N){return N===d}).map(function(N){_="percentY"+d.toString();var H=new CustomEvent(_,{detail:{percentX:h,percentY:d}});i.target.dispatchEvent(H)})}c(a,"scrollDispatcher"),document.addEventListener("scroll",function(i){e||(requestAnimationFrame(function(){a(i),e=!1}),e=!0)})})(r)})},null),u||(typeof r.global<"u"&&Object.hasOwnProperty.call(r.global,"_fireAsyncLoad")&&r.global._fireAsyncLoad.call(this),typeof r.global<"u"&&Object.hasOwnProperty.call(r.global,"onload")&&r.global.onload.call(this)),function(t){var n=c(function(){Object.freeze(Object.prototype),Object.freeze(Object)},"__freeze__");t&&r.CONFIG.get("secureObjects",!1)?$e(function(){n()}):r.CONFIG.get("secureObjects",!1)&&n()}(u)}},"__qcobjects__").call(null,typeof Pe=="object"&&typeof Pe.exports=="object"?Pe.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{})});var J=V((cr,Vt)=>{var Yn=Zt();Vt.exports=Yn});var Jt=V((Yt,Je)=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});var Me=J();(function(w){"use strict";class r extends Me.InheritClass{constructor({messages:p=[]}){super({messages:p}),Me.CONFIG.get("use_i18n",!1)&&(Me.CONFIG.set("lang","en"),w.get("i18n")?w.set("i18n",{messages:w.get("i18n").messages.concat(p)}):w.set("i18n",{messages:p}))}_load_i18n_packages_(){return Me.CONFIG.get("i18n_languages",[]).map(p=>{(0,Me.Import)(`org.quickcorp.i18n_messages.${p}`)})}}c(r,"i18n_messages"),(0,Me.Package)("org.qcobjects.i18n_messages",[r]),new r({})._load_i18n_packages_()})(typeof Je=="object"&&typeof Je.exports=="object"?Je.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{})});var en=V(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});var Kt=J();(function(){"use strict";(0,Kt.Package)("org.qcobjects.models",[c(class extends Kt.VO{},"Contact")])})()});var Re=V((R,Ke)=>{"use strict";Object.defineProperty(R,"__esModule",{value:!0});R.ModalMoveUp=R.ModalMoveDown=R.ModalFade=R.WipeDown=R.WipeUp=R.WipeRight=R.WipeLeft=R.Resize=R.Radius=R.Rotate=R.RotateZ=R.RotateY=R.RotateX=R.MoveYInFromTop=R.MoveYInFromBottom=R.MoveXInFromLeft=R.MoveXInFromRight=R.Move=R.Fade=void 0;var k=J(),ie=typeof Ke=="object"&&typeof Ke.exports=="object"?Ke.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{};(function(){"use strict";class w extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=l+x*Y/100;k.logger.debug("alpha: "+A.toString()),E.style.opacity=A.toString()}})}}c(w,"Fade");class r extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U,Y,x){let A=Y-l,Fe=x-U;E.style.transform="translate("+l+"px,"+U+"px)",this.animate({duration:this.duration,timing(Oe){return Oe},draw(Oe){k.logger.debug("animation progress: "+Oe.toString());let ze=U+Oe*Fe/100,_e=l+Oe*A/100;k.logger.debug("x: "+_e.toString()+" y:"+ze.toString()),E.style.transform="translate("+_e+"px,"+ze+"px)"}})}}c(r,"Move"),(0,k.Package)("org.qcobjects.effects.base",[w,r]);class f extends r{constructor(){super(...arguments),this.duration=1e3}apply(E){super.apply.call(this,E,E.width,0,0,0)}}c(f,"MoveXInFromRight");class p extends r{constructor(){super(...arguments),this.duration=1e3}apply(E){super.apply.call(this,E,-E.width,0,0,0)}}c(p,"MoveXInFromLeft");class u extends r{constructor(){super(...arguments),this.duration=1e3}apply(E){super.apply.call(this,E,0,E.height,0,0)}}c(u,"MoveYInFromBottom");class v extends r{constructor(){super(...arguments),this.duration=1e3}apply(E){super.apply.call(this,E,0,-E.height,0,0)}}c(v,"MoveYInFromTop");class g extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=Math.round(l+x*Y/100);k.logger.debug("angle: "+A.toString()),E.style.transform="rotate3d(1,0,0,"+A.toString()+"deg)"}})}}c(g,"RotateX");class b extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=Math.round(l+x*Y/100);k.logger.debug("angle: "+A.toString()),E.style.transform="rotate3d(0,1,0,"+A.toString()+"deg)"}})}}c(b,"RotateY");class O extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=Math.round(l+x*Y/100);k.logger.debug("angle: "+A.toString()),E.style.transform="rotate3d(0,0,1,"+A.toString()+"deg)"}})}}c(O,"RotateZ");class G extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=Math.round(l+x*Y/100);k.logger.debug("angle: "+A.toString()),E.style.transform="rotate3d(1,1,1,"+A.toString()+"deg)"}})}}c(G,"Rotate");class P extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=l+x*Y/100;k.logger.debug("radius: "+A.toString()),E.style.borderRadius=A.toString()+"px"}})}}c(P,"Radius");class y extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=l+x*Y/100;k.logger.debug("resize: "+A.toString()),E.style.transformOrigin="center",E.style.transform="scale("+A+","+A+")"}})}}c(y,"Resize");class T extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=l+x*Y/100;k.logger.debug("wipe: "+A.toString()),E.style.transformOrigin="right",E.style.transform="scaleX("+A+")"}})}}c(T,"WipeLeft");class L extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=l+x*Y/100;k.logger.debug("wipe: "+A.toString()),E.style.transformOrigin="left",E.style.transform="scaleX("+A+")"}})}}c(L,"WipeRight");class D extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=l+x*Y/100;k.logger.debug("wipe: "+A.toString()),E.style.transformOrigin="bottom",E.style.transform="scaleY("+A+")"}})}}c(D,"WipeUp");class ae extends k.Effect{constructor(){super(...arguments),this.duration=1e3}apply(E,l,U){let Y=U-l;this.animate({duration:this.duration,timing(x){return x},draw(x){k.logger.debug("animation progress: "+x.toString());let A=l+x*Y/100;k.logger.debug("wipe: "+A.toString()),E.style.transformOrigin="top",E.style.transform="scaleY("+A+")"}})}}c(ae,"WipeDown"),(0,k.Package)("org.qcobjects.effects.extended",[f,p,u,v,g,b,O,G,P,y,T,L,D,ae]);class le extends w{constructor(){super(...arguments),this.duration=500}}c(le,"ModalFade");class he extends r{constructor(){super(...arguments),this.duration=300}}c(he,"ModalMoveDown");class be extends r{constructor(){super(...arguments),this.duration=800}}c(be,"ModalMoveUp"),(0,k.Package)("org.qcobjects.modal.effects",[le,he,be])})();var Jn=ie.Fade;R.Fade=Jn;var Kn=ie.Fade;R.Move=Kn;var Qn=ie.MoveXInFromRight;R.MoveXInFromRight=Qn;var eo=ie.MoveXInFromLeft;R.MoveXInFromLeft=eo;var to=ie.MoveYInFromBottom;R.MoveYInFromBottom=to;var no=ie.MoveYInFromTop;R.MoveYInFromTop=no;var oo=ie.RotateX;R.RotateX=oo;var ro=ie.RotateY;R.RotateY=ro;var io=ie.RotateZ;R.RotateZ=io;var so=ie.Rotate;R.Rotate=so;var ao=ie.Radius;R.Radius=ao;var lo=ie.Resize;R.Resize=lo;var co=ie.WipeLeft;R.WipeLeft=co;var uo=ie.WipeRight;R.WipeRight=uo;var fo=ie.WipeUp;R.WipeUp=fo;var po=ie.WipeDown;R.WipeDown=po;var ho=ie.ModalFade;R.ModalFade=ho;var mo=ie.ModalMoveDown;R.ModalMoveDown=mo;var go=ie.ModalMoveUp;R.ModalMoveUp=go});var Ct=V((re,et)=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.SwaggerUIComponent=re.ModalEnclosureComponent=re.ModalComponent=re.EmailField=re.TextField=re.InputField=re.ButtonField=re.ShadowedComponent=re.FormField=void 0;var z=J(),Qe=Re(),ve=typeof et=="object"&&typeof et.exports=="object"?et.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{};(function(w){class r extends z.Component{constructor(y){y.name=typeof y.name<"u"?y.name:"form-field",super(y),this.cached=!1,this.reload=!0}createBindingEvents(){let y;typeof this.fieldType>"u"||this.fieldType==null?y=this.body.subelements("*[data-field]"):y=this.body.subelements(this.fieldType+"[data-field]");for(let T=0;T{z.logger.debug("Executing change event binding"),this.executeBindings()}),L.addEventListener("blur",()=>{z.logger.debug("Executing change event binding"),this.executeBindings()}),L.addEventListener("focus",()=>{z.logger.debug("Executing change event binding"),this.executeBindings()}),L.addEventListener("keydown",()=>{z.logger.debug("Executing keydown event binding"),this.executeBindings()})}}executeBinding(y){let T=y.getAttribute("data-field");z.logger.debug("Binding "+T+" for "+this.name),this.data[T]=y.value}executeBindings(){let y;typeof this.fieldType>"u"||this.fieldType==null?y=this.body.subelements("*[data-field]"):y=this.body.subelements(this.fieldType+"[data-field]");for(let T=0;T - - -`,this.data={}}}c(b,"ModalEnclosureComponent");class O extends z.Component{constructor(y){y.basePath=z.CONFIG.get("modalBasePath",z.CONFIG.get("remoteSDKPath","")),super(y),this.name="modal",this.cached=!1,this.modalEnclosureComponentClass="ModalEnclosureComponent",this.controller=null,this.view=null,this.tplsource="none",this.closeOnClickOutside=!1,this.data={content:"",modalId:0},this.submodal=null,this.data.modalId=this.__instanceID;let T=(0,z.New)((0,z.ClassFactory)(this.modalEnclosureComponentClass),{name:this.name,basePath:this.basePath,data:this.data});this.subcomponents.push(T),this.submodal=T,T.tplsource==="none"?this.body.innerHTML=T.parsedAssignmentText:this.body.append(T.body)}modal(){let y=this.data.modalId;(0,z.Tag)("#modalInstance_"+y+".modal").map(T=>(T.style.display="block",new Qe.ModalFade({}).apply(T,0,1))),(0,z.Tag)("#modalInstance_"+y+".modal .modal-content").map(T=>new Qe.ModalMoveDown({}).apply(T,0,-document.body.clientHeight,0,0)),(0,z.Tag)("#modalInstance_"+y+".modal .modal-content .close").map(T=>T.addEventListener("click",()=>{this.close()},!1)),this.closeOnClickOutside&&window.addEventListener("click",()=>{this.close()},!1)}close(){let y=this.data.modalId;(0,z.Tag)("#modalInstance_"+y+".modal").map(T=>(T.style.display="block",new Qe.ModalFade({}).apply(T,1,0))),(0,z.Tag)("#modalInstance_"+y+".modal .modal-content").map(function(T){return new Qe.ModalMoveUp({}).apply(T,0,0,0,-document.body.clientHeight)}),setTimeout(function(){(0,z.Tag)("#modalInstance_"+y+".modal").map(T=>(T.style.display="none",!0))},900)}rebuild(){let y=super.rebuild();return this.templateURI=(0,z.ComponentURI)({COMPONENTS_BASE_PATH:z.CONFIG.get("componentsBasePath",""),COMPONENT_NAME:"modal",TPLEXTENSION:z.CONFIG.get("tplextension",""),TPL_SOURCE:"default"}),y}}c(O,"ModalComponent");class G extends z.Component{constructor(){super(...arguments),this.cached=!1,this.basePath=z.CONFIG.get("remoteSDKPath",""),this.tplextension="tpl.html",this.name="swagger-ui"}}c(G,"SwaggerUIComponent"),(0,z.Package)("org.qcobjects.form.components",[f,p,u,v,g,b,O,G]),w.FormField=r,w.ShadowedComponent=f,w.ButtonField=p,w.InputField=u,w.TextField=v,w.EmailField=g,w.ModalEnclosureComponent=b,w.ModalComponent=O,w.SwaggerUIComponent=G})(ve);var bo=ve.FormField;re.FormField=bo;var yo=ve.ShadowedComponent;re.ShadowedComponent=yo;var vo=ve.ButtonField;re.ButtonField=vo;var wo=ve.InputField;re.InputField=wo;var Oo=ve.TextField;re.TextField=Oo;var _o=ve.EmailField;re.EmailField=_o;var Io=ve.ModalEnclosureComponent;re.ModalEnclosureComponent=Io;var Co=ve.ModalComponent;re.ModalComponent=Co;var No=ve.SwaggerUIComponent;re.SwaggerUIComponent=No});var tn=V((ke,tt)=>{"use strict";Object.defineProperty(ke,"__esModule",{value:!0});ke.GridItemComponent=ke.GridComponent=void 0;var Nt=J(),St=typeof tt=="object"&&typeof tt.exports=="object"?tt.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{};(function(w){"use strict";class r extends Nt.Component{constructor(){super(...arguments),this.name="grid-item",this.shadowed=!0,this.tplsource="inline",this.template=` - -

      {{description}}

      -`,this.cached=!1}}c(r,"GridItemComponent");class f extends Nt.Component{constructor(u){super(u),this.name="grid",this.cached=!1,this.view=null,this.shadowed=!0,this.rows=3,this.cols=3,this.templateURI="",this.data={},this.tplsource="inline",this.template="

      Loading...

      ",this.body.setAttribute("controllerClass","DataGridController");let v=this.body.getAttribute("subcomponentClass")!==null?this.body.getAttribute("subcomponentClass"):"GridItemComponent";this.body.setAttribute("subcomponentClass",v)}}c(f,"GridComponent"),(0,Nt.Package)("org.qcobjects.components.grid",[f,r]),w.GridComponent=f,w.GridItemComponent=r})(St);var So=St.GridComponent;ke.GridComponent=So;var xo=St.GridItemComponent;ke.GridItemComponent=xo});var nn=V((qe,nt)=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.ListItemComponent=qe.ListComponent=void 0;var xt=J(),Tt=typeof nt=="object"&&typeof nt.exports=="object"?nt.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{};(function(w){"use strict";class r extends xt.Component{constructor(u){u.name="list-item",super(u),this.shadowed=!1,this.tplsource="inline",this.template='{{label}}',this.cached=!1}}c(r,"ListItemComponent");class f extends xt.Component{constructor(u){u.name="list",super(u),this.shadowed=!0,this.tplsource="inline",this.template="

      Loading...

      ",this.body.setAttribute("controllerClass","ListController"),this.body.setAttribute("subcomponentClass","ListItemComponent")}}c(f,"ListComponent"),(0,xt.Package)("org.qcobjects.components.list",[r,f]),w.ListComponent=f,w.ListItemComponent=r})(Tt);var To=Tt.ListComponent;qe.ListComponent=To;var Ao=Tt.ListItemComponent;qe.ListItemComponent=Ao});var rn=V(on=>{"use strict";Object.defineProperty(on,"__esModule",{value:!0});var ot=J();(function(){"use strict";(0,ot.Package)("org.qcobjects.components.slider",[c(class extends ot.Component{constructor(r){super(r),this.tplsource="inline",this.template="

      Loading...

      ",this.name="slidelist",this.body.setAttribute("controllerClass","DataGridController");let f=this.body.getAttribute("subcomponentClass")!==null?this.body.getAttribute("subcomponentClass"):"GridItemComponent";this.body.setAttribute("subcomponentClass",f)}},"SlideListComponent"),c(class extends ot.Component{constructor(r){super(r),this.effectClass="Fade",this.name="slider_item",this.data.slideNumber=this.data.__dataIndex+1,this.template=` - - `,this.tplsource="inline"}},"SlideItemComponent"),c(class extends ot.Component{constructor(r){super(r),this.name="slider",this.template=` - - -
      - - - - -
      -
      - -
      -
      - - `,this.tplsource="inline",this.shadowed=!0,this.data.SERVICE_CLASS=this.body.getAttribute("serviceClass"),this.data.sliderHandler="slider_"+this.__instanceID.toString(),this.body.setAttribute("controllerClass","SliderController")}},"SliderComponent")])})()});var an=V(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});var se=J(),At=Re();(function(){"use strict";class w extends se.Component{constructor(f){f.name="notification",f.body=(0,se._DOMCreateElement)("div"),super(f),this.cached=!1,this.tplsource="inline",this.shadowed=!1,this.template=` - -
      -
      -

      {{title}} {{message}}

      -
      -
      - `,this.kinds=["danger","success","info","warning"]}display(f){let p=c(function(u){u.style.display="block";let v=(0,se.New)(At.Move,{duration:900,apply(b){(0,se._super_)("Fade","apply").call(this,b,0,1),(0,se._super_)("Move","apply").call(this,b,0,-document.body.clientHeight,0,0)}}),g=(0,se.New)(At.Move,{duration:650,apply(b){(0,se._super_)("Fade","apply").call(this,b,1,0),(0,se._super_)("Move","apply").call(this,b,0,0,0,-document.body.clientHeight)}});v.apply(u),setTimeout(function(){g.apply(u)},2e3)},"_display_");f.subelements("div.notification_background").map(u=>(0,se.New)(At.Fade,{duration:500}).apply(u,0,1)),f.subelements("div.notification").map(u=>p(u)),setTimeout(function(){f.remove()},2200)}static success(f){let p=(0,se.New)(w,{name:"notification",shadowed:!0,body:(0,se._DOMCreateElement)("div"),data:{kind:"success",title:"Success!",message:`${f}...`}});document.body.append(p);let u=p.shadowed?p.shadowRoot.host:p.body;p.display(u)}static danger(f){let p=(0,se.New)(w,{name:"notification",shadowed:!0,body:(0,se._DOMCreateElement)("div"),data:{kind:"danger",title:"Danger!",message:`${f}...`}});document.body.append(p);let u=p.shadowed?p.shadowRoot.host:p.body;p.display(u)}static info(f){let p=(0,se.New)(w,{name:"notification",shadowed:!0,body:(0,se._DOMCreateElement)("div"),data:{kind:"info",title:"Info!",message:`${f}...`}});document.body.append(p);let u=p.shadowed?p.shadowRoot.host:p.body;p.display(u)}static warning(f){let p=(0,se.New)(w,{name:"notification",shadowed:!0,body:(0,se._DOMCreateElement)("div"),data:{kind:"warning",title:"Warning!",message:`${f}...`}});document.body.append(p);let u=p.shadowed?p.shadowRoot.host:p.body;p.display(u)}}c(w,"NotificationComponent"),(0,se.Package)("org.quickcorp.components.notifications",[w])})()});var dn=V((Ne,rt)=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.CubeSplashScreenComponent=Ne.VideoSplashScreenComponent=Ne.SplashScreenComponent=void 0;var ge=J(),jt=Re(),it=typeof rt=="object"&&typeof rt.exports=="object"?rt.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{};c(function(r){"use strict";class f extends ge.Component{constructor(g){g.name=typeof g.name>"u"?"splashscreen":g.name;let b=typeof window<"u"&&typeof window.self<"u"&&window===window.self,O=location.hash===""&&location.pathname==="/"&&location.search===""||ge.CONFIG.get("routingWay","pathname")==="hash"&&ge.CONFIG.get("start_url","/")===location.hash||ge.CONFIG.get("routingWay","pathname")==="pathname"&&ge.CONFIG.get("start_url","/")===location.pathname||ge.CONFIG.get("routingWay","pathname")==="search"&&ge.CONFIG.get("start_url","/")===location.search,G=b&&O;if(G?(g.basePath=ge.CONFIG.get("splashscreenBasePath",ge.CONFIG.get("remoteSDKPath","")),typeof g.data>"u"&&(g.data={}),g.data.basePath=g.basePath):typeof g<"u"&&typeof g.body<"u"&&(g.body.style.display="none"),super(g),this.cached=!1,this.shadowed=!0,this._bgcolor="",this._enabled_=G,this._enabled_){let y=this.body.getAttribute("duration");y===null?y=1e3:y=parseInt(y.toString()),this._bgcolor=this.body.style.backgroundColor;let T=c(()=>{setTimeout(()=>{if(!T.executed){let L=this.shadowed?this.shadowRoot?.host:this.body;typeof r.componentsStack<"u"&&r.componentsStack.filter(D=>D.body.hasAttribute("splashscreen")).map(D=>{ge.logger.debug(`Splash Screen of Main Component: ${D.name}`),D.splashScreenComponent=this;let ae=c(()=>{if(!ae.executed){let le=D.splashScreenComponent,he=D.shadowed?D.shadowRoot?.host:D.body;D._mainPosition=he.style.position,typeof he<"u"&&(he.style.position="fixed"),D._mainOpacity=he.style.opacity,L.style.width="100%",L.style.height="100%",document.body.style.backgroundColor="#111111",he.style.opacity="0",setTimeout(function(){typeof L<"u"&&(document.body.style.backgroundColor=le?._bgcolor,L.subelements("#slot-logo").map(be=>(be.style.display="block",be.style.transformOrigin="center",new jt.Resize().apply(be,1,0))),new jt.Fade().apply(L,1,0))},y-1e3),setTimeout(function(){new jt.Fade().apply(he,0,1),he.style.position=D._mainPosition,document.body.style.backgroundColor=le._bgcolor,L.parentElement!==null&&L.parentElement.remove()},y)}ae.executed=!0},"SplashScreenHandler");return D.addComponentHelper(ae.bind(D))}),T.executed=!0}})},"_helper_");T.executed=!1,this.addComponentHelper(T.bind(g))}}}c(f,"SplashScreenComponent"),(0,ge.Package)("org.qcobjects.components.base",[f]);class p extends f{constructor(g){g.name="videosplashscreen",super(g),this.cached=!1,this.shadowed=!0,this.tplsource="inline",this.template=` - -
      -
      - - -
      -
      - - `}}c(p,"VideoSplashScreenComponent");class u extends f{constructor(g){g.name="cubesplashscreen",super(g),this.cached=!1,this.shadowed=!0,this.tplsource="inline",this.template=` - - -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - `}}c(u,"CubeSplashScreenComponent"),(0,ge.Package)("org.qcobjects.components.splashscreen",[p,u])},"__splash_screen__")(it);var jo=it.SplashScreenComponent;Ne.SplashScreenComponent=jo;var Eo=it.VideoSplashScreenComponent;Ne.VideoSplashScreenComponent=Eo;var Po=it.CubeSplashScreenComponent;Ne.CubeSplashScreenComponent=Po});var un=V(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});var ln=J();(function(){"use strict";(0,ln.Package)("org.qcobjects.controllers",[c(class extends ln.Controller{},"GenericController")])})()});var pn=V(fn=>{"use strict";Object.defineProperty(fn,"__esModule",{value:!0});var q=J();(function(){"use strict";(0,q.Package)("org.qcobjects.controllers.grid",[c(class extends q.Controller{constructor(r){super(r),this.rows=this.component.body.getAttribute("rows"),this.rows=this.rows!==null?this.rows:this.component.rows,this.cols=this.component.body.getAttribute("cols"),this.cols=this.cols!==null?this.cols:this.component.cols}cssGrid(){let r=this.component,f=r.shadowed?r.shadowRoot:r.body;if(typeof this.rows<"u"&&typeof this.cols<"u"){let p=(0,q._DOMCreateElement)("style"),u="auto ".repeat(this.rows),v="auto ".repeat(this.cols),g="grid"+this.__instanceID.toString();p.innerHTML=`.${g}{ - display: grid; grid-template-rows: ${u}; grid-template-columns: ${v}; margin:0 auto; }`,f?.append(p),r.shadowed?f?.host.classList.add(g):f.classList.add(g)}}done(){this.cssGrid(),q.logger.debug("GridComponent built")}},"GridController"),c(class extends q.Controller{constructor(r){super(r),this._componentRoot=r.component.shadowed?r.component.shadowRoot:r.component.body,this.rows=r.component.body.getAttribute("rows"),this.rows=r.rows!==null?r.rows:r.component.rows,this.cols=r.component.body.getAttribute("cols"),this.cols=r.cols!==null?r.cols:r.component.cols,q.logger.debug("DataGridController INIT")}getPageIndex(r,f,p){return r=r>0?r-1:0,[p*r/f,p*r/f+p/f]}addSubcomponents(){this.component.subcomponents=[],typeof this._componentRoot<"u"&&(this._componentRoot.innerHTML=""),this.cssGrid(),q.logger.debug((0,q._DataStringify)(this.component.data));try{let r=this.component.body.getAttribute("subcomponentClass");if(r!=null){let f,p,u,v=[...this.component.data],g=this.component.body.getAttribute("paginate-in"),b;g=g!==null?g:"client",g==="client"?(b=this.component.body.getAttribute("page-number"),b=isNaN(b)||b===null?-1:b,b!==-1?(u=this.component.body.getAttribute("total-pages"),u=isNaN(u)?1:u,f=this.getPageIndex(b,u,v.length)[0],p=this.getPageIndex(b,u,v.length)[1]):(f=0,p=v.length,u=1),v=v.slice(f,p)):(f=0,p=v.length,u=1),v.map((O,G,P)=>{try{let T=(0,q._DOMCreateElement)("component");T.setAttribute("name",(0,q.ClassFactory)(r).name),T.setAttribute("shadowed",(0,q.ClassFactory)(r).shadowed),T.setAttribute("cached",(0,q.ClassFactory)(r).cached),O=Object.assign(O,{__dataIndex:G,__dataLength:P.length,__page:b,__totalPages:u,__limit:p,__offset:f});let L=(0,q.New)((0,q.ClassFactory)(r),{name:"item",data:O,templateURI:(0,q.ComponentURI)({COMPONENTS_BASE_PATH:q.CONFIG.get("componentsBasePath",""),COMPONENT_NAME:(0,q.ClassFactory)(r).name,TPLEXTENSION:q.CONFIG.get("tplextension",""),TPL_SOURCE:(0,q.ClassFactory)(r).tplsource}),body:T,template:(0,q.ClassFactory)(r).template});L.done=this.component.done.bind(L);try{if(L){L.data.__dataIndex=G,Object.hasOwnProperty.call(this.component.data,"length")&&(L.data.__dataLength=this.component.data.length),q.logger.debug("adding subcomponent to body"),this._componentRoot?.append(L.body);try{this.component.subcomponents.push(L)}catch{q.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID")}}else q.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID")}catch{q.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID")}}catch{q.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID")}})}else q.logger.debug("NO SUBCOMPONENT CLASS IN COMPONENT")}catch{q.logger.debug("No data for component")}}cssGrid(){let r=this.component,f=r.shadowed?r.shadowRoot:r.body;if(typeof this.rows<"u"&&typeof this.cols<"u"){let p=(0,q._DOMCreateElement)("style"),u="auto ".repeat(this.rows),v="auto ".repeat(this.cols),g="grid"+this.__instanceID.toString();p.innerHTML=`.${g}{ - display: grid; grid-template-rows: ${u}; grid-template-columns: ${v}; margin:0 auto; }`,r.shadowed?(r.body.append(p),f.host.classList.add(g)):(f?.append(p),f.classList.add(g))}}done(){let r=this.component;q.logger.debug("DataGridController DONE");let f=this.component.body.getAttribute("serviceClass");if(f!=null){let p,u,v=r.body.getAttribute("paginate-in");if(v=v!==null?v:"client",v==="server"){let g=r.body.getAttribute("page-number");g=isNaN(g)||g===null?-1:g;let b;if(g!==-1){let O=this.component.body.getAttribute("server-data-count")!==null?this.component.body.getAttribute("server-data-count"):1;b=this.component.body.getAttribute("total-pages"),b=isNaN(b)?1:b,p=this.getPageIndex(g,b,O)[0],u=this.getPageIndex(g,b,O)[1],r.serviceData=typeof r.serviceData<"u"?r.serviceData:{},r.serviceData.params=typeof r.serviceData.params<"u"?r.serviceData.params:{},r.serviceData.params.offset=p,r.serviceData.params.limit=u}}(0,q.serviceLoader)((0,q.New)((0,q.ClassFactory)(f),{data:r.serviceData}),!1).then(g=>{q.logger.debug("DONE SERVICE COMPONENT"),g.service.JSONresponse=JSON.parse(g.service.template),typeof g.service.JSONresponse.result<"u"?(q.logger.debug((0,q._DataStringify)(g.service.JSONresponse.result)),r.data=g.service.JSONresponse.result):r.data=g.service.JSONresponse,this.addSubcomponents()},g=>{q.logger.debug(g)}).catch(g=>{q.logger.debug("Something went wrong when calling the service from: "+f),q.logger.debug(g.message)})}}},"DataGridController")])})()});var mn=V(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});var $=J();(function(){"use strict";(0,$.Package)("org.qcobjects.controllers.list",[c(class extends $.Controller{constructor({component:r,dependencies:f=[],valueField:p=void 0,labelField:u=void 0}){super({component:r,dependencies:f,valueField:p,labelField:u}),this.component=r,this._componentRoot=this.component.shadowed?this.component.shadowRoot:this.component.body,this.labelField=this.component.body.getAttribute("label-field"),this.valueField=this.component.body.getAttribute("value-field"),this.rows=this.component.body.getAttribute("rows"),this.rows=this.rows!==null?this.rows:this.component.rows,this.cols=1,$.logger.debug("ListController INIT")}getPageIndex(r,f,p){return r=r>0?r-1:0,[p*r/f,p*r/f+p/f]}addSubcomponents(){this.component.subcomponents=[];let r=this.component.body.getAttribute("layout"),f=$.CONFIG.get("listBasePath",$.CONFIG.get("remoteSDKPath","")),p="";this.labelField=this.component.body.getAttribute("label-field"),this.valueField=this.component.body.getAttribute("value-field"),r==="horizontal"?p=`@import url("${f}css/components/horizontal-list.css");`:p=`@import url("${f}css/components/list.css");`,typeof this._componentRoot<"u"&&(this._componentRoot.innerHTML=`
        `),$.logger.debug((0,$._DataStringify)(this.component.data));try{let u=this.component.body.getAttribute("subcomponentClass");if(u!=null){let v,g,b,O=[...this.component.data],G=this.component.body.getAttribute("paginate-in");G=G!==null?G:"client";let P;G==="client"?(P=this.component.body.getAttribute("page-number"),P=isNaN(P)||P===null?-1:P,P!==-1?(b=this.component.body.getAttribute("total-pages"),b=isNaN(b)?1:b,v=this.getPageIndex(P,b,O.length)[0],g=this.getPageIndex(P,b,O.length)[1]):(v=0,g=O.length,b=1),O=O.slice(v,g)):(v=0,g=O.length,b=1),O.map((y,T)=>{try{let D=(0,$._DOMCreateElement)("li");y.label=y[this.labelField],y.value=y[this.valueField];let ae=(0,$.New)((0,$.ClassFactory)(u),{name:"list-item",data:{label:y[this.labelField],value:y[this.valueField],__dataIndex:T,__page:P,__totalPages:b,__limit:g,__offset:v},templateURI:(0,$.ComponentURI)({COMPONENTS_BASE_PATH:$.CONFIG.get("componentsBasePath",""),COMPONENT_NAME:(0,$.ClassFactory)(u).name,TPLEXTENSION:$.CONFIG.get("tplextension",""),TPL_SOURCE:(0,$.ClassFactory)(u).tplsource}),body:D,template:(0,$.ClassFactory)(u).template});ae.done=this.component.done.bind(ae);try{if(ae){ae.data.__dataIndex=T,Object.hasOwnProperty.call(this.component.data,"length")&&(ae.data.__dataLength=this.component.data.length),$.logger.debug("adding subcomponent to body"),this._componentRoot.subelements("ul").map(le=>le.append(ae));try{this.component.subcomponents.push(ae)}catch{$.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID")}}else $.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID")}catch{$.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID")}}catch{$.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID")}})}else $.logger.debug("NO SUBCOMPONENT CLASS IN COMPONENT")}catch{$.logger.debug("No data for component")}}cssGrid(){let r=this.component,f=r.shadowed?r.shadowRoot:r.body;if(typeof this.rows<"u"&&typeof this.cols<"u"){let p=(0,$._DOMCreateElement)("style"),u="auto ".repeat(this.rows),v="auto ".repeat(this.cols),g="grid"+this.__instanceID.toString();p.innerHTML=`.${g}{ - display: grid; grid-template-rows: ${u}; grid-template-columns: ${v}; margin:0 auto; }`,f.append(p),f.classList.add(g)}}done(){this.cssGrid();let r=this.component;$.logger.debug("ListController DONE");let f=this.component.body.getAttribute("serviceClass");if(f!=null){let p,u,v=r.body.getAttribute("paginate-in");if(v=v!==null?v:"client",v==="server"){let g=r.body.getAttribute("page-number");g=isNaN(g)||g===null?-1:g;let b;if(g!==-1){let O=this.component.body.getAttribute("server-data-count")!==null?this.component.body.getAttribute("server-data-count"):1;b=this.component.body.getAttribute("total-pages"),b=isNaN(b)?1:b,p=this.getPageIndex(g,b,O)[0],u=this.getPageIndex(g,b,O)[1],r.serviceData=typeof r.serviceData<"u"?r.serviceData:{},r.serviceData.params=typeof r.serviceData.params<"u"?r.serviceData.params:{},r.serviceData.params.offset=p,r.serviceData.params.limit=u}}(0,$.serviceLoader)((0,$.New)((0,$.ClassFactory)(f),{data:r.serviceData}),!1).then(g=>{$.logger.debug("DONE SERVICE COMPONENT"),g.service.JSONresponse=JSON.parse(g.service.template),typeof g.service.JSONresponse.result<"u"?($.logger.debug((0,$._DataStringify)(g.service.JSONresponse.result)),r.data=g.service.JSONresponse.result):r.data=g.service.JSONresponse,this.addSubcomponents()},g=>{$.logger.debug(g)}).catch(g=>{$.logger.debug("Something went wrong when calling the service from: "+f),$.logger.debug(g.message)})}}},"ListController")])})()});var bn=V((gn,st)=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});var Se=J();(function(w){"use strict";(0,Se.Package)("org.qcobjects.controllers.slider",[c(class extends Se.Controller{constructor({component:f,dependencies:p=[],duration:u=7100,slideIndex:v=0,interval:g=null,sliderHandlerName:b=null}){super({component:f,dependencies:p,duration:u,slideIndex:v,interval:g,sliderHandlerName:b}),this.slideIndex=0,this.duration=7100,this.interval=null,this.sliderHandlerName="",this.component=f,this._componentRoot=f.shadowed?f.shadowRoot:f.body,this.sliderHandlerName="slider_"+this.component.__instanceID.toString(),w.set(this.sliderHandlerName,this)}stop(){this.interval!=null&&clearInterval(this.interval)}plusSlidesAndStop(f){this.stop(),this.plusSlides(f)}plusSlides(f){this.showSlides(this.slideIndex+=f)}currentSlide(f){this.stop(),this.showSlides(this.slideIndex=f)}automate(){this.interval=setInterval(()=>{this.plusSlides(1)},this.duration)}showSlides(f){let p=this._componentRoot?.subelements(".qcoSlides"),u=this._componentRoot?.subelements(".qcoSlider__dots--dot");f>p.length-1&&(this.slideIndex=0),f<0&&(this.slideIndex=0),p.filter((v,g)=>g!==this.slideIndex).map(v=>(0,Se.New)((0,Se.ClassFactory)("Fade"),{}).apply(v,1,0)),u.filter((v,g)=>g!==this.slideIndex).map(v=>v.classList.remove("active"));try{u[this.slideIndex].classList.add("active")}catch(v){Se.logger.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${v.message}`)}setTimeout(()=>{p.filter((v,g)=>g!==this.slideIndex).map(v=>(v.style.display="none",v.style.display));try{p[this.slideIndex].style.display="block",(0,Se.New)((0,Se.ClassFactory)("Fade"),{}).apply(p[this.slideIndex],0,1)}catch(v){Se.logger.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${v.message}`)}},700)}fillDots(){(this._componentRoot?.subelements(".qcoSlides")).map((p,u)=>{let v=document.createElement("span"),g=``;return v.innerHTML=g,this._componentRoot?.subelements(".qcoSlider__dots")[0].append(v)})}done(){(this._componentRoot?.subelements(".qcoSlides")).filter((p,u)=>u!==this.slideIndex).map(p=>(p.style.display="none",p.style.display)),setTimeout(()=>{this.fillDots(),this.slideIndex=0,this.showSlides(this.slideIndex),this.automate()},3e3)}},"SliderController")])})(typeof st=="object"&&typeof st.exports=="object"?st.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{})});var wn=V(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});var ce=J(),yn=Ct();(function(){"use strict";(0,ce.Package)("org.qcobjects.controllers.form",[c(class extends ce.Controller{getDefault(){return function(r,f,p){let u={name:"^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$",email:"^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$"},v=p.getAttribute("pattern")||u[r];return new RegExp(v).test(f)}}},"FormValidations"),c(class extends ce.Controller{hasValidation(r){let f=r.getAttribute("data-field"),p=!1;return typeof this.validations<"u"&&Object.hasOwnProperty.call(this.validations,f)&&(p=!0),p}isInvalid(r){let f=!1,p=r.getAttribute("data-field"),u=this.component.data[p],v=c((g,b,O)=>typeof this.validations<"u"&&Object.hasOwnProperty.call(this.validations,g)&&this.validations[g].call(null,g,b,O),"_execValidation");return typeof this.validations<"u"&&!v(p,u,r)&&(f=!0),f}isValid(r){return!this.isInvalid(r)}save(){this.serviceClass!==""?(location.href=this.formSettings.loadingRouting,(0,ce.serviceLoader)((0,ce.New)((0,ce.ClassFactory)(this.serviceClass),{data:this.component.data}),!1).then(r=>{console.log("DONE SERVICE COMPONENT");try{console.log(r.service.JSONresponse)}catch{}location.href=this.formSettings.nextRouting},r=>{ce.logger.debug(r),location.href=this.formSettings.backRouting})):ce.logger.debug("No service name declared on serviceClass property")}formSaveTouchHandler(){ce.logger.debug("Saving data...");let r=this.component.shadowed?(this.component?.shadowRoot).host:this.component.body;if(this.component.executeBindings(),this.formValidatorModal!=null){let p=r.subelements("*[data-field]").filter(b=>this.hasValidation(b)),u=c(function(b,O){return c((P,y)=>y.getAttribute("aria-labelledby")!==null?(y.getAttribute("aria-labelledby")||"").split(" ").map(T=>P.subelements(`#${T}`).map(L=>L.innerHTML)).join(" "):null,"_arialabelledby")(b,O)||O.getAttribute("aria-label")||O.getAttribute("placeholder")||O.getAttribute("name")||O.getAttribute("data-field")},"_labelledby"),v=c(function(b){return b.getAttribute("title")||b.getAttribute("aria-title")||""},"_ariatitle"),g=p.filter(b=>this.isInvalid(b));if(g.length>0){let b=` -
        - Please verify the following incorrect fields: -
          -
          - ${g.map(O=>"
        • "+u(r,O)+"
          "+v(O)+"
        • ").join("")} -
          -
        -
        -`;this.formValidatorModal.body.subelements(".validationMessage")[0].innerHTML=b,this.formValidatorModal.modal()}else this.save()}else ce.logger.debug("Unable to find the modal validator..."),ce.logger.debug("Saving data..."),this.save()}constructor(r){super(r),this.validations=[],this.serviceClass="",this.formSettings={backRouting:"#",loadingRouting:"#loading",nextRouting:"#signupsuccessful"},this.component=r.component,this.component=this.component.Cast(yn.FormField)}done(){ce.logger.debugEnabled=!0;try{this.component.createBindingEvents();let r=(0,ce._DOMCreateElement)("div");r.className="modal_body",this.formValidatorModal=(0,ce.New)(yn.ModalComponent,{body:r,subcomponents:[],data:{content:'
        '}}),(0,ce.Tag)(".modal_body").map(f=>document.body.removeChild(f)),document.body.append(this.formValidatorModal)}catch{ce.logger.debug("Unable to create the modal")}this.onpress(".submit",()=>{this.formSaveTouchHandler()})}},"FormController")])})()});var _n=V(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});var fe=J();(function(){"use strict";(0,fe.Package)("org.qcobjects.controllers.swagger",[c(class extends fe.Controller{startSwaggerUI(){if(typeof SwaggerUIBundle<"u"){let r=SwaggerUIBundle({url:fe.CONFIG.get("swagger-ui-url","https://petstore.swagger.io/v2/swagger.json"),dom_id:"#"+fe.CONFIG.get("swagger-ui-dom_id","swagger-ui"),deepLinking:!0,presets:[SwaggerUIBundle.presets.apis,SwaggerUIStandalonePreset],plugins:[SwaggerUIBundle.plugins.DownloadUrl],layout:"StandaloneLayout"});window.ui=r}}done(){this.component.body.innerHTML='
        ';let r=fe.CONFIG.get("swagger-ui-package-path","node_modules/swagger-ui-dist/");this.dependencies?.push((0,fe.New)(fe.SourceJS,{url:r+"swagger-ui-standalone-preset.js",external:fe.CONFIG.get("swagger-ui-external",!1)})),this.dependencies?.push((0,fe.New)(fe.SourceCSS,{url:r+"swagger-ui.css",external:fe.CONFIG.get("swagger-ui-external",!1)})),this.dependencies?.push((0,fe.New)(fe.SourceJS,{url:r+"swagger-ui-bundle.js",external:fe.CONFIG.get("swagger-ui-external",!1),done:()=>{this.startSwaggerUI()}}))}},"SwaggerUIController")])})()});var Nn=V(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});var In=J();(function(){"use strict";(0,In.Package)("org.qcobjects.modal.controllers",[c(class extends In.Controller{done(){let r=this.component;r.body.innerHTML=r.body.innerHTML.replace("/{{content}}/g",r.submodal.template)}},"ModalController")])})()});var Tn=V(xn=>{"use strict";Object.defineProperty(xn,"__esModule",{value:!0});var Sn=J();(function(){"use strict";(0,Sn.Package)("org.qcobjects.views",[c(class extends Sn.View{},"GridView")])})()});var En=V(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});var An=J();(function(){(0,An.Package)("org.qcobjects.tools.canvas",[c(class extends An.InheritClass{drawImageFilled(r,f,p=1,u=0,v=0){let g=Math.max(f.width/r.width,f.height/r.height);g=g*p;let b=f.width/2-r.width/2*g,O=f.height/2-r.height/2*g;f.getContext("2d")?.drawImage(r,u+b,v+O,r.width*g,r.height*g)}getImageResized(r,f,p,u,v=1,g=0,b=0){let O=document.createElement("canvas");return O.width=f,O.height=p,O.style.width=f.toString(),O.style.height=p.toString(),this.drawImageFilled(r,O,v,g,b),u.src=O.toDataURL("image/png"),O}},"CanvasTool")])})()});var Mn=V(Pn=>{"use strict";Object.defineProperty(Pn,"__esModule",{value:!0});var Z=J(),Le=Re();(function(){(0,Z.Package)("org.qcobjects.tools.layouts",[c(class extends Z.InheritClass{constructor({component:r=null,dependencies:f=[]}){super({component:r,dependencies:f}),this.dependencies=[]}load(){this.dependencies.push((0,Z.New)(Z.SourceCSS,{external:!Z.CONFIG.get("useLocalSDK",!1),url:Z.CONFIG.get("useLocalSDK",!1)?"css/basic-layout.css":Z.CONFIG.get("remoteSDKPath",!1)+"css/basic-layout.css"}))}coloredBorder(){setTimeout(function(){(0,Z.Tag)("nav").map(r=>{r.style.border="20px solid #3333"}),(0,Z.Tag)("nav").map(r=>{r.style.backgroundColor="#129999"}),(0,Z.Tag)("component>footer").map(r=>{r.style.background="#876"}),(0,Z.Tag)("component>div").map(r=>{r.style.border="3px dashed #fff"}),(0,Z.Tag)("component>section").map(r=>{r.style.border="3px solid #000"}),(0,Z.Tag)("component>section").map(r=>{r.style.backgroundColor="#fffaaa"}),(0,Z.Tag)("component>article").map(r=>{r.style.border="3px dotted #000"}),(0,Z.Tag)("component>header").map(r=>{r.style.background="#789"}),(0,Z.Tag)("component>footer").map(r=>{r.style.background="#876"}),(0,Z.Tag)("component>article:nth-child(1)").map(r=>{r.style.border="1px solid #444"}),(0,Z.Tag)("component>article:nth-child(1)").map(r=>{r.style.backgroundColor="#555aaa"}),(0,Z.Tag)("component>article:nth-child(2)").map(r=>{r.style.backgroundColor="#aaa333"}),(0,Z.Tag)("component>article:nth-child(3)").map(r=>{r.style.backgroundColor="#54da82"}),(0,Z.Tag)("*").map(r=>{r.style.color="#fff"}),(0,Z.Tag)("component>article").map(r=>Le.Fade.apply(r,0,1)),(0,Z.Tag)("component>footer").map(r=>Le.Fade.apply(r,0,1)),(0,Z.Tag)("component>header").map(r=>Le.Fade.apply(r,0,1)),(0,Z.Tag)("nav").map(r=>{r.style.display="block",r.style.width=r.offsetParent?.scrollWidth.toString()||r.clientWidth.toString(),Le.MoveXInFromLeft.apply(r)}),(0,Z.Tag)("component>article").map(r=>{r.style.display="block",r.style.height=r.offsetParent?.scrollHeight.toString()||r.clientHeight.toString(),Le.MoveYInFromBottom.apply(r)}),(0,Z.Tag)("component>article:nth-child(2)").map(r=>{r.style.display="block",r.style.width=r.offsetParent?.scrollWidth.toString()||r.clientWidth.toString(),Le.MoveXInFromRight.apply(r)})},300)}},"BasicLayout")])})()});var Et=V((dt,at)=>{"use strict";Object.defineProperty(dt,"__esModule",{value:!0});dt.SessionUserToken=void 0;var xe=J(),Rn=typeof at=="object"&&typeof at.exports=="object"?at.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{};(function(w){"use strict";class r extends xe.InheritClass{constructor(p){super(p);let u=this;this.__cache__=new xe.ComplexStorageCache({index:u.__instanceID.toString(),load(){let v;return typeof navigator<"u"&&typeof origin<"u"?v=xe._Crypt.encrypt(`${navigator.userAgent}|${p.username}|${(+new Date).toString()}`,origin):v=xe._Crypt.encrypt(`${p.username}|${(+new Date).toString()}`,xe.CONFIG.get("domain","localhost")),r.user={priority:u.__instanceID.toString(),token:v},r.user},alternate(v){r.user=v?.cache.getCached(u.__instanceID.toString())}})}static generateIndex(p){return typeof Buffer<"u"?Buffer.from(p,"ascii").toString("base64"):btoa(p)}getGlobalUser(...p){let u=[p].join("|"),v="userToken_"+r.generateIndex(u);return(typeof w.get(v)>"u"||w.get(v)===null)&&w.set(v,(0,xe.New)(r,{username:u})),r.user=w.get(v).user,w.get(v).user}getGlobalUserToken(...p){return this.getGlobalUser(p).token}getGlobalUserId(...p){return this.getGlobalUser(p).id}getGlobalUserPriority(...p){return this.getGlobalUser(p).priority}getLoginCredentialsToken(p,u){return xe._Crypt.encrypt(`${p}${u}`,this.getGlobalUserToken(p))}closeGlobalSession(...p){this.getGlobalUser(p);let u=[p].join("|"),v="userToken_"+r.generateIndex(u);typeof w.get(v)<"u"&&(w.get(v).__cache__.clear(),w.set(v,null),r.user={})}}c(r,"SessionUserToken"),r.user={},(0,xe.Package)("org.qcobjects.cloud.auth.session.usertoken",[r])})(Rn);var Mo=Rn.SessionUserToken;dt.SessionUserToken=Mo});var Ln=V(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});var Pt=J(),kn=Et();(function(){"use strict";(0,Pt.Package)("org.qcobjects.cloud.auth.session.data",[c(class extends Pt.InheritClass{constructor(){super(...arguments),this.__session_container__=null}setSessionContainer(){this.__session_container__=[...arguments]}getSessionContainer(){if(typeof this.__session_container__>"u"||this.__session_container__===null)throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)");return this.__session_container__}getSessionData(...r){let f=sessionStorage.getItem(`${this.index(r)}`),p;return f!==null&&(p=JSON.parse(f)),(typeof p>"u"||p===null)&&(p={}),p}index(...r){if(typeof kn.SessionUserToken>"u")throw new Error('You need to import SessionUserToken first: Import ("org.qcobjects.cloud.auth.session.usertoken")');return`session_${btoa(kn.SessionUserToken.getGlobalUserToken(r))}`}save(...r){let f=(0,Pt._DataStringify)(this.sessionData);sessionStorage.setItem(`${this.index(r)}`,f)}get(r,f){let p=this.getSessionData(this.getSessionContainer());return typeof p[r]<"u"?p[r]:f}set(r,f){let p=this.getSessionContainer(),u=this.getSessionData(p);this.sessionData=u,this.sessionData[r]=f,this.save(p)}},"SessionData")])})()});var Ro=V((Mt,lt)=>{Object.defineProperty(Mt,"__esModule",{value:!0});var Fn=J(),Gn=typeof lt=="object"&&typeof lt.exports=="object"?lt.exports=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}:typeof global=="object"?global:typeof window=="object"?window:{};c(function w(r){"use strict";if(typeof Object.defineProperty<"u"&&typeof r<"u")try{Object.defineProperty(r,"__qcobjects_sdk__",{enumerable:!0,configurable:!1,writable:!1,value:w})}catch{typeof r.__qcobjects_sdk__<"u"&&(r.__qcobjects_sdk__.__loaded__=!0)}if(typeof r.__qcobjects_sdk__.__loaded__>"u"){if(r.__qcobjects_sdk__.__loaded__=!0,typeof r>"u")throw Error("Top context empty: It should either global, module or window");let f=Fn.GlobalSettings.__start__.bind(r),p=[];p=[new Promise(u=>{Jt(),en(),Ct(),tn(),nn(),rn(),an(),dn(),un(),pn(),mn(),bn(),wn(),_n(),Re(),Nn(),Tn(),En(),Mn(),Et(),Ln(),u()})],r._sdk_=Promise.all(p).then(()=>{Fn.CONFIG.set("useSDK",!0),f()})}},"__qcobjects_sdk__")(Gn);Mt.default=Gn});return Ro();})(); -//# sourceMappingURL=QCObjects-SDK.js.map diff --git a/public/QCObjects-SDK.js.map b/public/QCObjects-SDK.js.map deleted file mode 100644 index c28da96..0000000 --- a/public/QCObjects-SDK.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../node_modules/qcobjects-sdk/src/QCObjects-SDK.js", "../node_modules/qcobjects-sdk/src/index.cjs", "../node_modules/qcobjects/src/QCObjects.js", "../node_modules/qcobjects/src/index.cjs", "../build/js/org.qcobjects.i18n_messages.js", "../build/js/org.qcobjects.models.js", "../build/js/org.qcobjects.effects.js", "../build/js/org.qcobjects.components.js", "../build/js/org.qcobjects.components.grid.js", "../build/js/org.qcobjects.components.list.js", "../build/js/org.qcobjects.components.slider.js", "../build/js/org.qcobjects.components.notifications.js", "../build/js/org.qcobjects.components.splashscreen.js", "../build/js/org.qcobjects.controllers.js", "../build/js/org.qcobjects.controllers.grid.js", "../build/js/org.qcobjects.controllers.list.js", "../build/js/org.qcobjects.controllers.slider.js", "../build/js/org.qcobjects.controllers.form.js", "../build/js/org.qcobjects.controllers.swagger.js", "../build/js/org.qcobjects.modal.controllers.js", "../build/js/org.qcobjects.views.js", "../build/js/org.qcobjects.tools.canvas.js", "../build/js/org.qcobjects.tools.layouts.js", "../build/js/org.qcobjects.cloud.auth.session.usertoken.js", "../build/js/org.qcobjects.cloud.auth.session.data.js", "../build/QCObjects-SDK.js"], - "sourcesContent": ["/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n(function __qcobjects_sdk__ (_top) {\n \"use strict\";\n if (typeof Object.defineProperty !== \"undefined\" && typeof _top !== \"undefined\"){\n try {\n Object.defineProperty(_top,\"__qcobjects_sdk__\", {\n enumerable: true,\n configurable: false,\n writable: false,\n value: __qcobjects_sdk__,\n });\n } catch (e){\n if (typeof _top.__qcobjects_sdk__ !== \"undefined\"){\n _top.__qcobjects_sdk__.__loaded__ = true;\n }\n }\n }\n\n if (typeof _top.__qcobjects_sdk__.__loaded__ === \"undefined\"){\n _top.__qcobjects_sdk__.__loaded__ = true;\n if (typeof _top === \"undefined\"){\n throw Error(\"Top context empty: It should either global, module or window\");\n }\n var global = _top;\n _top.global = global;\n var isBrowser = typeof window !== \"undefined\" && typeof window.self !== \"undefined\" && window === window.self;\n var isNodeCommonJS = (typeof module !== \"undefined\") ? (true): (false);\n var remoteImportsPath = CONFIG.get(\"remoteImportsPath\");\n var relativeImportPath = CONFIG.get(\"relativeImportPath\");\n var external = (!CONFIG.get(\"useLocalSDK\")) ? (true) : (false);\n if (external && !isNodeCommonJS) {\n CONFIG.set(\"remoteImportsPath\", \"https://sdk.qcobjects.dev/v2.4/src/js/\");\n } else {\n CONFIG.set(\"relativeImportPath\", \"qcobjects-sdk/src/js/\");\n }\n if (typeof _top._DOMCreateElement === \"undefined\") {\n _top._DOMCreateElement = function (elementName) {\n var _ret_;\n if (isBrowser) {\n _ret_ = document.createElement(elementName);\n } else {\n _ret_ = {};\n }\n return _ret_;\n };\n }\n var _imports_;\n if (isBrowser && !isNodeCommonJS) {\n _imports_ = [\n Import(\"org.qcobjects.i18n_messages\", function () {}, external),\n Import(\"org.qcobjects.models\", function () {}, external),\n Import(\"org.qcobjects.components\", function () {}, external),\n Import(\"org.qcobjects.components.grid\", function () {}, external),\n Import(\"org.qcobjects.components.list\", function () {}, external),\n Import(\"org.qcobjects.components.slider\", function () {}, external),\n Import(\"org.qcobjects.components.notifications\", function () {}, external),\n Import(\"org.qcobjects.components.splashscreen\", function () {}, external),\n Import(\"org.qcobjects.controllers\", function () {}, external),\n Import(\"org.qcobjects.controllers.grid\", function () {}, external),\n Import(\"org.qcobjects.controllers.list\", function () {}, external),\n Import(\"org.qcobjects.controllers.slider\", function () {}, external),\n Import(\"org.qcobjects.controllers.form\", function () {}, external),\n Import(\"org.qcobjects.controllers.swagger\", function () {}, external),\n Import(\"org.qcobjects.effects\", function () {}, external),\n Import(\"org.qcobjects.modal.controllers\", function () {}, external),\n Import(\"org.qcobjects.views\", function () {}, external),\n Import(\"org.qcobjects.tools.canvas\", function () {}, external),\n Import(\"org.qcobjects.tools.layouts\", function () {}, external),\n Import(\"org.qcobjects.cloud.auth.session.usertoken\", function () {}, external),\n Import(\"org.qcobjects.cloud.auth.session.data\", function () {}, external)\n ];\n } else {\n // non-browsers environment\n if (isNodeCommonJS){\n CONFIG.set(\"remoteImportsPath\", CONFIG.get(\"basePath\",\"\"));\n }\n \n var _relative_path_ = \"qcobjects-sdk/src/js/\";\n _imports_ = [\n Import(_relative_path_ + \"org.qcobjects.models\", function () {}, external),\n Import(_relative_path_ + \"org.qcobjects.components\", function () {}, external),\n Import(_relative_path_ + \"org.qcobjects.controllers\", function () {}, external),\n Import(_relative_path_ + \"org.qcobjects.views\", function () {}, external),\n Import(_relative_path_ + \"org.qcobjects.effects\", function () {}, external),\n Import(_relative_path_ + \"org.qcobjects.tools.canvas\", function () {}, external),\n Import(_relative_path_ + \"org.qcobjects.tools.layouts\", function () {}, external),\n Import(_relative_path_ + \"org.qcobjects.cloud.auth.session.usertoken\", function () {}, external),\n Import(_relative_path_ + \"org.qcobjects.cloud.auth.session.data\", function () {}, external)\n ];\n \n \n }\n const __start__ = GlobalSettings.__start__.bind(_top);\n _top._sdk_ = Promise.all(_imports_).then(()=>{\n CONFIG.set(\"useSDK\", true);\n CONFIG.set(\"remoteImportsPath\", remoteImportsPath);\n CONFIG.set(\"relativeImportPath\", relativeImportPath);\n __start__();\n });\n \n }\n\n}).call(null, (typeof module === \"object\" && typeof module.exports === \"object\") ? (\n module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})\n) : ((typeof global === \"object\") ? (global) : (\n (typeof window === \"object\") ? (window) : ({})\n)));", "const sdk = require (\"./QCObjects-SDK\");\nmodule.exports = sdk;", "/**\n * QCObjects 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n\n/*eslint no-mixed-operators: \"off\"*/\n(function __qcobjects__ (_top) {\n \"use strict\";\n\n if (typeof Object.defineProperty !== \"undefined\" && typeof _top !== \"undefined\"){\n try {\n Object.defineProperty(_top,\"__qcobjects__\", {\n enumerable: true,\n configurable: false,\n writable: false,\n value: __qcobjects__,\n });\n } catch (e){\n if (typeof _top.__qcobjects__ !== \"undefined\"){\n _top.__qcobjects__.loaded = true;\n }\n }\n }\n if (typeof _top.__qcobjects__.loaded === \"undefined\"){\n _top.__qcobjects__.loaded = true;\n \n var global = _top;\n _top.global = global;\n \n var isDeno = (typeof window !== \"undefined\" && \"Deno\" in window);\n var isBrowser = (typeof window !== \"undefined\" && typeof window.self !== \"undefined\" && window === window.self) && !isDeno;\n var isNodeCommonJS = (typeof module !== \"undefined\") ? (true): (false);\n var deno_require = function (){ /* not yet implemented */};\n var _require_ = function (){\n return (isDeno)?(deno_require(...arguments)):(require(...arguments));\n };\n \n var _protected_code_ = function (_) {\n var __oldtoString = (typeof _.prototype !== \"undefined\") ? (_.prototype.toString) : (function () {\n return \"\";\n });\n if (typeof _.prototype !== \"undefined\") {\n _.prototype.toString = function () {\n var _protected_symbols = [\n \"__qcobjects__\",\n \"__qcobjects_sdk__\",\n \"__loaded__\",\n \"ComplexStorageCache\",\n \"css\",\n \"append\",\n \"attachIn\",\n \"debug\",\n \"info\",\n \"warn\",\n \"QC_Append\",\n \"set\",\n \"get\",\n \"done\",\n \"componentDone\",\n \"_new_\",\n \"__new__\",\n \"Class\",\n \"ClassFactory\",\n \"New\",\n \"Export\",\n \"Package\",\n \"Import\",\n \"subelements\",\n \"componentLoader\",\n \"buildComponents\",\n \"Controller\",\n \"View\",\n \"VO\",\n \"Service\",\n \"serviceLoader\",\n \"JSONService\",\n \"ConfigService\",\n \"SourceJS\",\n \"SourceCSS\",\n \"ArrayList\",\n \"ArrayCollection\",\n \"Effect\",\n \"Timer\",\n \"sum\",\n \"avg\",\n \"table\",\n \"max\",\n \"min\",\n \"range\",\n \"matrix\",\n \"matrix2d\",\n \"matrix3d\",\n \"unique\",\n \"uniqueId\",\n \"shortCode\",\n \"NamespaceRef\"\n ];\n var _ret_;\n if (_protected_symbols.includes(this.name)) {\n _ret_ = this.name + \"{ [QCObjects native code] }\";\n } else {\n _ret_ = __oldtoString.call(this);\n }\n return _ret_;\n };\n }\n };\n (_protected_code_)(Function);\n var _methods_ = function (_) {\n var _m = [];\n for (var i in _) {\n if ((typeof _[i]).toLowerCase() === \"function\") {\n _m.push(_[i]);\n }\n }\n return _m;\n };\n \n String.prototype.__mAll__ = function (regex) {\n // This is an alternative to old browsers that dont support String.prototype.matchAll\n // https://github.com/tc39/proposal-string-matchall\n var matches = [];\n this.replace(regex, function () {\n var match = Array.prototype.slice.call(arguments, 0, -2);\n match.input = arguments[arguments.length - 1];\n match.index = arguments[arguments.length - 2];\n matches.push(match);\n });\n return matches;\n };\n if (typeof String.prototype.matchAll === \"undefined\") {\n String.prototype.matchAll = String.prototype.__mAll__;\n }\n var _DOMCreateElement = function (elementName) {\n var _ret_;\n if (isBrowser) {\n _ret_ = document.createElement(elementName);\n } else {\n _ret_ = {};\n }\n return _ret_;\n };\n \n if (!isBrowser) {\n const fs = _require_(\"fs\");\n }\n \n var _DataStringify = function (data) {\n var getCircularReplacer = function () {\n var seen = new WeakSet();\n var _level = 0;\n return function (key, value) {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n _level += 1;\n return (_level <= 3) ? (_LegacyCopy(value)) : (null);\n }\n seen.add(value);\n }\n return value;\n };\n };\n return JSON.stringify(data, getCircularReplacer());\n };\n \n if (isBrowser) {\n var _subelements = function subelements(selector) {\n return [...this.querySelectorAll(selector)];\n };\n Element.prototype.subelements = _subelements;\n HTMLDocument.prototype.subelements = _subelements;\n HTMLElement.prototype.subelements = _subelements;\n if (typeof ShadowRoot !== \"undefined\") {\n ShadowRoot.prototype.subelements = _subelements;\n }\n }\n if (isBrowser) {\n try {\n _top = (typeof window.top !== \"undefined\") ? (window.top) : (window);\n _top[\"_allowed_\"] = true;\n } catch (e) {\n try {\n _top = document;\n _top[\"_allowed_\"] = true;\n } catch (e2) {\n try {\n _top = global;\n _top[\"_allowed_\"] = true;\n } catch (e3) {\n _top = {};\n _top[\"_allowed_\"] = true;\n }\n }\n }\n } else if (typeof global !== \"undefined\") {\n _top = global;\n }\n var _domain_, _basePath_;\n var _tag_filter_ = \"quick-component:not([loaded]),component:not([loaded])\";\n _basePath_ = (\n function () {\n var _basePath = \"\";\n if (isBrowser) {\n var baseURI = _top.document.baseURI.split(\"?\")[0].split(\"/\");\n baseURI.pop();\n _basePath = baseURI.join(\"/\") + \"/\";\n } else {\n var process;\n try {\n process = _require_(\"process\");\n } catch (e) {\n // not a process module\n }\n if (typeof process !== \"undefined\") {\n _basePath = `${process.cwd()}/`;\n } else {\n _basePath = \"\";\n }\n }\n return _basePath;\n }\n )();\n if (isBrowser) {\n /**\n * Polyfilling Promise\n */\n if (!(\"Promise\" in _top)) {\n _top.Promise = function (_f) {\n var _p = {\n then() {},\n catch () {},\n _then(response) {\n this.then.call(_p, response);\n },\n _catch(response) {\n this.catch.call(_p, response);\n }\n };\n _f.call(_p, _p._then, _p._catch);\n return _p;\n };\n }\n if (typeof _top.console === \"undefined\") {\n _top.console = function () {};\n _top.console.prototype.log = function (message) {};\n }\n \n _domain_ = (\n function () {\n return (typeof document !== \"undefined\" && document.domain !== \"\") ? (document.domain) : (\"localhost\");\n }\n )();\n \n var _secretKey = (\n function () {\n var __secretKey = _top[(![] + [])[((+!+[]) + (+!+[]))] + (typeof ![])[(+!+[])] + (typeof [])[((+!+[]) + (+!+[])) * ((+!+[]) + (+!+[]))] + (![] + [])[(+!+[])] + (!![] + [])[(+[])] + ([] + [] + [][\n []\n ])[(+[+!+[] + [+[]]]) / ((+!+[]) + (+!+[]))] + (typeof ![])[(+!+[])] + ([] + [] + [][\n []\n ])[(+!+[])]][\"h\" + (typeof ![])[(+!+[])] + (![] + [])[(+!+[] + ((+!+[]) + (+!+[])))] + (!![] + [])[(+[])]].toLowerCase();\n return __secretKey;\n }\n )();\n var is_phonegap = (\n function () {\n return (typeof cordova !== \"undefined\") ? (true) : (false);\n }\n )();\n \n } else {\n // This is only for code integrity purpose using non-browser implementations\n // like using node.js\n var _secretKey = \"secret\";\n _domain_ = \"localhost\";\n }\n \n _top._asyncLoad = [];\n var asyncLoad = function (callback, args) {\n var asyncCallback = {\n \"func\": callback,\n \"args\": args,\n \"dispatch\"() {\n this.func.apply(null, this.args);\n }\n };\n _top._asyncLoad.push(asyncCallback);\n return asyncCallback;\n };\n \n if (isBrowser) {\n var _fireAsyncLoad = function () {\n if (document.readyState === \"complete\") {\n _top._asyncLoad.map(function (fc) {\n fc.dispatch.call(fc);\n });\n }\n };\n document.onreadystatechange = _fireAsyncLoad;\n } else if (typeof _top.global !== \"undefined\") {\n _top.global._fireAsyncLoad = function () {\n _top._asyncLoad.map(function (fc) {\n fc.dispatch.call(fc);\n });\n };\n }\n \n _top.asyncLoad = asyncLoad;\n var Logger = function () {\n return {\n debugEnabled: true,\n infoEnabled: true,\n warnEnabled: true,\n debug(message) {\n if (this.debugEnabled) {\n console.log(\"\\x1b[35m%s\\x1b[0m\", `[DEBUG][${performance.now().toLocaleString()}] ${message}`);\n }\n },\n info(message) {\n var color;\n if (this.infoEnabled) {\n if (isBrowser) {\n color = \"\\x1b[103m%s\\x1b[0m\";\n } else {\n color = \"\\x1b[33m%s\\x1b[0m\";\n }\n console.info(color, `[INFO][${performance.now().toLocaleString()}] ${message}`);\n }\n },\n warn(message) {\n if (this.warnEnabled) {\n console.warn(\"\\x1b[31m%s\\x1b[0m\", `[WARN][${performance.now().toLocaleString()}] ${message}`);\n }\n }\n };\n };\n var logger = new Logger();\n logger.debugEnabled = false;\n logger.infoEnabled = true;\n _top.logger = logger;\n var Base64 = {\n _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\n encode(e) {\n var t = \"\";\n var n, r, i, s, o, u, a;\n var f = 0;\n e = Base64._utf8_encode(e);\n while (f < e.length) {\n n = e.charCodeAt(f++);\n r = e.charCodeAt(f++);\n i = e.charCodeAt(f++);\n s = n >> 2;\n o = (n & 3) << 4 | r >> 4;\n u = (r & 15) << 2 | i >> 6;\n a = i & 63;\n if (isNaN(r)) {\n u = a = 64;\n } else if (isNaN(i)) {\n a = 64;\n }\n t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);\n }\n return t;\n },\n decode(e) {\n var t = \"\";\n var n, r, i;\n var s, o, u, a;\n var f = 0;\n e = e.replace(/[^A-Za-z0-9+/=]/g, \"\");\n while (f < e.length) {\n s = this._keyStr.indexOf(e.charAt(f++));\n o = this._keyStr.indexOf(e.charAt(f++));\n u = this._keyStr.indexOf(e.charAt(f++));\n a = this._keyStr.indexOf(e.charAt(f++));\n n = s << 2 | o >> 4;\n r = (o & 15) << 4 | u >> 2;\n i = (u & 3) << 6 | a;\n t = t + String.fromCharCode(n);\n if (u !== 64) {\n t = t + String.fromCharCode(r);\n }\n if (a !== 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = Base64._utf8_decode(t);\n return t;\n },\n _utf8_encode(e) {\n e = e.replace(/rn/g, \"n\");\n var t = \"\";\n for (var n = 0; n < e.length; n++) {\n var r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n } else if (r > 127 && r < 2048) {\n t += String.fromCharCode(r >> 6 | 192);\n t += String.fromCharCode(r & 63 | 128);\n } else {\n t += String.fromCharCode(r >> 12 | 224);\n t += String.fromCharCode(r >> 6 & 63 | 128);\n t += String.fromCharCode(r & 63 | 128);\n }\n }\n return t;\n },\n _utf8_decode(e) {\n var t = \"\";\n var n = 0;\n var r = 0;\n var c1 = 0;\n var c2 = 0;\n var c3;\n while (n < e.length) {\n r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n n++;\n } else if (r > 191 && r < 224) {\n c2 = e.charCodeAt(n + 1);\n t += String.fromCharCode((r & 31) << 6 | c2 & 63);\n n += 2;\n } else {\n c2 = e.charCodeAt(n + 1);\n c3 = e.charCodeAt(n + 2);\n t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\n n += 3;\n }\n }\n return t;\n }\n };\n var waitUntil = function (func, exp) {\n var _waitUntil = function (func, exp) {\n var maxWaitCycles = 2000;\n var _w = 0;\n var _t = setInterval(function () {\n if (exp.call()) {\n clearInterval(_t);\n func.call();\n logger.debug(\"Ejecuting \" + func.name + \" after wait\");\n } else {\n if (_w < maxWaitCycles) {\n _w += 1;\n logger.debug(\"WAIT UNTIL \" + func.name + \" is true, \" + _w.toString() + \" cycles\");\n } else {\n logger.debug(\"Max execution time for \" + func.name + \" expression until true\");\n clearInterval(_t);\n }\n }\n }, 1);\n };\n setTimeout(function () {\n _waitUntil(func, exp);\n }, 1);\n };\n if (typeof localStorage === \"undefined\") {\n /* Polyfill for localStorage */\n var localStorage = {\n getItem(name) {\n return (Object.hasOwnProperty.call(this, name)) ? (this[name]) : (null);\n },\n setItem(name, value) {\n this[name] = value;\n },\n removeItem(name) {\n delete this[name];\n }\n };\n /* end Polyfill for localStorage */\n }\n var ComplexStorageCache = function (params) {\n var object, load, alternate;\n object = params.index;\n if (typeof object !== \"undefined\") {\n load = params.load;\n alternate = params.alternate;\n var cachedObjectID = this.getID(object);\n var cachedResponse = localStorage.getItem(cachedObjectID);\n if (this.isEmpty(cachedResponse)) {\n var cachedNewResponse = load.call(null, {\n \"cachedObjectID\": cachedObjectID,\n \"cachedResponse\": cachedResponse,\n \"cache\": this\n });\n this.save(object, cachedNewResponse);\n logger.debug(\"RESPONSE OF {{cachedObjectID}} CACHED\".replace(\"{{cachedObjectID}}\", cachedObjectID));\n } else {\n var alternateResponse = alternate.call(null, {\n \"cachedObjectID\": cachedObjectID,\n \"cachedResponse\": cachedResponse,\n \"cache\": this\n });\n logger.debug(\"RESPONSE OF {{cachedObjectID}} IS ALREADY CACHED \".replace(\"{{cachedObjectID}}\", cachedObjectID));\n }\n \n } else {\n throw new Error(\"ComplexStorageCache: index is undefined\");\n }\n return this;\n };\n ComplexStorageCache.prototype.getItem = function (cachedObjectID) {\n var retrievedObject = localStorage.getItem(cachedObjectID);\n if (!this.isEmpty(retrievedObject)) {\n return JSON.parse(retrievedObject);\n } else {\n return null;\n }\n };\n ComplexStorageCache.prototype.setItem = function (cachedObjectID, value) {\n localStorage.setItem(cachedObjectID, _DataStringify(value));\n };\n ComplexStorageCache.prototype.isEmpty = function (object) {\n var r = false;\n switch (true) {\n case (typeof object === \"undefined\"):\n case (typeof object === \"string\" && object === \"\"):\n case (typeof object === \"string\" && object === \"undefined\"):\n case (typeof object === \"number\" && object === 0):\n case (object === null):\n r = true;\n break;\n default:\n r = false;\n }\n return r;\n };\n ComplexStorageCache.prototype.getID = function (object) {\n var cachedObjectID;\n if (typeof object !== \"undefined\") {\n cachedObjectID = \"cachedObject_\" + Base64.encode(_DataStringify(object).replace(/\\{|\\}|,/g, \"_\"));\n }\n return cachedObjectID;\n };\n ComplexStorageCache.prototype.save = function (object, cachedNewResponse) {\n var cachedObjectID = this.getID(object);\n logger.debug(\"CACHING THE RESPONSE OF {{cachedObjectID}} \".replace(\"{{cachedObjectID}}\", cachedObjectID));\n this.setItem(cachedObjectID, cachedNewResponse);\n };\n ComplexStorageCache.prototype.getCached = function (object) {\n var cachedObjectID = this.getID(object);\n return this.getItem(cachedObjectID);\n };\n ComplexStorageCache.prototype.clear = function () {\n Object.keys(localStorage).filter(function (k) {\n return k.startsWith(\"cachedObject_\");\n }).map(function (c) {\n localStorage.removeItem(c);\n });\n };\n \n /**\n * Detecting passive events feature\n *\n * https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n **/\n \n // Test via a getter in the options object to see if the passive property is accessed\n if (isBrowser) {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, \"passive\", {\n get() {\n supportsPassive = true;\n return supportsPassive;\n }\n });\n window.addEventListener(\"testPassive\", null, opts);\n window.removeEventListener(\"testPassive\", null, opts);\n } catch (e) {}\n var captureFalse = function () {\n return (supportsPassive) ? ({\n passive: true\n }) : (false);\n };\n \n // Use our detect's results. passive applied if supported, capture will be false either way.\n //elem.addEventListener('touchstart', fn, captureFalse);\n \n }\n \n \n /**\n * Basic Type of all elements\n */\n if (isBrowser) {\n Element.prototype.find = function (tag) {\n var _oo = [];\n var _tags = document.subelements(tag);\n _tags.map(function (_tt, _t) {\n if ((typeof _tags[_t] !== \"undefined\") && _tags[_t].parentNode.tagName === this.parentNode.tagName) {\n _oo.push(_Cast(_tt, (new Object())));\n }\n });\n return _oo;\n };\n }\n \n /**\n * Primary instance ID of all objects\n */\n var __instanceID;\n // Adaptation of Production steps of ECMA-262, Edition 5, 15.2.3.5\n // Reference: http://es5.github.io/#x15.2.3.5\n var _Object_Create = (function () {\n \n // make a safe reference to Object.prototype.hasOwnProperty\n var hasOwn = Object.prototype.hasOwnProperty;\n \n return function (O) {\n // 1. If Type(O) is not Object or Null throw a TypeError exception.\n if (typeof O !== \"object\") {\n throw TypeError(\"Object prototype may only be an Object or null. The type is \" + typeof (O));\n }\n \n // 2. Let obj be the result of creating a new object as if by the\n //\t\texpression new Object() where Object is the standard built-in\n //\t\tconstructor with that name\n // 3. Set the [[Prototype]] internal property of obj to O.\n var QCObjects = function () {};\n QCObjects.prototype = O;\n var obj = new QCObjects();\n \n // Let's not keep a stray reference to O...\n \n // 4. If the argument Properties is present and not undefined, add\n //\t\town properties to obj as if by calling the standard built-in\n //\t\tfunction Object.defineProperties with arguments obj and\n //\t\tProperties.\n if (arguments.length > 1) {\n // Object.defineProperties does ToObject on its first argument.\n var Properties = Object(arguments[1]);\n for (var prop in Properties) {\n if (hasOwn.call(Properties, prop)) {\n obj[prop] = Properties[prop];\n }\n }\n }\n \n // 5. Return obj\n return obj;\n };\n })();\n \n // Object.assign Polyfilling\n // Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill\n if (typeof Object.assign !== \"function\") {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, \"assign\", {\n value: function assign(target, varArgs) { // .length of function is 2\n \"use strict\";\n if (target === null) { // TypeError if undefined or null\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n \n var to = Object(target);\n \n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n \n if (nextSource !== null) { // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true\n });\n }\n \n var __is_raw_class__ = function (o_c) {\n return (typeof o_c === \"function\" && o_c.toString().startsWith(\"class\")) ? (true) : (false);\n };\n \n var _LegacyCopy = function (obj) {\n var _value_;\n switch (true) {\n case typeof obj === \"string\":\n _value_ = obj;\n break;\n case typeof obj === \"number\":\n _value_ = obj;\n break;\n case typeof obj === \"object\":\n _value_ = Object.assign({}, obj);\n break;\n case typeof obj === \"function\":\n _value_ = obj.bind({});\n break;\n case __is_raw_class__(obj):\n _value_ = class extends obj {};\n break;\n default:\n break;\n }\n return _value_;\n };\n \n \n var _QC_CLASSES = {};\n var _QC_PACKAGES = {};\n var _QC_PACKAGES_IMPORTED = [];\n var _QC_READY_LISTENERS = [];\n \n /**\n * Returns the object or function name\n *\n * @param Object or function\n */\n var ObjectName = function (o) {\n var ret = \"\";\n if (typeof o === \"function\" && Object.hasOwnProperty.call(o, \"name\") && o.name !== \"\") {\n ret = o.name;\n } else if (typeof o !== \"undefined\" && typeof o.constructor === \"function\" && o.constructor.name !== \"\") {\n ret = o.constructor.name;\n } else if (typeof o !== \"undefined\" && typeof o.constructor === \"object\") {\n ret = o.constructor.toString().replace(/\\[(.*?)\\]/g, \"$1\").split(\" \").slice(1).join(\"\");\n }\n return ret;\n };\n \n /**\n * Casts an object to another object class type\n *\n * @param {Object} obj_source\n * @param {Object} obj_dest\n */\n var _Cast = function (obj_source, obj_dest) {\n for (var v in obj_source) {\n if (typeof obj_source[v] !== \"undefined\") {\n try {\n obj_dest[v] = obj_source[v];\n } catch (e) {\n \n }\n }\n }\n return obj_dest;\n };\n \n /**\n * Casts an object to another object class type. Only properties\n *\n * @param {Object} obj_source\n * @param {Object} obj_dest\n */\n var _CastProps = function (obj_source, obj_dest) {\n for (var v in obj_source) {\n if (typeof obj_source[v] !== \"undefined\" && typeof obj_source[v] !== \"function\") {\n try {\n obj_dest[v] = obj_source[v];\n } catch (e) {\n // DO NOTHING\n }\n } else if (typeof obj_source[v] === \"function\") {\n try {\n obj_dest[v] = obj_source[v].bind(obj_dest);\n } catch (e) {\n logger.warn(e);\n }\n }\n }\n return obj_dest;\n };\n \n /**\n * Internal use to determine the forbidden names for classes\n * Reserved words\n *\n * @param {String} name\n * @param {Object} type\n * @param {Object} definition\n */\n var __is__forbidden_name__ = function () {\n return ([\"__proto__\", \"prototype\", \"Object\", \"Map\", \"defineProperty\", \"indexOf\", \"toString\", \"__instanceID\"].indexOf(arguments[0]) !== -1) ? (true) : (false);\n };\n \n /**\n * Determine the type of the Object for any QCObjects Object\n *\n * @param {Object} object\n */\n var __getType__ = function __getType__(o_c) {\n var _ret_ = \"\";\n switch (true) {\n case __is_raw_class__(o_c) && !!o_c.name:\n _ret_ = o_c.name;\n break;\n case typeof o_c === \"object\" &&\n (!!o_c.constructor &&\n !!o_c.constructor.name) \n && o_c.constructor.name !== \"\":\n _ret_ = o_c.constructor.name;\n break;\n case (!!o_c && !!o_c.__classType) && o_c.__classType !== \"\":\n _ret_ = o_c.__classType;\n break;\n case (!!o_c && !!o_c.__definition) && (!!o_c.__definition.__classType) && o_c.__definition.__classType !== \"\":\n _ret_ = o_c.__definition.__classType;\n break;\n case typeof o_c === \"function\" && !!o_c.name:\n _ret_ = o_c.name;\n break;\n default:\n _ret_ = ObjectName(o_c);\n break;\n }\n return _ret_;\n };\n \n /**\n * Returns if a class or object is from a determinated type\n * @param {Object} object\n * @param {String} typeName\n */\n var is_a = function is_a(obj, typeName) {\n return (typeof obj !== \"undefined\" && obj !== null &&\n (((isQCObjects_Class(obj) || isQCObjects_Object(obj)) && (obj.hierarchy().includes(typeName))) ||\n __getType__(obj) === typeName ||\n ObjectName(obj) === typeName ||\n typeof obj === typeName)) ? (true) : (false);\n };\n \n \n var __make_global__ = function (f) {\n if (typeof f !== \"undefined\") {\n if (isBrowser) {\n try {\n _top[f.name] = f;\n window[f.name] = f;\n } catch (e) {}\n } else if (typeof global !== \"undefined\") {\n if (!Object.hasOwnProperty.call(global, f.name)) {\n global[f.name] = f;\n }\n }\n }\n \n };\n \n var __register_class__ = function (_class_, __namespace) {\n var name = _class_.name || __getType__(_class_);\n _class_.__definition.__classType = name;\n if (typeof __namespace !== \"undefined\"){\n _class_.__definition.__namespace = __namespace;\n }\n _QC_CLASSES[name] = _class_;\n _top[name] = _QC_CLASSES[name];\n return _top[name];\n };\n \n var RegisterClass = function (_class_, __namespace) {\n return __register_class__(_class_, __namespace);\n };\n __make_global__(RegisterClass);\n \n /**\n * Creates new object class of another object\n *\n * @param {String} name\n * @param {Object} type\n * @param {Object} definition\n */\n var Class = function () {\n var _types_ = {};\n var name, type, definition;\n \n switch (arguments.length) {\n case 0:\n return class {};\n case 1:\n name = arguments[0];\n type = class {};\n definition = {};\n break;\n case 2:\n name = arguments[0];\n type = class {};\n definition = arguments[1];\n break;\n case 3:\n name = arguments[0];\n type = arguments[1];\n definition = arguments[2];\n break;\n default:\n break;\n }\n \n if (typeof type !== \"function\") {\n throw new Error(\"Class type must be a function or class\");\n }\n \n if (__is__forbidden_name__.call(this, name)) {\n throw new Error(`${name} is not an allowed word in the name of a class`);\n }\n \n if (typeof type[\"__definition\"] !== \"undefined\") {\n definition[\"__definition\"] = Object.assign(_LegacyCopy(type.__definition), type);\n }\n \n _types_[type.name] = type;\n \n if (typeof definition === \"undefined\" || definition === null) {\n definition = {};\n } else {\n definition = _LegacyCopy(definition);\n }\n \n /* hack to prevent duplicate __instanceID */\n if (typeof definition[\"__instanceID\"] !== \"undefined\") {\n delete definition[\"__instanceID\"];\n }\n \n _QC_CLASSES[name] = class extends _types_[type.name] {\n __classType = name;\n __definition = {\n ...definition\n };\n \n static hierarchy(__class__) {\n var __classType = function (o_c) {\n return (Object.hasOwnProperty.call(o_c, \"__classType\")) ? (o_c.__classType) : (__getType__.call(__class__, o_c));\n };\n var __hierarchy__proto__ = (c) => {\n return (typeof c !== \"undefined\" && typeof c.__proto__ !== \"undefined\" && c.__proto__ !== null) ? (((__classType(c) !== \"\") ? ([__classType(c)]) : ([])).concat(__hierarchy__proto__(c.__proto__))) : ([]);\n };\n \n if (typeof __class__ === \"undefined\" || __class__ === null) {\n __class__ = this;\n }\n var __hierarchy = [];\n __hierarchy.push(__classType(__class__));\n __hierarchy = __hierarchy.concat(__hierarchy__proto__(__class__.__proto__));\n return __hierarchy;\n }\n \n static getParentClass() {\n return Object.getPrototypeOf(this.prototype.constructor);\n }\n \n constructor() {\n var _o_;\n if (arguments.length > 0) {\n _o_ = {\n ...arguments[0]\n };\n } else {\n _o_ = {};\n }\n super(_o_);\n \n let self = this;\n __instanceID = (typeof __instanceID === \"undefined\" || __instanceID === null) ? (0) : (__instanceID + 1);\n if (!self.__instanceID) {\n Object.defineProperty(self, \"__instanceID\", {\n value: __instanceID,\n writable: false\n });\n }\n \n if (typeof self.__definition !== \"undefined\") {\n Object.keys(self.__definition).filter(function (k) {\n return isNaN(k) && ![\"name\", \"__instanceID\", \"__classType\", \"__definition\"].includes(k);\n }).forEach(function (key) {\n if (typeof self.__definition[key] === \"function\") {\n self[key] = self.__definition[key].bind(self);\n } else {\n self[key] = self.__definition[key];\n }\n });\n }\n _methods_(_QC_CLASSES[self.__classType]).map(function (m) {\n self[m.name] = m.bind(self);\n });\n _methods_(self.__definition).map(function (m) {\n self[m.name] = m.bind(self);\n });\n\n if (!!self[\"body\"]){\n if (typeof self.__definition === \"undefined\" || (!Object.hasOwnProperty.call(self.__definition, \"body\")) || typeof self.__definition.body === \"undefined\") {\n try {\n if (isBrowser) {\n self[\"body\"] = _DOMCreateElement(self.__definition.__classType);\n } else {\n self[\"body\"] = {};\n }\n } catch (e) {\n self[\"body\"] = {};\n }\n } else if (Object.hasOwnProperty.call(self.__definition, \"body\")) {\n self[\"body\"] = self.__definition.body;\n } \n }\n \n \n try {\n if (typeof self.__new__ === \"function\") {\n self.__new__.call(self, _o_);\n } else if (typeof super.__new__ === \"function\") {\n self.__new__ = super.__new__.bind(self);\n self.__new__.call(self, _o_);\n }\n if (typeof self === \"object\" && Object.hasOwnProperty.call(self, \"_new_\") && typeof self._new_.isCalled === \"undefined\") {\n try {\n self._new_.call(self, _o_);\n self._new_.isCalled = true;\n } catch (e) {\n logger.warn(`${self.__classType}._new_() failed with error: ${e}`);\n }\n }\n } catch (e) {\n logger.warn(e);\n }\n }\n \n __new__(_o_) {\n _CastProps(_o_, this);\n }\n _new_() {}\n \n getClass() {\n return Object.getPrototypeOf(this.constructor);\n }\n \n css(_css) {\n if (typeof this[\"body\"] !== \"undefined\" && this[\"body\"][\"style\"] !== \"undefined\") {\n logger.debug(\"body style\");\n this[\"body\"][\"style\"] = _Cast(_css, this[\"body\"][\"style\"]);\n }\n return this[\"body\"][\"style\"];\n }\n \n hierarchy() {\n var __instance__ = this;\n return this.getClass().hierarchy(__instance__);\n }\n \n \n append(child) {\n logger.debug(\"append: start\");\n if (is_a(child, \"Component\")) {\n logger.debug(\"append: child is a Component\");\n logger.debug(`appending the body of ${child.name}`);\n }\n var child = (arguments.length > 0) ? (arguments[0]) : (this[\"body\"]);\n if (typeof this[\"body\"] !== \"undefined\") {\n logger.debug(\"append element\");\n if (arguments.lenght > 0) {\n logger.debug(\"append to element\");\n this[\"body\"].append(child);\n if (typeof this[\"childs\"] === \"undefined\") {\n this[\"childs\"] = [];\n }\n this[\"childs\"].push(child);\n } else {\n if (isBrowser) {\n logger.debug(\"append to body\");\n document.body.append(child);\n }\n }\n }\n }\n \n attachIn(tag) {\n if (isBrowser) {\n var tags = document.subelements(tag);\n for (var i = 0, j = tags.length; i < j; i++) {\n tags[i].append(this);\n }\n } else {\n throw new Error(\"attachIn not yet implemented for non browser platforms\");\n }\n }\n \n };\n \n // remove the keys from definition that exist in the prototype\n \n _QC_CLASSES[name] = _CastProps(definition, _QC_CLASSES[name]);\n _QC_CLASSES[name][\"__definition\"] = definition;\n _QC_CLASSES[name][\"__definition\"][\"__classType\"] = name;\n _QC_CLASSES[name][\"__definition\"][\"__new__\"] = function __new__(_o_) {\n _CastProps(_o_, this);\n };\n \n _top[name] = _QC_CLASSES[name];\n \n return _top[name];\n };\n \n Class.prototype.toString = function () {\n return \"Class(name, type, definition) { [QCObjects native code] }\";\n };\n \n /**\n * Returns the QCObjects Class Factory of a given ClassName\n *\n * @param {String} name\n */\n \n var ClassFactory = function (className) {\n var _classFactory;\n if (className !== null && className.indexOf(\".\") > -1) {\n var packageName = className.split(\".\").slice(0, className.split(\".\").length - 1).join(\".\");\n var _className = className.split(\".\").slice(-1).join(\"\");\n var _package = Package(packageName);\n var packageClasses = (typeof _package !== \"undefined\") ? (_package.filter(classFactory => {\n return isQCObjects_Class(classFactory) &&\n (classFactory.__definition.__classType === _className || (typeof classFactory === \"function\" && !!classFactory.name) ) ;\n }).reverse()) : ([]);\n if (packageClasses.length > 0) {\n _classFactory = packageClasses[0];\n } else {\n throw Error (`Class ${className} not found.`);\n }\n } else if (className !== null && Object.hasOwnProperty.call(_QC_CLASSES, className)) {\n _classFactory = _QC_CLASSES[className];\n }\n return _classFactory;\n };\n \n if (isBrowser) {\n Element.prototype.append = function QC_Append(child) {\n if (isQCObjects_Object(child) || typeof child.body !== \"undefined\") {\n this.appendChild(child.body);\n } else {\n this.appendChild(child);\n }\n };\n \n /**\n * A replacement for direct using of innerHTML\n * use: [element].render('content') where 'content' is the string corresponding\n * to the DOM to insert in the element\n **/\n Element.prototype.render = function QC_Render(content) {\n var _self = this;\n var _appendVDOM = function (_self, content) {\n if (typeof document.implementation.createHTMLDocument !== \"undefined\") {\n var doc = document.implementation.createHTMLDocument(\"\");\n doc.innerHTML = content;\n doc.body.subelements(\"*\").map(function (element) {\n return _self.append(element);\n });\n }\n };\n if (typeof this.innerHTML !== \"undefined\") {\n try {\n this.innerHTML += content;\n } catch (e) {\n _appendVDOM(_self, content);\n }\n } else {\n _appendVDOM(_self, content);\n }\n };\n }\n \n /**\n * Returns a method from a superior QCObjects Class\n * It is useful for Class Inheritance in the _new_ and __new__ method constructors\n * @example _super_('MySuperClass','MySuperMethod').call(this,params) #where this is the current instance and params are method parameters\n *\n * @param {String} className\n * @param {String} classMethodName\n * @param {Object} params\n */\n var _super_ = function (className, classMethodName, params) {\n return ClassFactory(className)[classMethodName];\n };\n _super_.prototype.toString = function () {\n return \"_super_(className,classMethodName,params) { [QCObjects native code] }\";\n };\n \n /**\n * Creates an object from a Class definition\n *\n * @param {QC_Object} o\n * @param {Object} args\n */\n \n var New = function (__class__, args) {\n args = (arguments.length > 1) ? (args) : ({});\n return (typeof __class__ === \"undefined\") ? (new Object()) : (new __class__(args));\n };\n \n New.prototype.toString = function () {\n return \"New(QCObjectsClassName, args) { [QCObjects native code] }\";\n };\n \n \n var Export = function (f) {\n return __make_global__(f);\n };\n Export.prototype.toString = function () {\n return \"Export(function or symbol) { [QCObjects native code] }\";\n };\n \n if (!isBrowser) {\n var findPackageNodePath = function (packagename) {\n const fs = _require_(\"fs\");\n var sdkPath = null;\n try {\n var sdkPaths = [\n `${_top.CONFIG.get(\"projectPath\")}${_top.CONFIG.get(\"relativeImportPath\")}`,\n `${_top.CONFIG.get(\"basePath\")}${_top.CONFIG.get(\"relativeImportPath\")}`,\n `${_top.CONFIG.get(\"projectPath\")}`,\n `${_top.CONFIG.get(\"basePath\")}`,\n `${_top.CONFIG.get(\"relativeImportPath\")}`,\n `${process.cwd()}${_top.CONFIG.get(\"relativeImportPath\")}`,\n `${process.cwd()}/node_modules/` + packagename,\n `${process.cwd()}/node_modules`,\n `${process.cwd()}`,\n \"node_modules\",\n \"./\",\n \"\"\n ].concat(module.paths);\n sdkPaths = sdkPaths.filter(p => {\n return fs.existsSync(p + \"/\" + packagename);\n });\n if (sdkPaths.length > 0) {\n sdkPath = sdkPaths[0];\n logger.info(packagename + \" is Installed.\");\n } else {\n // logger.debug(packagename + ' is not in a standard path.');\n }\n } catch (e) {\n // do nothing\n console.log(e);\n }\n return sdkPath;\n };\n Export(findPackageNodePath);\n }\n \n Class(\"_Crypt\", Object, {\n last_string: \"\",\n last_key: \"\",\n construct: false,\n _new_(o) {\n var string = o[\"string\"];\n var key = (o.hasOwnProperty.call(o, \"key\")) ? (o[\"key\"]) : (null);\n this.__new__(o);\n key = (key === null) ? (this.__instanceID) : (key);\n this.last_key = key;\n this.last_string = string;\n this.construct = true;\n },\n _encrypt() {\n var string = this.string;\n var key = this.key;\n var result = \"\";\n var char;\n var keychar;\n for (var i = 0; i < string.length; i++) {\n char = string.substr(i, 1);\n keychar = key.substr((i % key.length) - 1, 1);\n char = String.fromCharCode(char.charCodeAt(0) + keychar.charCodeAt(0));\n result += char;\n }\n this.last_string = Base64.encode(result);\n return this.last_string;\n },\n _decrypt() {\n var string = this.string;\n var key = this.key;\n var result = \"\";\n var char;\n var keychar;\n string = Base64.decode(string);\n for (var i = 0; i < string.length; i++) {\n char = string.substr(i, 1);\n keychar = key.substr((i % key.length) - 1, 1);\n char = String.fromCharCode(char.charCodeAt(0) - keychar.charCodeAt(0));\n result += char;\n }\n \n this.last_string = result;\n return this.last_string;\n },\n encrypt(string, key) {\n var crypt = New(ClassFactory(\"_Crypt\"), {\n string: string,\n key: (key !== \"\") ? (key) : (\"12345678ABC\")\n });\n return crypt._encrypt();\n },\n decrypt(string, key) {\n var crypt = New(ClassFactory(\"_Crypt\"), {\n string: string,\n key: (key !== \"\") ? (key) : (\"12345678ABC\")\n });\n return crypt._decrypt();\n }\n });\n \n var _CryptObject = function (o) {\n return ClassFactory(\"_Crypt\").encrypt(_DataStringify(o), _secretKey);\n };\n var _DecryptObject = function (s) {\n return (s === \"\") ? ({}) : (JSON.parse(ClassFactory(\"_Crypt\").decrypt(s, _secretKey)));\n };\n \n var shortCode = function () {\n var length = 1000;\n var code1 = ClassFactory(\"_Crypt\").encrypt((Math.random() * length).toString().replace(\".\", \"\"), (new Date()).getTime().toString());\n var code2 = ClassFactory(\"_Crypt\").encrypt((Math.random() * length).toString().replace(\".\", \"\"), (new Date((new Date()).getTime() - 1000 * 1000)).getTime().toString());\n var shortCode = code2.list().map((o1, index) => {\n return code1.list()[index] === o1 ? null : o1;\n }).filter(c => c !== null).join(\"\");\n return shortCode;\n };\n var uniqueId = shortCode;\n Class(\"InheritClass\", class {}, {});\n \n class Processor extends ClassFactory(\"InheritClass\") {\n component = null;\n __definition = {};\n __classType = \"Processor\";\n \n static processors= {\n \"config\"(component,arg) {\n return _top.CONFIG.get(arg, \"\");\n },\n \"ENV\"(component, arg) {\n return (typeof process !== \"undefined\") ? (process.env[arg]) : (\"\");\n },\n \"global\"(component, arg) {\n return (typeof global !== \"undefined\") ? (global[arg]) : (\"\");\n }\n };\n static setProcessor(_proc_) {\n if (typeof _proc_ === \"function\" && _proc_.name !== \"\") {\n this.processors[_proc_.name] = _proc_;\n }\n }\n \n constructor (){\n super(...arguments);\n this.processors = Processor.processors;\n this.process = Processor.process.bind(this);\n this.processObject = Processor.processObject.bind(this);\n this.setProcessor = Processor.setProcessor.bind(this);\n this.execute = Processor.execute.bind(this);\n }\n \n static execute(component,processorName, args) {\n var processorHandler = (typeof component !== \"undefined\" && component !== null)?(component.processorHandler):(this);\n return processorHandler.processors[processorName].bind(processorHandler).apply(processorHandler,[component,...args.split(\",\")]);\n }\n \n static process(template, component = null) {\n var processorHandler = (component !== null)?(component.processorHandler):( New(Processor,{component:null}) ) ;\n if (typeof template === \"string\") {\n Object.keys(processorHandler.processors).map(function (funcName) {\n [...template.matchAll(new RegExp(\"\\\\$\" + funcName + \"\\\\((.*)\\\\).*\", \"g\"))].map(\n function (procesorMatch) {\n var match0 = `$${funcName}(${procesorMatch[1]})`;\n template = template.replace(match0, processorHandler.execute.bind(processorHandler).call(processorHandler, component, funcName, procesorMatch[1]));\n }\n );\n });\n }\n return template;\n }\n \n static processObject(obj, component = null) {\n var __instance__ = (component === null)?(this):(component.processorHandler);\n if (typeof __instance__ === \"undefined\"){\n __instance__ = new Processor({component:component});\n }\n if (typeof obj === \"object\") {\n Object.keys(obj).map(\n function (_k) {\n if (typeof obj[_k] === \"object\" && !obj[_k].hasOwnProperty.call(obj[_k], \"call\")) {\n obj[_k] = __instance__.processObject.bind(__instance__)(obj[_k], component);\n } else if (typeof obj[_k] === \"string\") {\n obj[_k] = __instance__.process.bind(__instance__)(obj[_k], component);\n }\n }\n );\n } else if (typeof obj === \"string\") {\n obj = __instance__.process.bind(__instance__)(obj, component);\n }\n return obj;\n }\n \n }\n Processor.__definition = {};\n Processor.__classType = \"Processor\";\n RegisterClass(Processor,\"com.qcobjects\");\n __make_global__(Processor);\n \n \n class ConfigSettings {\n static _instance = null;\n static _CONFIG_ENC = null;\n static get instance() {\n \n if (this._instance === null) {\n var _config_settings = new ConfigSettings();\n _config_settings._CONFIG = {\n \"relativeImportPath\": \"\",\n \"remoteImportsPath\": \"\",\n \"remoteSDKPath\": \"https://sdk.qcobjects.dev/v2.4/\",\n \"asynchronousImportsLoad\": false,\n \"removePackageScriptAfterLoading\": true,\n \"componentsBasePath\": \"\",\n \"delayForReady\": 0,\n \"preserveComponentBodyTag\": false,\n \"useConfigService\": false,\n \"routingWay\": \"hash\",\n \"useSDK\": true,\n \"useLocalSDK\": false,\n \"basePath\": _basePath_\n };\n _config_settings._CONFIG_ENC = null;\n this._instance = _config_settings;\n }\n \n return this._instance;\n }\n \n static set instance(value) {\n this._instance = value;\n }\n }\n _QC_CLASSES[\"ConfigSettings\"] = ConfigSettings;\n \n Class(\"CONFIG\", Object, {\n \n get _CONFIG_ENC() {\n return ClassFactory(\"ConfigSettings\").instance._CONFIG_ENC;\n },\n \n get _CONFIG() {\n return ClassFactory(\"ConfigSettings\").instance._CONFIG;\n },\n \n set(name, value) {\n logger.debug(`CONFIG.set ${name}: ${value}`);\n // hack to force update basePath from CONFIG\n if (name === \"basePath\") {\n _basePath_ = value;\n }\n var _conf;\n try {\n _conf = (\n function (config) {\n if (config._CONFIG_ENC === null) {\n config._CONFIG_ENC = ClassFactory(\"_Crypt\").encrypt(_DataStringify({}), _secretKey);\n }\n var _protectedEnc = config._CONFIG_ENC.valueOf();\n var _protectedConf = config._CONFIG.valueOf();\n return _CastProps(_protectedConf, _DecryptObject(_protectedEnc));\n }\n )(ClassFactory(\"ConfigSettings\").instance);\n } catch (e) {\n _conf = {};\n console.error(e);\n logger.debug(\"failed to encrypt config\");\n }\n \n _conf[name] = value;\n ClassFactory(\"ConfigSettings\").instance._CONFIG_ENC = _CryptObject(_conf);\n if (Object.hasOwnProperty.call(ClassFactory(\"ConfigSettings\").instance, \"_CONFIG\") && Object.hasOwnProperty.call(ClassFactory(\"ConfigSettings\").instance._CONFIG, name)) {\n ClassFactory(\"ConfigSettings\").instance._CONFIG[name] = value;\n }\n },\n get(name, _default) {\n var _value;\n try {\n var _conf = (\n function (config) {\n if (config._CONFIG_ENC === null) {\n config._CONFIG_ENC = ClassFactory(\"_Crypt\").encrypt(_DataStringify({}), _secretKey);\n }\n var _protectedEnc = config._CONFIG_ENC.valueOf();\n var _protectedConf = config._CONFIG.valueOf();\n return _CastProps(_protectedConf, _DecryptObject(_protectedEnc));\n }\n )(ClassFactory(\"ConfigSettings\").instance);\n if (typeof _conf[name] !== \"undefined\") {\n _value = _conf[name];\n } else if (typeof _default !== \"undefined\") {\n _value = _default;\n }\n } catch (e) {\n console.error(e);\n logger.debug(\"Something wrong when trying to get CONFIG values\");\n logger.debug(\"No config value for: \" + name);\n _value = _default;\n }\n return Processor.processObject.call(Processor, _value);\n }\n });\n \n Export(waitUntil);\n Export(_super_);\n Export(ComplexStorageCache);\n Export(ClassFactory);\n Export(_DOMCreateElement);\n Export(shortCode);\n Export(__getType__);\n Export(is_a);\n \n var isQCObjects_Object = function (_) {\n return (typeof _ === \"object\" &&\n Object.hasOwnProperty.call(_, \"__classType\") &&\n (!!_.__instanceID) &&\n Object.hasOwnProperty.call(_, \"__definition\") &&\n typeof _.__definition !== \"undefined\"\n ) ? (true) : (false);\n };\n \n var isQCObjects_Class = function (_) {\n return (typeof _ === \"function\" &&\n (!_.__instanceID) &&\n (!!_.__definition) &&\n typeof _.__definition !== \"undefined\" &&\n !!_.__definition.__classType\n ) ? (true) : (false);\n };\n \n /**\n * Defines a package for Class classification\n *\n * @param {Object} namespace\n * @param {Object} classes\n */\n var Package = function (namespace, classes) {\n if (_QC_PACKAGES.hasOwnProperty.call(_QC_PACKAGES, namespace) &&\n typeof _QC_PACKAGES[namespace] !== \"undefined\" &&\n _QC_PACKAGES[namespace].hasOwnProperty.call(_QC_PACKAGES[namespace], \"length\") &&\n _QC_PACKAGES[namespace].length > 0 &&\n typeof classes !== \"undefined\" &&\n classes.hasOwnProperty.call(classes, \"length\") &&\n classes.length > 0\n ) {\n classes.filter(\n function (_c1) {\n return isQCObjects_Class(_c1);\n }\n ).map(function (_class_) {\n _class_.__definition.__namespace = namespace;\n _class_.__namespace = namespace;\n });\n _QC_PACKAGES[namespace] = _QC_PACKAGES[namespace].concat(classes);\n } else if (typeof classes !== \"undefined\") {\n if (typeof classes === \"object\" && classes.hasOwnProperty.call(classes, \"length\")) {\n classes.filter(\n function (_c1) {\n return isQCObjects_Class(_c1);\n }\n ).map(function (_class_) {\n _class_.__definition.__namespace = namespace;\n _class_.__namespace = namespace;\n });\n } else if (isQCObjects_Class(classes)) {\n classes.__definition.__namespace = namespace;\n classes.__namespace = namespace;\n }\n _QC_PACKAGES[namespace] = classes;\n }\n if (Object.hasOwnProperty.call(_QC_PACKAGES, namespace)) {\n _QC_PACKAGES[namespace].map(function (_class_) {\n __register_class__(_class_, namespace);\n });\n }\n return (Object.hasOwnProperty.call(_QC_PACKAGES, namespace)) ? (_QC_PACKAGES[namespace]) : (undefined);\n };\n Package.prototype.toString = function () {\n return \"Package(namespace, classes) { [QCObjects native code] }\";\n };\n \n Package(\"com.qcobjects\",[Processor]);\n \n /**\n * Declare Namespace\n *\n * @param {String} packageName\n * @param {Object} package\n */\n var NamespaceRef = function (namespace) {\n let packageInstance = Package(namespace);\n let classes = packageInstance.filter(c => isQCObjects_Class(c)).map(c => {\n return {\n [c.__definition.__classType]: c\n };\n }).reduce((a, b) => Object.assign(a, b));\n return namespace.split(\".\").map(c => {\n return {\n [c]: classes\n };\n }).reverse().reduce((a, b) => {\n b[Object.keys(b)] = a;\n return b;\n });\n };\n \n \n /**\n * Imports a script with the package nomenclature\n *\n * @param {Object} packagename\n * @param {Object} ready\n * @param {Boolean} external\n */\n var Import = function () {\n var packagename;\n var ready = function () {};\n var external = false;\n if (arguments.length < 1) {\n return;\n } else if (arguments.length === 1) {\n packagename = arguments[0];\n } else if (arguments.length === 2) {\n packagename = arguments[0];\n ready = arguments[1];\n } else if (arguments.length > 2) {\n packagename = arguments[0];\n ready = arguments[1];\n external = arguments[2];\n logger.debug(\"[Import] Setting external=\" + external.toString() + \" resource to import: \" + packagename);\n }\n if (external) {\n logger.debug(\"[Import] Registering external resource to import: \" + packagename);\n } else {\n logger.debug(\"[Import] Registering local resource to import: \" + packagename);\n }\n var _promise_import_;\n if (isBrowser) {\n _promise_import_ = new Promise(function (resolve, reject) {\n \n var allPackagesImported = function () {\n var ret = false;\n var cp = 0;\n for (var p in _QC_PACKAGES) {\n cp++;\n }\n if (cp < _QC_PACKAGES_IMPORTED.length) {\n ret = false;\n } else {\n ret = true;\n }\n return ret;\n };\n \n var readyImported = function (e) {\n _QC_PACKAGES_IMPORTED.push(ready);\n if (allPackagesImported()) {\n _QC_PACKAGES_IMPORTED.map(function (_imported_) {\n _QC_READY_LISTENERS.push(_imported_);\n });\n }\n if (isBrowser && _top.CONFIG.get(\"removePackageScriptAfterLoading\")) {\n e.target.remove();\n }\n resolve.call(_promise_import_, {\n \"_imported_\": e.target,\n \"_package_name_\": packagename\n });\n };\n \n if (!_QC_PACKAGES.hasOwnProperty.call(_QC_PACKAGES, packagename)) {\n var s1 = _DOMCreateElement(\"script\");\n s1.type = _top.CONFIG.get(\"sourceType\", \"text/javascript\");\n s1.async = (_top.CONFIG.get(\"asynchronousImportsLoad\")) ? (true) : (false);\n s1.onreadystatechange = function () {\n if (s1.readyState === \"complete\") {\n readyImported.call();\n }\n };\n s1.onload = readyImported;\n s1.onerror = function (e) {\n reject.call(_promise_import_, {\n \"_imported_\": s1,\n \"_package_name_\": packagename\n });\n };\n s1.src = (external) ? (_top.CONFIG.get(\"remoteImportsPath\") + packagename + \".js\") : (_basePath_ + _top.CONFIG.get(\"relativeImportPath\") + packagename + \".js\");\n document.getElementsByTagName(\"head\")[0].appendChild(s1);\n }\n });\n _promise_import_.catch(function () {\n logger.debug(\"Import: Error loading a package \");\n });\n \n } else {\n // support to be used in a nodejs environment\n _promise_import_ = new Promise(function (resolve, reject) {\n try {\n var standardNodePath = findPackageNodePath(packagename);\n var packageAbsoluteName = \"\";\n if (standardNodePath !== null) {\n packageAbsoluteName = standardNodePath + \"/\" + packagename;\n } else {\n var jsNodePath = findPackageNodePath(packagename + \".js\");\n if (jsNodePath !== null) {\n packageAbsoluteName = jsNodePath + \"/\" + packagename + \".js\";\n } else {\n packageAbsoluteName = _basePath_ + _top.CONFIG.get(\"relativeImportPath\") + packagename;\n }\n }\n try {\n resolve.call(_promise_import_, {\n \"_imported_\": _require_(`${packageAbsoluteName}`),\n \"_package_name_\": packagename\n });\n } catch (e) {\n reject.call(_promise_import_, {\n \"_imported_\": null,\n \"_package_name_\": packagename,\n \"error\": e\n });\n }\n } catch (e) {\n reject.call(_promise_import_, {\n \"_imported_\": null,\n \"_package_name_\": packagename,\n \"error\": e\n });\n }\n }).catch(function (e) {\n // something wrong importing a package\n logger.debug(\"Something happened when importing \" + packagename);\n console.warn(e);\n });\n }\n _promise_import_.catch(function (e) {\n logger.warn(_DataStringify(e));\n });\n return _promise_import_;\n };\n Import.prototype.toString = function () {\n return \"Import(packagename,ready,external) { [QCObjects native code] }\";\n };\n \n if (isBrowser) {\n /**\n * Adds a Cast functionality to every Element of DOM\n */\n Element.prototype.Cast = function QC_Object(_o) {\n _o.__definition.body = this;\n var _o = New(_o);\n return _o;\n };\n }\n \n Class(\"TagElements\", Array, {\n show() {\n this.map(function (element) {\n return element.style.opacity = 1;\n });\n },\n hide() {\n this.map(function (element) {\n return element.style.opacity = 0;\n });\n },\n effect() {\n var effectArguments = [...arguments].slice(1);\n var effectClass = arguments[0];\n if ((typeof effectClass).toLowerCase() === \"string\") {\n effectClass = ClassFactory(effectClass);\n }\n this.map(function (element) {\n return effectClass.apply.apply(effectClass, [element].concat(effectArguments));\n });\n },\n findElements(elementName) {\n var _o = New(ClassFactory(\"TagElements\"));\n if (isBrowser) {\n for (var _k in this) {\n if (typeof _k === \"number\" && typeof this[_k] !== \"function\" && this[_k].hasOwnProperty.call(this[_k], \"subelements\")) {\n _o.push(this[_k].subelements(elementName));\n }\n }\n } else {\n // not yet implemented.\n }\n return _o;\n }\n });\n \n /**\n * Gets the element of DOM found by tag name\n *\n * @param {Object} tagname\n * @param {Object} innerHTML\n */\n var Tag = function (tagname, innerHTML) {\n var _o = New(ClassFactory(\"TagElements\"));\n if (isBrowser) {\n var o = document.subelements(tagname);\n var addedKeys = [];\n for (var _i = 0; _i < o.length; _i++) {\n if (typeof innerHTML !== \"undefined\" && o[_i].hasOwnProperty.call(o[_i], \"innerHTML\")) {\n o[_i].innerHTML = innerHTML;\n }\n if (addedKeys.indexOf(_i) < 0) {\n _o.push(o[_i]);\n addedKeys.push(_i);\n }\n }\n } else {\n // not yet implemented.\n }\n return _o;\n };\n \n /**\n * Defines a Custom Ready listener\n */\n function Ready(e) {\n if (isBrowser) {\n _QC_READY_LISTENERS.push(e.bind(window));\n } else if (typeof global !== \"undefined\") {\n _QC_READY_LISTENERS.push(e.bind(global));\n }\n }\n var ready = Ready; // case insensitive ready option\n \n /**\n * Default Ready event function for window. Executes all micro ready events of Import calls\n *\n * @param {Object} e\n */\n var _Ready = function (e) {\n var _execReady = function () {\n _QC_READY_LISTENERS.map(function (_ready_listener_, _r) {\n if (typeof _ready_listener_ === \"function\") {\n _ready_listener_.call();\n delete _QC_READY_LISTENERS[_r];\n }\n });\n };\n if (_top.CONFIG.get(\"delayForReady\") > 0) {\n if (isBrowser) {\n setTimeout(_execReady.bind(window), _top.CONFIG.get(\"delayForReady\"));\n } else if (typeof global !== \"undefined\") {\n setTimeout(_execReady.bind(global), _top.CONFIG.get(\"delayForReady\"));\n }\n } else {\n _execReady.call(_top);\n }\n };\n \n if (isBrowser) {\n window.onload = _Ready;\n if (is_phonegap) {\n document.addEventListener(\"deviceready\", _Ready, captureFalse);\n }\n } else {\n global.onload = _Ready;\n }\n \n /**\n * Dynamic Data Objects Class\n * Usage:\n * Class('TestDDO',{\n * data: {},\n * _new_ (){\n * this.ddo = New(DDO,{\n * instance:this,\n * name:'data',\n * value:{},\n * fget (value){\n * logger.debug('returned value '+ value );\n * }\n * })\n * }\n * });\n *\n */\n class DDO extends ClassFactory(\"InheritClass\") {\n constructor({\n instance,\n name,\n fget,\n fset,\n value\n }) {\n super({\n instance,\n name,\n fget,\n fset,\n value\n });\n this._new_({\n instance,\n name,\n fget,\n fset,\n value\n });\n \n }\n \n _new_({\n instance,\n name,\n fget,\n fset,\n value\n }) {\n var ddoInstance = this;\n var name = (typeof name === \"undefined\") ? (ObjectName(ddoInstance)) : (name);\n \n Object.defineProperty(instance, name, {\n set(val) {\n let _value = val;\n logger.debug(\"value changed \" + name);\n var ret;\n if (typeof fset !== \"undefined\" && typeof fset === \"function\") {\n ret = fset(_value);\n } else {\n ret = _value;\n }\n instance[\"_\" + name] = ret;\n return;\n },\n get() {\n let _value = instance[\"_\" + name];\n logger.debug(\"returning value \" + name);\n var is_ddo = function (v) {\n if (typeof v === \"object\" && Object.hasOwnProperty.call(v, \"value\")) {\n return v.value;\n }\n return v;\n };\n var ret;\n if (typeof fget !== \"undefined\" && typeof fget === \"function\") {\n ret = fget(is_ddo(_value));\n } else {\n ret = is_ddo(_value);\n }\n return ret;\n }\n });\n }\n \n }\n Export(DDO);\n \n class DefaultTemplateHandler {\n template= \"\";\n __definition = {};\n constructor ({component, template}){\n this.component = component;\n this.template = template;\n }\n assign(data) {\n var templateInstance = this;\n if (typeof templateInstance.component === \"undefined\") {\n throw new Error(\"DefaultTemplateHandler.assign: component is undefined\");\n }\n if (typeof templateInstance.component.processorHandler === \"undefined\") {\n throw new Error(\"DefaultTemplateHandler.assign: component.processorHandler is undefined\");\n }\n var processorHandler = templateInstance.component.processorHandler;\n processorHandler.component = templateInstance.component;\n var parsedAssignmentText = (typeof templateInstance.template !== \"undefined\") ? (templateInstance.template) : (\"\");\n if (typeof data === \"object\") {\n [...Object.keys(data)].map(function (k) {\n var _value = data[k];\n if (typeof _value === \"string\" || typeof _value === \"number\" || (!isNaN(_value))) {\n try {\n _value = Processor.processObject.bind(processorHandler).call(processorHandler, _value, templateInstance.component);\n parsedAssignmentText = parsedAssignmentText.replace((new RegExp(`{{${k}}}`, \"g\")), _value);\n } catch (e) {\n logger.warn(`${templateInstance.component.name} could not parse processors.`);\n throw Error (`${templateInstance.component.name} could not parse processors. Reason: ${e.message}`);\n }\n }\n });\n } else {\n logger.debug(`${templateInstance.component.name}.data is not an object`);\n }\n try {\n parsedAssignmentText = Processor.processObject.call(processorHandler, parsedAssignmentText, templateInstance.component);\n }catch (e){\n logger.warn(`${templateInstance.component.name} could not parse processors.`);\n throw Error (`${templateInstance.component.name} could not parse processors. Reason: ${e.message}`);\n }\n return parsedAssignmentText;\n }\n \n }\n DefaultTemplateHandler.__definition = {};\n RegisterClass(DefaultTemplateHandler,\"com.qcobjects\");\n \n var __routing_params__ = function (routing, routingPath) {\n let standardRoutingPath = routing.path.replace(/{(.*?)}/g, \"(?<$1>.*)\"); //allowing {param}\n return {\n ...[...routingPath.matchAll((new RegExp(standardRoutingPath, \"g\")))][0][\"groups\"]\n };\n };\n \n var __valid_routings__ = function (routings, routingPath) {\n return routings.filter(function (routing) {\n var standardRoutingPath = routing.path.replace(/{(.*?)}/g, \"(?<$1>.*)\");\n return (new RegExp(standardRoutingPath, \"g\")).test(routingPath);\n }).reverse();\n };\n var __valid_routing_way__ = function (validRoutingWays, routingWay) {\n return validRoutingWays.includes(routingWay);\n };\n \n var _buildComponentFromElement_ = function (element, __parent__){\n var __shadowed_not_set = (element.getAttribute(\"shadowed\") === null) ? (true) : (false);\n var __tplsource_attr_not_set = (element.getAttribute(\"template-source\") === null) ? (true) : (false);\n var shadowed = (element.getAttribute(\"shadowed\") === \"true\") ? (true) : (false);\n var __cached_not_set = (element.getAttribute(\"cached\") === null) ? (true) : (false);\n var cached = (element.getAttribute(\"cached\") === \"true\") ? (true) : (false);\n var tplextension = (typeof _top.CONFIG.get(\"tplextension\") !== \"undefined\") ? (_top.CONFIG.get(\"tplextension\")) : (\"html\");\n tplextension = (element.getAttribute(\"tplextension\") !== null) ? (element.getAttribute(\"tplextension\")) : (tplextension);\n var _componentName = element.getAttribute(\"name\");\n var _componentClassName = (element.getAttribute(\"componentClass\") !== null) ? (element.getAttribute(\"componentClass\")) : (\"Component\");\n let __componentClassName = (_top.CONFIG.get(\"preserveComponentBodyTag\")) ? (\n (_componentName !== null) ? (\"com.qcobjects.components.\" + _componentName + \".ComponentBody\") : (\"com.qcobjects.components.ComponentBody\")\n ) : (_componentClassName);\n _componentName = (_componentName !== null) ? (_componentName) : (\n (ClassFactory(__componentClassName) &&\n typeof ClassFactory(__componentClassName).name !== \"undefined\"\n ) ? (\n ClassFactory(__componentClassName).name\n ) : (\"\")\n );\n var __classDefinition = ClassFactory(__componentClassName);\n var __tplsource_prop_set = (__componentClassName !== \"Component\" && ((typeof __classDefinition !== \"undefined\" && typeof __classDefinition.tplsource === \"string\") && __classDefinition.tplsource !== \"\")) ? (true) : (false);\n var tplsource = (__tplsource_attr_not_set && __tplsource_prop_set) ? (__classDefinition.tplsource) : ((__tplsource_attr_not_set) ? (\"default\") : (element.getAttribute(\"template-source\")));\n logger.debug(`template source for ${_componentName} is ${tplsource} `);\n logger.debug(`type for ${_componentName} is ${__getType__(__classDefinition)} `);\n \n var componentURI;\n componentURI = ComponentURI({\n \"COMPONENTS_BASE_PATH\": _top.CONFIG.get(\"componentsBasePath\"),\n \"COMPONENT_NAME\": _componentName,\n \"TPLEXTENSION\": tplextension,\n \"TPL_SOURCE\": tplsource\n });\n if (_top.CONFIG.get(\"preserveComponentBodyTag\")) {\n Package((_componentName !== \"\") ? (\"com.qcobjects.components.\" + _componentName + \"\") : (\"com.qcobjects.components\"), [\n Class(\"ComponentBody\", ClassFactory(\"Component\"), {\n name: _componentName,\n tplsource: tplsource,\n tplextension: tplextension,\n reload: true\n })\n ]);\n }\n \n var __create_component_instance_ = function () {\n var __shadowed = (__shadowed_not_set) ? ((__classDefinition && __classDefinition.shadowed) || ClassFactory(\"Component\").shadowed) : (shadowed);\n var __definition = {\n __parent__: __parent__,\n name: _componentName,\n cached: (__cached_not_set) ? (ClassFactory(\"Component\").cached) : (cached),\n shadowed: __shadowed,\n tplextension: tplextension,\n body: (_top.CONFIG.get(\"preserveComponentBodyTag\")) ? (_DOMCreateElement(\"componentBody\")) : (element),\n templateURI: componentURI,\n tplsource: tplsource\n };\n if (typeof _componentName === \"undefined\" || _componentName === \"\" || _componentName === null) {\n /* this allows to use the original property defined\n in the component definition if it is not present in the tag */\n delete __definition.name;\n }\n if (componentURI === \"\") {\n /* this allows to use the original property defined\n in the component definition if it is not present in the tag */\n delete __definition.templateURI;\n }\n var newComponent = New(__classDefinition, __definition);\n \n if (_top.CONFIG.get(\"preserveComponentBodyTag\")) {\n element.append(newComponent);\n }\n return newComponent;\n };\n var newComponent = __create_component_instance_.call(this);\n return newComponent;\n };\n \n var _buildComponentsFromElements_ = function (elements, __parent__) {\n var componentsBuiltWith = [];\n if (isBrowser){\n componentsBuiltWith = elements.map(\n function(element){\n return _buildComponentFromElement_(element, __parent__);\n }\n );\n } else {\n logger.debug(\"[_buildComponentsFromElements_] not implemented for Non-Browser environments\");\n }\n return componentsBuiltWith;\n };\n \n \n Package(\"com.qcobjects\", [\n class Component extends ClassFactory(\"InheritClass\") {\n validRoutingWays= [\"pathname\", \"hash\", \"search\"];\n basePath= _basePath_;\n domain= _domain_;\n templateHandler= \"DefaultTemplateHandler\";\n processorHandler= null;\n routingWay= null;\n routingNodes= [];\n routings= [];\n routingPath= \"\";\n routingPaths=[];\n _componentHelpers= [];\n subcomponents=[];\n splashScreenComponent=undefined;\n controller=undefined;\n view=undefined;\n effect=undefined;\n method = \"GET\";\n cached= true;\n __promise__ = null;\n __namespace = undefined;\n \n constructor ({\n templateURI= \"\",\n template,\n tplsource= \"default\",\n url= \"\",\n name= \"\",\n method= \"GET\",\n data= {},\n reload= false,\n shadowed= false,\n cached= true,\n _body=_DOMCreateElement(\"div\"),\n __promise__= null,\n __shadowRoot,\n body,\n shadowRoot,\n splashScreenComponent,\n controller,\n view\n }){\n super(...arguments);\n var self = this;\n \n if (typeof self.name === \"undefined\") {\n logger.warn(\"A name is not defined for \" + __getType__(self));\n }\n \n self.routingWay = _top.CONFIG.get(\"routingWay\");\n \n self.processorHandler = New(Processor, {\n component: self\n });\n \n /* assign body data attributes to data */\n self.data = (typeof self.data === \"undefined\" || self.data === null)?({}):(self.data);\n self.data = Object.assign(self.data, self.dataAttributes);\n \n self.createServiceInstance()\n .then(function (serviceResponse){\n if (typeof self.__new__ === \"function\") {\n self.__new__.call(self, self);\n }\n \n self._generateRoutingPaths(self.body)\n .then(function (){\n self._reroute_()\n .then(function () {\n return self.rebuild()\n .then(function () {\n logger.info(`Component._new_ The component ${self.name} was built successfully!`);\n }).catch(function (standardResponse) {\n logger.warn(`Component._new_ Something went wrong building the component ${self.name}`);\n console.error(standardResponse);\n });\n });\n });\n \n });\n \n }\n \n set body(value) {\n var self = this;\n self._body = value;\n }\n \n get body() {\n var self= this;\n return self._body;\n }\n \n set cacheIndex(value) {\n // readonly\n logger.debug(\"[cacheIndex] This property is readonly\");\n }\n \n get cacheIndex() {\n var self= this;\n var __routing_path__ = _DataStringify(self.routingPath);\n return Base64.encode(self.name + __routing_path__);\n }\n \n set parsedAssignmentText(value) {\n // readonly\n logger.debug(\"[parsedAssignmentText] This property is readonly\");\n }\n \n get parsedAssignmentText() {\n var self= this;\n self._parsedAssignmentText = self.parseTemplate(self.template);\n if (typeof self._parsedAssignmentText === \"undefined\"){\n throw Error (`[Component][${this.name}][parsedAssignmentText] Could not generate content!`);\n }\n return self._parsedAssignmentText;\n }\n \n \n set shadowRoot(value) {\n var self= this;\n if (typeof self.__shadowRoot == \"undefined\") {\n self.__shadowRoot = value;\n } else {\n logger.debug(\"[shadowRoot] This property can only be assigned once!\");\n }\n }\n \n get shadowRoot() {\n var self= this;\n return self.__shadowRoot;\n }\n \n \n set routingSelected(value){\n logger.debug(\"[routingSelected] This is a read-only property of the component\");\n }\n \n get routingSelected (){\n var self= this;\n return __valid_routings__(self.routings, self.routingPath);\n }\n \n set routingParams (value){\n logger.debug(\"[routingParams] This is a read-only property of the component\");\n }\n \n get routingParams (){\n var component = this;\n return [{}].concat(component.routingSelected.map(function (routing) {\n return __routing_params__(routing, component.routingPath);\n })).reduce(function (accumulator, colData, index) {\n return Object.assign(accumulator, colData);\n });\n }\n \n createServiceInstance (){\n var component = this;\n var body = component.body;\n var data = this.data;\n var __serviceClass;\n var __classDefinition = component.getClass().__definition;\n var _serviceClassName = (isBrowser && body.getAttribute(\"serviceClass\") !== null) ? (body.getAttribute(\"serviceClass\")) : (null);\n \n return new Promise (function (resolve, reject){\n /* __enable_service_class__ = true by default */\n var __enable_service_class__ = (\n (Object.hasOwnProperty.call(body, \"enableServiceClass\") && body.enableServiceClass) ||\n (!Object.hasOwnProperty.call(body, \"enableServiceClass\"))\n ) ? (true) : (false);\n var _response_to_data_ = (isBrowser && body.getAttribute(\"response-to\") !== null && body.getAttribute(\"response-to\") === \"data\") ? (true) : (false);\n var _response_to_template_ = (isBrowser && body.getAttribute(\"response-to\") !== null && body.getAttribute(\"response-to\") === \"template\") ? (true) : (false);\n \n if (__enable_service_class__ && _serviceClassName !== null) {\n __serviceClass = ClassFactory(_serviceClassName);\n }\n if (!_response_to_data_ && __classDefinition && Object.hasOwnProperty.call(__classDefinition, \"responseTo\")) {\n _response_to_data_ = (__classDefinition.responseTo === \"data\") ? (true) : (false);\n } else if (!_response_to_data_ && Object.hasOwnProperty.call(ClassFactory(\"Component\"), \"responseTo\")) {\n _response_to_data_ = (ClassFactory(\"Component\").responseTo === \"data\") ? (true) : (false);\n }\n if (!_response_to_template_ && __classDefinition && Object.hasOwnProperty.call(__classDefinition, \"responseTo\")) {\n _response_to_template_ = (__classDefinition.responseTo === \"template\") ? (true) : (false);\n } else if (!_response_to_template_ && Object.hasOwnProperty.call(ClassFactory(\"Component\"), \"responseTo\")) {\n _response_to_template_ = (ClassFactory(\"Component\").responseTo === \"template\") ? (true) : (false);\n }\n \n if (typeof __serviceClass !== \"undefined\" &&\n (typeof __enable_service_class__ !== \"undefined\" &&\n __enable_service_class__ === true) &&\n (_response_to_data_ || _response_to_template_)\n ) {\n logger.info(\"Loading service \" + _serviceClassName);\n var serviceInstance = New(__serviceClass, {\n data: data\n });\n serviceLoader(serviceInstance).then(function ({\n request,\n service\n }) {\n var serviceResponse;\n if (typeof service.JSONresponse !== \"undefined\" && service.JSONresponse !== null){\n serviceResponse = service.JSONresponse;\n } else {\n serviceResponse = service.template;\n }\n if (_response_to_data_) {\n if (typeof data === \"object\" && typeof serviceResponse === \"object\") {\n data = Object.assign(data, serviceResponse);\n } else {\n data = serviceResponse;\n }\n component.data = data;\n }\n component.serviceInstance = serviceInstance;\n component.serviceData = data;\n \n if (_response_to_template_) {\n component.template = serviceResponse;\n }\n resolve (serviceResponse);\n }, function (rejectedResponse){\n logger.debug(`Service loading rejected for ${_serviceClassName} in ${component.name}`);\n reject (rejectedResponse);\n } ).catch(function (e) {\n logger.debug(\"Something went wroing while trying to load the service \" + _serviceClassName);\n throw Error (`Error loading ${_serviceClassName} for ${component.name}. Detail: ${e}`);\n });\n } else {\n resolve(null);\n }\n });\n }\n \n _bindroute_ () {\n var _component_ = this;\n if (!_component_._bindroute_.loaded){\n if (isBrowser) {\n \n _component_.hostElements(\"a\").map(function (a) {\n a.oldclick = a.onclick;\n a.onclick = function (e) {\n var _ret_ = true;\n if (!_top.global.get(\"routingPaths\")) {\n _top.global.set(\"routingPaths\", []);\n }\n var routingWay = _top.CONFIG.get(\"routingWay\");\n var routingPath = e.target[routingWay];\n if (_top.global.get(\"routingPaths\").includes(routingPath) &&\n e.target[routingWay] !== document.location[routingWay] &&\n e.target.href !== document.location.href\n ) {\n logger.debug(\"A ROUTING WAS FOUND: \" + routingPath);\n window.history.pushState({\n href: e.target.href\n }, e.target.href, e.target.href);\n ClassFactory(\"Component\").route();\n _ret_ = false;\n } else {\n logger.debug(\"NO ROUTING FOUND FOR: \" + routingPath);\n }\n if (typeof e.target.oldclick !== \"undefined\" && typeof e.target.oldclick === \"function\") {\n e.target.oldclick.call(e.target, e);\n }\n return _ret_;\n };\n return null;\n });\n \n } else {\n // not yet implemented.\n }\n this._bindroute_.loaded = true;\n } else {\n logger.debug(`Routes already bound to popstate events for ${_component_.name}`);\n }\n \n }\n \n done(standardResponse) {\n var _ret_;\n if (typeof standardResponse !== \"undefined\"){\n var {request, component} = standardResponse;\n _ret_ = Promise.resolve({request, component});\n }\n return _ret_;\n }\n \n createControllerInstance (){\n var _Controller;\n if (isBrowser){\n if (typeof this.body === \"undefined\") {\n throw new Error(\"The component has no body\");\n }\n var controllerName = this.body.getAttribute(\"controllerClass\");\n if (!controllerName) {\n controllerName = \"Controller\";\n }\n _Controller = ClassFactory(controllerName);\n if (typeof _Controller !== \"undefined\"){\n this.controller = New(_Controller, {\n component: this\n });\n }\n \n }\n \n return new Promise ( (resolve, reject) => {\n if (isBrowser){\n if (typeof _Controller !== \"undefined\" && typeof this.controller !== \"undefined\") {\n if (typeof this.controller.done === \"function\") {\n try {\n this.controller.done.call(this.controller);\n } catch (e){\n throw Error (e);\n }\n } else {\n logger.debug(`${controllerName} does not have a done() method.`);\n reject(`${controllerName} does not have a done() method.`);\n }\n if (typeof this.controller.createRoutingController === \"function\") {\n this.controller.createRoutingController.call(this.controller);\n } else {\n logger.debug(`${controllerName} does not have a createRoutingController() method.`);\n }\n }\n }\n resolve ({component:this,controller:this.controller});\n });\n }\n \n createEffectInstance (){\n var _component_ = this;\n return new Promise (function (resolve, reject){\n if (isBrowser){\n var effectClassName = _component_.body.getAttribute(\"effectClass\");\n var applyEffectTo = _component_.body.getAttribute(\"apply-effect-to\");\n applyEffectTo = (applyEffectTo !== null) ? (applyEffectTo) : (\"load\");\n if (effectClassName !== null && applyEffectTo === \"observe\") {\n _component_.applyObserveTransitionEffect(effectClassName);\n } else if (effectClassName !== null && applyEffectTo === \"load\") {\n _component_.applyTransitionEffect(effectClassName);\n }\n }\n resolve({component:_component_, effect:_component_.effect});\n });\n }\n \n createViewInstance(){\n var _component_ = this;\n return new Promise (function (resolve, reject){\n var viewName = (isBrowser)?(_component_.body.getAttribute(\"viewClass\")):(null);\n if (viewName !== null){\n var _View = ClassFactory(viewName);\n if (typeof _View !== \"undefined\") {\n _component_.view = New(_View, {\n component: _component_\n }); // Initializes the main view for the component\n if (Object.hasOwnProperty.call(_component_.view, \"done\") && typeof _component_.view.done === \"function\") {\n _component_.view.done.call(_component_.view);\n }\n }\n \n }\n resolve({component:_component_, view:_component_.view});\n \n });\n }\n \n __done__ () {\n var _component_ = this;\n var componentDone = function () {\n if (typeof _component_ === \"undefined\") {\n throw new Error(\"componentDone() has lost its context\");\n }\n if (typeof _component_.body === \"undefined\") {\n throw new Error(\"The component has no body\");\n }\n _component_.createViewInstance();\n _component_.createControllerInstance();\n _component_.createEffectInstance();\n \n logger.debug(`Trying to run component helpers for ${_component_.name}...`);\n try {\n _component_.runComponentHelpers();\n logger.debug(`Component helpers for ${_component_.name} executed.`);\n } catch (e){\n logger.debug(`Component helpers for ${_component_.name} could not be executed.`);\n throw Error(e);\n }\n \n _component_.subcomponents = _component_.__buildSubComponents__();\n \n _component_._bindroute_();\n _component_.body.setAttribute(\"loaded\", true);\n };\n \n return new Promise (function (resolve, reject){\n try {\n Promise.resolve(componentDone.call(_component_));\n } catch (e){\n reject(e);\n }\n });\n \n }\n \n hostElements(tagFilter){\n var _component_ = this;\n var elementList = (_component_.shadowed && (typeof _component_.shadowRoot !== \"undefined\"))?(\n _component_.shadowRoot.subelements(tagFilter)\n ):(\n _component_.body.subelements(tagFilter)\n );\n return elementList;\n }\n \n get subtags(){\n var _component_ = this;\n var tagFilter = _tag_filter_;\n return _component_.hostElements(tagFilter);\n }\n \n get bodyAttributes() {\n var _component_ = this;\n var c = _component_.body;\n return (isBrowser)?([...c.getAttributeNames()].map (a => {return {[a]:c.getAttribute(a)};}).reduce ((accumulator,colData, index) => {return Object.assign(accumulator, colData);} )):({});\n }\n \n get dataAttributes(){\n var _component_ = this;\n var c = _component_.body;\n return (isBrowser)?([{}].concat([...c.getAttributeNames()].filter(n=>n.startsWith(\"data-\")).map (a => {return {[a.split(\"-\")[1]]:c.getAttribute(a)};})).reduce ((accumulator,colData, index) => {return Object.assign(accumulator, colData);} )):({});\n }\n \n __buildSubComponents__ (rebuildObjects = false) {\n var _component_ = this;\n var elementList = _component_.subtags;\n if (!rebuildObjects){\n elementList = elementList.filter(t=>t.getAttribute(\"loaded\") !== \"true\");\n }\n if ((typeof _component_ !== \"undefined\") || _component_.subcomponents.length<1){\n _component_.subcomponents = _buildComponentsFromElements_(elementList, _component_);\n }\n return _component_.subcomponents;\n }\n \n fail(standardResponse) {\n var _ret_;\n if (typeof standardResponse !== \"undefined\"){\n var {error, component} = standardResponse;\n _ret_ = Promise.resolve({error, component});\n }\n return _ret_;\n }\n \n set(name, value) {\n this[name] = value;\n }\n \n get(name) {\n return this[name];\n }\n \n feedComponent() {\n var _component_ = this;\n logger.debug(`[Component][${this.name}][feedComponent] start feeding component...`);\n var _feedComponent_InBrowser = function (_component_) {\n if (typeof _component_.container === \"undefined\" && typeof _component_.body === \"undefined\") {\n logger.warn(\"COMPONENT {{NAME}} has an undefined container and body\".replace(\"{{NAME}}\", _component_.name));\n return;\n }\n var container = (typeof _component_.container === \"undefined\" || _component_.container === null) ? (_component_.body) : (_component_.container);\n var parsedAssignmentText = _component_.parsedAssignmentText;\n _component_.innerHTML = parsedAssignmentText;\n if (_component_.shadowed) {\n logger.debug(\"COMPONENT {{NAME}} is shadowed\".replace(\"{{NAME}}\", _component_.name));\n logger.debug(\"Preparing slots for Shadowed COMPONENT {{NAME}}\".replace(\"{{NAME}}\", _component_.name));\n var tmp_shadowContainer = _DOMCreateElement(\"div\");\n container.subelements(\"[slot]\").map(\n function (c) {\n if (c.parentElement === container) {\n tmp_shadowContainer.appendChild(c);\n }\n });\n logger.debug(\"Creating shadowedContainer for COMPONENT {{NAME}}\".replace(\"{{NAME}}\", _component_.name));\n var shadowContainer = _DOMCreateElement(\"div\");\n shadowContainer.classList.add(\"shadowHost\");\n try {\n _component_.shadowRoot = shadowContainer.attachShadow({\n mode: \"open\"\n });\n } catch (e) {\n try {\n logger.debug(\"Shadowed COMPONENT {{NAME}} is repeated\".replace(\"{{NAME}}\", _component_.name));\n _component_.shadowRoot = shadowContainer.shadowRoot;\n } catch (e) {\n logger.warn(\"Shadowed COMPONENT {{NAME}} is not allowed on this browser\".replace(\"{{NAME}}\", _component_.name));\n }\n }\n if (typeof _component_.shadowRoot !== \"undefined\" && _component_.shadowRoot !== null) {\n if (_component_.reload) {\n logger.debug(\"FORCED RELOADING OF CONTAINER FOR Shadowed COMPONENT {{NAME}}\".replace(\"{{NAME}}\", _component_.name));\n shadowContainer.shadowRoot.innerHTML = _component_.innerHTML;\n } else {\n tmp_shadowContainer.innerHTML = _component_.parseTemplate(tmp_shadowContainer.innerHTML);\n logger.debug(\"ADDING Shadowed COMPONENT {{NAME}} \".replace(\"{{NAME}}\", _component_.name));\n shadowContainer.shadowRoot.innerHTML += _component_.innerHTML;\n }\n logger.debug(\"ADDING Slots to Shadowed COMPONENT {{NAME}} \".replace(\"{{NAME}}\", _component_.name));\n shadowContainer.innerHTML += tmp_shadowContainer.innerHTML;\n logger.debug(\"APPENDING Shadowed COMPONENT {{NAME}} to Container \".replace(\"{{NAME}}\", _component_.name));\n var qs = container.querySelector(\".shadowHost\");\n if (!(typeof qs !== \"undefined\" && qs !== null)) {\n container.appendChild(shadowContainer);\n } else {\n logger.debug(\"Shadowed Container for COMPONENT {{NAME}} is already present in the tree \".replace(\"{{NAME}}\", _component_.name));\n _component_.shadowRoot.innerHTML = shadowContainer.shadowRoot.innerHTML;\n }\n } else {\n logger.warn(\"Shadowed COMPONENT {{NAME}} is bad configured\".replace(\"{{NAME}}\", _component_.name));\n }\n } else {\n if (_component_.reload) {\n logger.debug(\"FORCED RELOADING OF CONTAINER FOR COMPONENT {{NAME}}\".replace(\"{{NAME}}\", _component_.name));\n container.innerHTML = _component_.innerHTML;\n } else if (container && _component_) {\n logger.debug(\"ADDING COMPONENT {{NAME}} \".replace(\"{{NAME}}\", _component_.name));\n container.innerHTML += _component_.innerHTML;\n } else {\n logger.warn(\"COMPONENT {{NAME}} is not added to the DOM\".replace(\"{{NAME}}\", _component_.name));\n }\n }\n \n };\n \n var _feedComponent_InNode = function (_component_) {\n var parsedAssignmentText = _component_.parsedAssignmentText;\n _component_.innerHTML = parsedAssignmentText;\n };\n \n var _ret_;\n if (!is_a(_component_, \"Component\")) {\n logger.warn(\"Trying to feed a non component object\");\n return;\n }\n if (isBrowser) {\n _ret_ = _feedComponent_InBrowser(_component_);\n } else {\n _ret_ = _feedComponent_InNode(_component_);\n }\n return _ret_;\n }\n \n rebuild() {\n var _component = this;\n var _promise = new Promise(function (resolve, reject) {\n if (typeof _component === \"undefined\" || _component === null) {\n reject(\"Component is undefined\");\n }\n if (isQCObjects_Object(_component) && is_a(_component, \"Component\")) {\n switch (true) {\n case (_component.get(\"tplsource\") === \"none\"):\n logger.debug(\"Component \" + _component.name + \" has specified template-source=none, so no template load was done\");\n var standardResponse = {\n request: null,\n component: _component\n };\n _component.__done__().then(function (){\n if (typeof _component.done === \"function\") {\n _component.done.call(_component, standardResponse);\n }\n resolve.call(_promise, standardResponse);\n }, function (){\n reject.call(_promise, standardResponse);\n });\n break;\n case (_component.get(\"tplsource\") === \"inline\"):\n logger.debug(\"Component \" + _component.name + \" has specified template-source=inline, so it is assumed that template is already declared\");\n (async function (_component){\n _component.feedComponent.bind(_component)();\n })(_component);\n var standardResponse = {\n request: null,\n component: _component\n };\n _component.__done__().then(function (){\n if (typeof _component.done === \"function\") {\n _component.done.call(_component, standardResponse);\n }\n resolve.call(_promise, standardResponse);\n }, function (){\n reject.call(_promise, standardResponse);\n });\n break;\n case (_component.get(\"tplsource\") === \"default\" &&\n _component.get(\"templateURI\") !== \"\"):\n _component.set(\"url\", _component.get(\"basePath\") + _component.get(\"templateURI\"));\n componentLoader(_component, false).then(\n function (standardResponse) {\n resolve.call(_promise, standardResponse);\n },\n function (standardResponse) {\n reject.call(_promise, standardResponse);\n });\n break;\n case (_component.get(\"tplsource\") === \"external\" &&\n _component.get(\"templateURI\") !== \"\"):\n _component.set(\"url\", _component.get(\"templateURI\"));\n componentLoader(_component, false).then(\n function (standardResponse) {\n resolve.call(_promise, standardResponse);\n },\n function (standardResponse) {\n reject.call(_promise, standardResponse);\n });\n break;\n case _component.get(\"tplsource\") === \"default\" && _component.get(\"templateURI\", \"\") === \"\":\n logger.debug(`Component ${_component.name} template-source is ${_component.get(\"tplsource\")} and no templateURI is present`);\n reject.call(_promise, `Component ${_component.name} template-source is ${_component.get(\"tplsource\")} and no templateURI is present`);\n break;\n default:\n logger.debug(\"Component \" + _component.name + \" will not be rebuilt because no templateURI is present\");\n reject.call(_promise, {\n request: null,\n component: _component\n });\n break;\n }\n \n }\n });\n return _promise;\n }\n \n Cast(oClass) {\n /* Cast method for components has been deprecated. Don't use this method, it is available only for compatibility purposes */\n let o = _methods_(oClass).map(m => m.name.replace(/bound /g, \"\")).map(m => {\n return {\n [m]: oClass[m].bind(this)\n };\n }).reduce((c, p) => Object.assign(c, p), {});\n return _Cast(this, o);\n }\n \n static route() {\n var componentClass = this; /* is can be class or object*/\n var _route_promise_;\n var isValidInstance = ( isQCObjects_Object(componentClass) && is_a(componentClass,\"Component\") ) ? (true) : (false);\n var __route__ = function (componentList) {\n var _componentNames_ = [];\n var _promises_ = componentList.filter(function (rc) {\n return typeof rc !== \"undefined\";\n }).map(function (rc) {\n if (typeof rc.name !== \"undefined\") {\n _componentNames_.push(rc.name);\n } else {\n throw new Error(__getType__(rc) + \" does not have a name\");\n }\n return new Promise(function (resolve, reject) {\n var _promise_;\n if (typeof rc !== \"undefined\" && !!rc._reroute_) {\n _promise_ = rc._reroute_()\n .then(function () {\n rc.reload = true;\n return rc.rebuild();\n })\n .then(function (_rc_) {\n if (Object.hasOwnProperty.call(rc, \"subcomponents\") &&\n typeof rc.subcomponents !== \"undefined\" &&\n rc.subcomponents.length > 0\n ) {\n logger.debug(\"LOOKING FOR ROUTINGS IN SUBCOMPONENTS FOR: \" + rc.name);\n return __route__.call(rc, rc.subcomponents);\n } else {\n logger.debug(\"No subcomponents to look for routings in: \" + rc.name);\n if (rc.subtags.length>0){\n rc.subcomponents = rc.__buildSubComponents__(true);\n }\n resolve(rc);\n }\n });\n } else if (typeof rc !== \"undefined\") {\n reject(\"Component \" + rc.name + \" is not an instance of Component\");\n }\n return _promise_;\n });\n });\n return Promise.all(_promises_)\n .then(function () {\n logger.debug(\"ROUTING COMPLETED FOR \" + _componentNames_.join(\", \"));\n }).catch(function (err) {\n logger.warn(\"ROUTING FAILED FOR \" + _componentNames_.join(\", \") + \": \" + err);\n });\n };\n if (isValidInstance || !!_top.componentsStack) {\n if (isValidInstance) {\n logger.debug(\"loading routings for instance \" + componentClass.name);\n }\n _route_promise_ = __route__.call(componentClass, (isValidInstance) ? (componentClass.subcomponents) : (_top.componentsStack));\n } else {\n logger.debug(\"An undetermined result expected if load routings. So will not be loaded this time.\");\n throw Error (`There is no valid instance and no components stack available to apply rountings`);\n }\n return _route_promise_;\n }\n \n fullscreen() {\n if (isBrowser) {\n var elem = this.body;\n if (elem.requestFullscreen) {\n elem.requestFullscreen();\n } else if (elem.mozRequestFullScreen) {\n /* Firefox */\n elem.mozRequestFullScreen();\n } else if (elem.webkitRequestFullscreen) {\n /* Chrome, Safari & Opera */\n elem.webkitRequestFullscreen();\n } else if (elem.msRequestFullscreen) {\n /* IE/Edge */\n elem.msRequestFullscreen();\n }\n } else {\n // not yet implemented.\n }\n }\n \n closefullscreen() {\n if (isBrowser) {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n } else {\n // noy yet implemented.\n }\n }\n \n _generateRoutingPaths(componentBody) {\n var component = this;\n return new Promise(function (resolve, reject){\n if (isBrowser) {\n if (__valid_routing_way__(component.validRoutingWays, component.routingWay)) {\n if (typeof componentBody !== \"undefined\") {\n component.innerHTML = componentBody.innerHTML;\n component.routingNodes = componentBody.subelements(\"routing\");\n component.routings = [];\n component.routingNodes.map(function (routingNode, r) {\n var attributeNames = routingNode.getAttributeNames();\n var routing = {};\n attributeNames.map(function (attributeName, a) {\n routing[attributeNames[a]] = routingNode.getAttribute(attributeNames[a]);\n });\n component.routings.push(routing);\n if (!component.routingPaths) {\n component.routingPaths = [];\n }\n if (!component.routingPaths.includes(routing.path)) {\n component.routingPaths.push(routing.path);\n }\n if (!_top.global.get(\"routingPaths\")) {\n _top.global.set(\"routingPaths\", []);\n }\n if (!_top.global.get(\"routingPaths\").includes(routing.path)) {\n _top.global.get(\"routingPaths\").push(routing.path);\n }\n });\n }\n }\n } else {\n // not yet implemented.\n }\n resolve();\n \n });\n }\n \n parseTemplate(template) {\n var _self = this;\n var _parsedAssignmentText;\n var value = template;\n if (Object.hasOwnProperty.call(_self, \"templateHandler\")) {\n var templateHandlerName = _self.templateHandler;\n logger.debug(`[Component][${this.name}][parseTemplate] Attempting to use ${templateHandlerName} ...`);\n var templateHandlerClass = ClassFactory(templateHandlerName);\n var templateInstance = New(templateHandlerClass, {\n component: _self,\n template: value\n });\n templateInstance.component = _self;\n var selfData = _self.data;\n if (Object.hasOwnProperty.call(_self, \"assignRoutingParams\") && _self.assignRoutingParams) {\n try {\n selfData = Object.assign(selfData, _self.routingParams);\n } catch (e) {\n logger.debug(\"[parseTemplate] it was not possible to assign the routing params to the template\");\n }\n }\n _parsedAssignmentText = templateInstance.assign(selfData);\n } else {\n logger.debug(`[Component][${this.name}][parseTemplate] No value for templateHandler. Using raw content...`);\n _parsedAssignmentText = value;\n }\n return _parsedAssignmentText;\n }\n \n _reroute_() {\n /* This method set the selected routing and makes the switch to the templateURI */\n var rc = this;\n return new Promise(function (resolve, reject) {\n if (isBrowser) {\n if (__valid_routing_way__(rc.validRoutingWays, rc.routingWay)) {\n rc.routingPath = document.location[rc.routingWay];\n rc.routingSelected.map(function (routing, r) {\n var componentURI = ComponentURI({\n \"COMPONENTS_BASE_PATH\": _top.CONFIG.get(\"componentsBasePath\"),\n \"COMPONENT_NAME\": routing.name.toString(),\n \"TPLEXTENSION\": (Object.hasOwnProperty.call(routing, \"tplextension\")) ? (routing.tplextension) : (rc.tplextension),\n \"TPL_SOURCE\": \"default\" /* here is always default in order to get the right uri */\n });\n rc.templateURI = componentURI;\n });\n if (rc.routingSelected.length > 0) {\n rc.template = \"\";\n rc.body.innerHTML = \"\";\n }\n }\n }\n resolve(rc);\n \n });\n }\n \n lazyLoadImages() {\n if (isBrowser) {\n var component = this;\n var _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n var _imgLazyLoaded = [..._componentRoot.subelements(\"img[lazy-src]\")];\n var _lazyLoadImages = function (image) {\n image.setAttribute(\"src\", image.getAttribute(\"lazy-src\"));\n image.onload = () => {\n image.removeAttribute(\"lazy-src\");\n };\n };\n if (\"IntersectionObserver\" in window) {\n var observer = new IntersectionObserver((items, observer) => {\n items.forEach((item) => {\n if (item.isIntersecting) {\n _lazyLoadImages(item.target);\n observer.unobserve(item.target);\n }\n });\n });\n _imgLazyLoaded.map(function (img) {\n return observer.observe(img);\n });\n } else {\n _imgLazyLoaded.map(_lazyLoadImages);\n }\n \n } else {\n // not yet implemented\n }\n return null;\n }\n \n applyTransitionEffect(effectClassName) {\n var _Effect = ClassFactory(effectClassName);\n if (typeof _Effect === \"undefined\" ){\n throw Error (`${effectClassName} not found.`);\n }\n if (typeof _Effect !== \"undefined\" && is_a(_Effect, \"TransitionEffect\")) {\n this.effect = New(_Effect, {\n component: this\n });\n this.effect.apply(this.effect.defaultParams);\n } else {\n logger.debug(`${effectClassName} is ${__getType__(_Effect)} but is not a TransitionEffect`);\n }\n }\n \n applyObserveTransitionEffect(effectClassName) {\n if (isBrowser) {\n var component = this;\n var _componentRoot = (component.shadowed) ? (component.shadowRoot.host) : (component.body);\n var _applyEffect_ = function (element) {\n component.applyTransitionEffect(effectClassName);\n };\n if (\"IntersectionObserver\" in window) {\n var observer = new IntersectionObserver((items, observer) => {\n items.forEach((item) => {\n if (item.isIntersecting) {\n _applyEffect_(item.target);\n observer.unobserve(item.target);\n }\n });\n });\n observer.observe(_componentRoot);\n } else {\n _applyEffect_(_componentRoot);\n }\n } else {\n // not yet implemented\n }\n return null;\n }\n \n scrollIntoHash() {\n if (isBrowser) {\n var component = this;\n if (document.location.hash !== \"\") {\n var _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n _componentRoot.subelements(document.location.hash).map(\n function (element) {\n if (typeof element.scrollIntoView === \"function\") {\n element.scrollIntoView(\n _top.CONFIG.get(\"scrollIntoHash\", {\n behavior: \"auto\",\n block: \"top\",\n inline: \"top\"\n })\n );\n }\n }\n );\n }\n } else {\n // not yet implemented\n }\n }\n \n i18n_translate() {\n if (isBrowser) {\n if (_top.CONFIG.get(\"use_i18n\")) {\n var component = this;\n var _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n var lang1 = _top.CONFIG.get(\"lang\", \"en\");\n var lang2 = navigator.language.slice(0, 2);\n var i18n = _top.global.get(\"i18n\");\n if ((lang1 !== lang2) && (typeof i18n === \"object\" && Object.hasOwnProperty.call(i18n, \"messages\"))) {\n var callback_i18n = function () {\n var component = this;\n return new Promise(function (resolve, reject) {\n var messages = i18n.messages.filter(function (message) {\n return Object.hasOwnProperty.call(message, lang1) && Object.hasOwnProperty.call(message, lang2);\n });\n _componentRoot.subelements(\"ul,li,h1,h2,h3,a,b,p,input,textarea,summary,details,option,component\")\n .map(function (element) {\n messages.map(function (message) {\n var _innerHTML = element.innerHTML;\n _innerHTML = _innerHTML.replace(new RegExp(`${message[lang1]}`, \"g\"), message[lang2]);\n element.innerHTML = _innerHTML;\n return null;\n });\n return element;\n });\n resolve();\n });\n };\n callback_i18n.call(component).then(function () {\n logger.debug(\"i18n loaded for component: \" + component.name);\n });\n \n }\n }\n } else {\n // not yet implemented\n }\n }\n \n addComponentHelper(componentHelper) {\n var component = this;\n component._componentHelpers.push(componentHelper);\n }\n \n runComponentHelpers() {\n if (isBrowser) {\n var component = this;\n var __component_helpers__ = [];\n /*\n * BEGIN use i18n translation\n */\n __component_helpers__.push(component.i18n_translate.bind(component));\n /*\n * END use i18n translation\n */\n \n /*\n * BEGIN component scrollIntoHash\n */\n __component_helpers__.push(component.scrollIntoHash.bind(component));\n /*\n * END component scrollIntoHash\n */\n \n /*\n * BEGIN component images lazy-load\n */\n \n __component_helpers__.push(component.lazyLoadImages.bind(component));\n \n /*\n * END component images lazy-load\n */\n \n __component_helpers__ = __component_helpers__.concat(component._componentHelpers);\n \n __component_helpers__.map(\n function (_component_helper_) {\n logger.debug(`Executing ${_component_helper_.name} as component helper for ${component.name}...`);\n _component_helper_();\n }\n );\n \n } else {\n // not yet implemented\n }\n \n }\n \n }\n \n ]);\n \n (_methods_)(ClassFactory(\"Component\")).map(function (__c__) {\n (_protected_code_)(__c__);\n });\n \n if (isBrowser){\n window.addEventListener(\"popstate\",function (popStateEvent){\n popStateEvent.stopImmediatePropagation();\n popStateEvent.stopPropagation();\n ClassFactory(\"Component\").route();\n });\n }\n \n Package(\"com.qcobjects.controllers\", [\n class Controller extends ClassFactory(\"InheritClass\") {\n component = null;\n dependencies = [];\n constructor ({\n component,\n dependencies\n }){\n super ({component, dependencies});\n this.component = component;\n this.dependencies = dependencies;\n if (typeof this.component === \"undefined\" || this.component === \"null\"){\n throw Error (`${__getType__(this)} must be called with a component`);\n }\n }\n \n routingSelectedAttr(attrName) {\n return this.component.routingSelected.map(function (r) {\n return r[attrName];\n }).filter(function (v) {\n return v;\n }).pop();\n }\n \n isTouchable() {\n return (\"ontouchstart\" in window) ||\n (navigator.MaxTouchPoints > 0) ||\n (navigator.msMaxTouchPoints > 0);\n }\n \n onpress(subelementSelector, handler) {\n try {\n if (this.isTouchable()) {\n this.component.body.subelements(subelementSelector)[0].addEventListener(\"touchstart\", handler, {\n passive: true\n });\n } else {\n this.component.body.subelements(subelementSelector)[0].addEventListener(\"click\", handler, {\n passive: true\n });\n }\n } catch (e) {\n logger.debug(\"No button to assign press event\");\n }\n }\n \n createRoutingController() {\n var controller = this;\n var component = controller.component;\n var controllerName = controller.routingSelectedAttr(\"controllerclass\");\n if (typeof controllerName !== \"undefined\") {\n var _Controller = ClassFactory(controllerName);\n if (typeof _Controller !== \"undefined\") {\n component.routingController = New(_Controller, {\n component: component\n }); // Initializes the main controller for the component\n if (Object.hasOwnProperty.call(component.routingController, \"done\") && typeof component.routingController.done === \"function\") {\n component.routingController.done.call(component.routingController);\n }\n }\n }\n }\n \n done(){} \n }\n ]);\n \n Package(\"com.qcobjects.views\",[\n class View extends ClassFactory(\"InheritClass\") {\n constructor ({component = undefined, dependencies = []}){\n super(...arguments);\n if (typeof this.component === \"undefined\" || this.component === \"null\"){\n throw Error (`${__getType__(this)} must be called with a component`);\n }\n \n }\n }\n ]);\n \n Package(\"com.qcobjects.api\", [\n class Service extends ClassFactory(\"InheritClass\") {\n kind= \"rest\";\n /* it can be rest, mockup, local */\n domain= _domain_;\n basePath= _basePath_;\n url= \"\";\n method= \"GET\";\n data= {};\n reload= false;\n cached= false;\n \n constructor () {\n super(...arguments);\n }\n \n set(name, value) {\n this[name] = value;\n }\n \n get(name) {\n return this[name];\n }\n \n }\n \n ]);\n \n Package(\"com.qcobjects.api.services\", [\n class JSONService extends ClassFactory(\"Service\") {\n method= \"GET\";\n cached= false;\n headers= {\n \"Content-Type\": \"application/json\",\n \"charset\": \"utf-8\"\n };\n JSONresponse= null;\n done(result) {\n logger.debug(\"***** RECEIVED RESPONSE:\");\n logger.debug(result.service.template);\n this.JSONresponse = JSON.parse(result.service.template);\n }\n \n constructor (){\n super(...arguments);\n }\n \n }\n ]);\n \n Package(\"com.qcobjects.api.config\", [\n class ConfigService extends ClassFactory(\"JSONService\"){\n method= \"GET\";\n cached= false;\n configFileName= \"config.json\";\n headers= {\n \"Content-Type\": \"application/json\",\n \"charset\": \"utf-8\"\n };\n JSONresponse= null;\n done(result) {\n logger.debug(\"***** CONFIG LOADED:\");\n logger.debug(result.service.template);\n this.JSONresponse = JSON.parse(result.service.template);\n if (Object.hasOwnProperty.call(this.JSONresponse, \"__encoded__\")) {\n this.JSONresponse = JSON.parse(ClassFactory(\"_Crypt\").decrypt(this.JSONresponse.__encoded__, _secretKey));\n }\n for (var k in this.JSONresponse) {\n _top.CONFIG.set(k, this.JSONresponse[k]);\n }\n this.configLoaded.call(this);\n }\n fail(result) {\n this.configLoaded.call(this);\n }\n \n constructor (){\n super(...arguments);\n this.set(\"url\", this.get(\"basePath\") + this.get(\"configFileName\"));\n }\n }\n ]);\n \n Package(\"com.qcobjects.valueObjects\", [\n class VO extends ClassFactory(\"InheritClass\") {\n constructor (){\n super(...arguments);\n }\n }\n ]);\n \n /**\n * Returns a standarized uri for a component\n * @example\n * templateURI = ComponentURI({'COMPONENTS_BASE_PATH':'','COMPONENT_NAME':'','TPLEXTENSION':'','TPL_SOURCE':''})\n * @author: Jean Machuca \n * @param params an object with the params to build the uri path\n */\n var ComponentURI = function (params) {\n var templateURI = \"\";\n if (params[\"TPL_SOURCE\"] === \"default\") {\n templateURI = \"{{COMPONENTS_BASE_PATH}}{{COMPONENT_NAME}}.{{TPLEXTENSION}}\";\n for (var k in params) {\n var param = params[k];\n templateURI = templateURI.replace(\"{{\" + k + \"}}\", params[k]);\n }\n }\n return templateURI;\n };\n \n /**\n * Loads a simple component from a template\n *\n * @author: Jean Machuca \n * @param component a Component object\n */\n var componentLoader = function (component, _async) {\n var __promise__;\n var _componentLoaderInBrowser = function (component, _async) {\n __promise__ = new Promise(function (resolve, reject) {\n var _promise = component.__promise__;\n var container = (Object.hasOwnProperty.call(component, \"container\") && typeof component.container !== \"undefined\" && component.container !== null) ? (component.container) : (component.body);\n if (container !== null) {\n var _feedComponent_ = function (component) {\n component.feedComponent();\n var standardResponse = {\n \"request\": xhr,\n \"component\": component\n };\n resolve.call(_promise, standardResponse);\n };\n logger.debug(\"LOADING COMPONENT DATA {{DATA}} FROM {{URL}}\".replace(\"{{DATA}}\", _DataStringify(component.data)).replace(\"{{URL}}\", component.url));\n \n var _componentLoaded = function () {\n var successStatus = (is_file) ? (0) : (200);\n if (xhr.status === successStatus) {\n var response = xhr.responseText;\n logger.debug(\"Data received {{DATA}}\".replace(\"{{DATA}}\", _DataStringify(response)));\n logger.debug(\"CREATING COMPONENT {{NAME}}\".replace(\"{{NAME}}\", component.name));\n component.template = response;\n if (component.cached && (typeof cache !== \"undefined\")) {\n cache.save(component.name, component.template);\n }\n _feedComponent_.call(this, component);\n } else {\n var standardResponse = {\n \"request\": xhr,\n \"component\": component\n };\n reject.call(_promise, standardResponse);\n \n }\n };\n if (typeof component.template === \"string\" && component.template !== \"\") {\n // component already has a template it does not need to be reloaded\n _feedComponent_.call(this, component);\n } else {\n var is_file = (component.url.startsWith(\"file:\")) ? (true) : (false);\n var xhr = new XMLHttpRequest();\n if (!is_file) {\n try {\n logger.debug(\"Calling the url of component in async mode.\");\n xhr.open(component.method, component.url, true);\n } catch (e) {\n logger.debug(\"Last try has failed... The component cannot be loaded.\");\n }\n } else {\n if (\"fetch\" in _top) {\n logger.debug(\"I can use fetch...\");\n logger.debug(\"It is a file to be loaded, so I will try to use fetch\");\n var _p = fetch(component.url).then(response => {\n logger.debug(\"I got a response from fetch, so I'll feed the component\");\n response.text().then(text => {\n component.template = text;\n _feedComponent_.call(this, component);\n });\n });\n }\n }\n if (!is_phonegap && !is_file) {\n xhr.setRequestHeader(\"Content-Type\", \"text/html\");\n }\n if (!is_file) {\n xhr.onload = _componentLoaded;\n }\n var _directLoad = function (is_file) {\n is_file = (typeof is_file === \"undefined\" || !is_file) ? (false) : (true);\n logger.debug(\"SENDING THE NORMAL REQUEST \");\n if (is_file) {\n if (!(\"fetch\" in _top)) {\n logger.debug(\"I have to try to load the file using xhr... \");\n xhr.send(null);\n if (xhr.status === XMLHttpRequest.DONE) {\n _componentLoaded.call(this);\n }\n }\n } else {\n logger.debug(\"Trying to send the data to the component... \");\n xhr.send(_DataStringify(component.data));\n }\n };\n \n if (component.cached && (!is_file)) {\n logger.debug(\"USING CACHE FOR COMPONENT: \" + component.name);\n var cache = new ComplexStorageCache({\n index: component.cacheIndex,\n load(cacheController) {\n _directLoad.call(this, is_file);\n },\n alternate(cacheController) {\n if (component.method === \"GET\") {\n component.template = cacheController.cache.getCached(component.cacheIndex);\n _feedComponent_.call(this, component);\n } else {\n _directLoad.call(this, is_file);\n }\n return;\n }\n });\n global.lastCache = cache;\n } else {\n logger.debug(\"NOT USING CACHE FOR COMPONENT: \" + component.name);\n _directLoad.call(this, is_file);\n }\n \n }\n } else {\n logger.debug(\"CONTAINER DOESNT EXIST\");\n }\n });\n __promise__.then(function (standardResponse) {\n return component.__done__().then (function (){\n var _ret_;\n if (typeof component.done === \"function\") {\n _ret_ = component.done.call(component, standardResponse);\n }\n return Promise.resolve(_ret_);\n });\n }, function (standardResponse) {\n var _ret_;\n if (typeof component.fail === \"function\") {\n _ret_ = component.fail.call(component, standardResponse);\n }\n return Promise.reject(_ret_);\n }).catch(function (e) {\n logger.debug(\"Something wrong loading the component\");\n });\n return __promise__;\n };\n var _componentLoaderInNode = function (component, _async) {\n __promise__ = new Promise(function (resolve, reject) {\n var _promise = __promise__;\n var _feedComponent_ = function (component) {\n component.feedComponent();\n var standardResponse = {\n \"request\": null,\n \"component\": component\n };\n resolve.call(_promise, standardResponse);\n };\n logger.debug(\"LOADING COMPONENT DATA {{DATA}} FROM {{URL}}\".replace(\"{{DATA}}\", _DataStringify(component.data)).replace(\"{{URL}}\", component.url));\n \n var _componentLoaded = function (err, responseText) {\n if (!err) {\n var response = responseText.toString();\n logger.debug(\"Data received {{DATA}}\".replace(\"{{DATA}}\", _DataStringify(response)));\n logger.debug(\"CREATING COMPONENT {{NAME}}\".replace(\"{{NAME}}\", component.name));\n component.template = response;\n if (component.cached && (typeof cache !== \"undefined\")) {\n cache.save(component.name, component.template);\n }\n _feedComponent_.call(this, component);\n } else {\n var standardResponse = {\n \"request\": null,\n \"component\": component\n };\n reject.call(_promise, standardResponse);\n }\n };\n if (typeof component.template === \"string\" && component.template !== \"\") {\n // component already has a template it does not need to be reloaded\n _feedComponent_.call(this, component);\n } else {\n logger.debug(\"Loading the component as a local file in server...\");\n var _directLoad = function (is_file) {\n const fs = _require_(\"fs\");\n logger.debug(\"SENDING THE NORMAL REQUEST \");\n fs.readFile(component.url, _componentLoaded);\n };\n \n if (component.cached) {\n logger.debug(\"USING CACHE FOR COMPONENT: \" + component.name);\n var cache = new ComplexStorageCache({\n index: component.cacheIndex,\n load(cacheController) {\n _directLoad.call(this);\n },\n alternate(cacheController) {\n if (component.method === \"GET\") {\n component.template = cacheController.cache.getCached(component.cacheIndex);\n _feedComponent_.call(this, component);\n } else {\n _directLoad.call(this);\n }\n return;\n }\n });\n global.lastCache = cache;\n } else {\n logger.debug(\"NOT USING CACHE FOR COMPONENT: \" + component.name);\n _directLoad.call(this);\n }\n \n }\n });\n __promise__.then(function (standardResponse) {\n return component.__done__().then (function (){\n var _ret_;\n if (typeof component.done === \"function\") {\n _ret_ = component.done.call(component, standardResponse);\n }\n return Promise.resolve(_ret_);\n });\n }, function (standardResponse) {\n var _ret_;\n if (typeof component.fail === \"function\") {\n _ret_ = component.fail.call(component, standardResponse);\n }\n return Promise.reject(_ret_);\n }).catch(function (e) {\n logger.debug(\"Something wrong loading the component\");\n });\n return __promise__;\n };\n \n var _ret_;\n if (isBrowser) {\n if (typeof _async !== \"undefined\" && _async) {\n _ret_ = asyncLoad(_componentLoaderInBrowser, arguments);\n } else {\n _ret_ = _componentLoaderInBrowser(component, _async);\n }\n } else {\n _ret_ = _componentLoaderInNode(component, _async);\n }\n return _ret_;\n };\n \n /**\n * Loads a simple component from a template\n *\n * @author: Jean Machuca \n * @param service a Service object\n */\n var serviceLoader = function (service, _async) {\n var _serviceLoaderInBrowser = function (service, _async) {\n var _promise = new Promise(\n function (resolve, reject) {\n \n logger.debug(\"LOADING SERVICE DATA {{DATA}} FROM {{URL}}\".replace(\"{{DATA}}\", _DataStringify(service.data)).replace(\"{{URL}}\", service.url));\n var xhr = new XMLHttpRequest();\n xhr.withCredentials = service.withCredentials;\n var xhrasync = true; // always async because xhr sync is deprecated\n xhr.open(service.method, service.url, xhrasync);\n for (var header in service.headers) {\n try {\n if (typeof service.headers[header] !== \"function\") {\n xhr.setRequestHeader(header, service.headers[header]);\n }\n } catch (e) {\n logger.debug(\"Something went wrong when assign the header \" + header);\n }\n }\n xhr.onload = function () {\n if (xhr.status === 200) {\n var response = xhr.responseText;\n logger.debug(\"Data received {{DATA}}\".replace(\"{{DATA}}\", _DataStringify(response)));\n logger.debug(\"CREATING SERVICE {{NAME}}\".replace(\"{{NAME}}\", service.name));\n service.template = response;\n if (service.cached && (typeof cache !== \"undefined\")) {\n cache.save(service.name, service.template);\n }\n if (typeof service.done === \"function\") {\n var standardResponse = {\n \"request\": xhr,\n \"service\": service\n };\n service.done.call(service, standardResponse);\n resolve.call(_promise, standardResponse);\n }\n } else {\n if (typeof service.fail === \"function\") {\n var standardResponse = {\n \"request\": xhr,\n \"service\": service\n };\n service.fail.call(service, standardResponse);\n reject.call(_promise, standardResponse);\n }\n }\n };\n \n var _directLoad = function () {\n logger.debug(\"SENDING THE NORMAL REQUEST \");\n try {\n xhr.send(_DataStringify(service.data));\n } catch (e) {\n logger.debug(\"SOMETHING WRONG WITH REQUEST \");\n reject.call(_promise, {\n request: xhr,\n service: service\n });\n }\n };\n \n if (service.cached) {\n var cache = new ComplexStorageCache({\n index: service.data,\n load(cacheController) {\n _directLoad.call(this);\n },\n alternate(cacheController) {\n if (service.method === \"GET\") {\n service.template = cacheController.cache.getCached(service.name);\n if (typeof service.done === \"function\") {\n var standardResponse = {\n \"request\": xhr,\n \"service\": service\n };\n service.done.call(service, standardResponse);\n resolve.call(_promise, standardResponse);\n }\n } else {\n _directLoad.call(this);\n }\n return;\n }\n });\n global.lastCache = cache;\n } else {\n _directLoad.call(this);\n }\n \n return xhr;\n }\n );\n return _promise;\n };\n \n var _serviceLoaderInNode = function (service, _async) {\n var _promise = new Promise(\n function (resolve, reject) {\n if (typeof URL === \"undefined\") {\n global.URL = _require_(\"url\").URL;\n let URL = global.URL;\n }\n var serviceURL = new URL(service.url);\n var req;\n service.useHTTP2 = Object.hasOwnProperty.call(service, \"useHTTP2\") && service.useHTTP2;\n \n \n var captureEvents = function (req) {\n logger.debug(\"LOADING SERVICE DATA (non-browser) {{DATA}} FROM {{URL}}\".replace(\"{{DATA}}\", _DataStringify(service.data)).replace(\"{{URL}}\", service.url));\n var dataXML;\n var standardResponse = {\n \"http2Client\": client,\n \"request\": req,\n \"service\": service,\n \"responseHeaders\": null\n };\n \n if (typeof service.data === \"object\" && service.data !== null) {\n if (service.useHTTP2) {\n try {\n logger.debug(\"Sending data...\");\n let buffer = new Buffer(_DataStringify(service.data));\n req.write(buffer);\n } catch (e) {\n logger.debug(\"It was not possible to send any data\");\n }\n }\n }\n \n dataXML = \"\";\n req.on(\"response\", (responseHeaders, flags) => {\n logger.debug(\"receiving response...\");\n standardResponse.responseHeaders = responseHeaders;\n /*\n for (const name in responseHeaders) {\n logger.debug(`${name}: ${responseHeaders[name]}`);\n }\n */\n dataXML = \"\";\n });\n req.on(\"data\", (chunk) => {\n logger.debug(\"receiving data...\");\n // do something with the data\n dataXML += \"\" + chunk.toString();\n service.template = dataXML;\n });\n if (service.useHTTP2) {\n req.resume();\n }\n req.on(\"end\", () => {\n logger.debug(\"ending call...\");\n service.template = dataXML;\n if (Object.hasOwnProperty.call(service, \"useHTTP2\") && service.useHTTP2) {\n client.destroy();\n } else {\n req.destroy();\n }\n service.done.call(service, standardResponse);\n resolve.call(_promise, standardResponse);\n });\n if (service.useHTTP2) {\n req.end();\n }\n \n };\n \n try {\n var requestOptions;\n if (service.useHTTP2) {\n logger.debug(\"using http2\");\n var http2 = _require_(\"http2\");\n var client = http2.connect(serviceURL.origin);\n requestOptions = Object.assign({\n \":method\": service.method,\n \":path\": serviceURL.pathname\n }, service.options);\n requestOptions = Object.assign(requestOptions, service.headers);\n req = client.request(requestOptions);\n req.setEncoding(\"utf8\");\n captureEvents(req);\n } else {\n if (serviceURL.protocol === \"http:\") {\n var http = _require_(\"http\");\n var request = http.request;\n requestOptions = Object.assign({\n \"url\": service.url,\n headers: service.headers\n }, service.options);\n var req = request(service.url);\n captureEvents(req);\n } else if (serviceURL.protocol === \"https:\") {\n var https = _require_(\"https\");\n requestOptions = Object.assign({\n hostname: serviceURL.hostname,\n port: serviceURL.port,\n path: serviceURL.pathname,\n method: service.method,\n headers: service.headers\n }, service.options);\n var _req_ = https.request(requestOptions, function (req) {\n captureEvents(req);\n });\n _req_.end();\n } else {\n var e = \"Protocol not supported: \" + serviceURL.protocol;\n logger.debug(e);\n throw new Error(e);\n }\n }\n \n \n } catch (e) {\n logger.debug(e);\n service.fail.call(service, e);\n reject.call(_promise, e);\n \n }\n }).catch(function (e) {\n console.log(e);\n logger.debug(\"Something happened when trying to call the service: \" + service.name);\n service.fail.call(service, e);\n });\n return _promise;\n \n };\n \n var _serviceLoaderMockup = function (service, _async) {\n var _promise = new Promise(\n function (resolve, reject) {\n logger.debug(`Calling mockup service ${service.name} ...`);\n var standardResponse = {\n \"request\": null,\n \"service\": service,\n \"responseHeaders\": service.responseHeaders\n };\n if (typeof service.mockup === \"function\") {\n service.mockup.call(service, standardResponse);\n } else {\n service.done.call(service, standardResponse);\n }\n resolve.call(_promise, standardResponse);\n });\n return _promise;\n };\n var _serviceLoaderLocal = function (service, _async) {\n var _promise = new Promise(\n function (resolve, reject) {\n logger.debug(`Calling local service ${service.name} ...`);\n var standardResponse = {\n \"request\": null,\n \"service\": service,\n \"responseHeaders\": service.responseHeaders\n };\n if (typeof service.local === \"function\") {\n service.local.call(service, standardResponse);\n } else {\n service.done.call(service, standardResponse);\n }\n resolve.call(_promise, standardResponse);\n });\n return _promise;\n };\n \n var _ret_;\n switch (service.kind) {\n case \"rest\":\n if (isBrowser) {\n if (typeof _async !== \"undefined\" && _async) {\n _ret_ = asyncLoad(_serviceLoaderInBrowser, arguments);\n } else {\n _ret_ = _serviceLoaderInBrowser(service, _async);\n }\n } else {\n _ret_ = _serviceLoaderInNode(service, _async);\n }\n break;\n case \"mockup\":\n _ret_ = _serviceLoaderMockup(service, _async);\n break;\n case \"local\":\n _ret_ = _serviceLoaderLocal(service, _async);\n break;\n default:\n logger.debug(`The value of the kind property of the service ${service.name} is not valid`);\n break;\n }\n return _ret_;\n };\n Export(serviceLoader);\n Export(componentLoader);\n Export(ComponentURI);\n Export(ObjectName);\n Export(_DataStringify);\n Export(isQCObjects_Class);\n Export(isQCObjects_Object);\n Export(NamespaceRef);\n \n \n if (isBrowser) {\n \n Element.prototype.buildComponents = function (rebuildObjects = false) {\n var tagFilter = _tag_filter_;\n var d = this;\n var elements = d.subelements(tagFilter);\n return _buildComponentsFromElements_(elements, null);\n };\n \n HTMLDocument.prototype.buildComponents = Element.prototype.buildComponents;\n HTMLElement.prototype.buildComponents = Element.prototype.buildComponents;\n var _ComponentWidget_ = class extends HTMLElement {\n constructor() {\n super(...arguments);\n const componentWidget = this;\n const componentName = componentWidget.nodeName.toLowerCase();\n const componentBody = _DOMCreateElement(\"quick-component\");\n const __enabled__atributes__ = componentWidget.getAttributeNames();\n componentBody.setAttribute(\"name\", componentName);\n \n if (!componentWidget.hasAttribute(\"shadowed\")) {\n componentBody.setAttribute(\"shadowed\", \"true\");\n }\n __enabled__atributes__.map(function (attributeName) {\n if (componentWidget.hasAttribute(attributeName)) {\n componentBody.setAttribute(attributeName, componentWidget.getAttribute(attributeName));\n componentWidget.removeAttribute(attributeName);\n }\n });\n var data_attributenames = componentWidget.getAttributeNames().filter(function (a) {\n return a.startsWith(\"data-\");\n }).map(function (a) {\n return a.split(\"-\")[1];\n });\n data_attributenames.map(function (_attribute_name_) {\n componentBody.setAttribute(\"data-\" + _attribute_name_, componentWidget.getAttribute(\"data-\" + _attribute_name_));\n componentWidget.removeAttribute(\"data-\" + _attribute_name_);\n });\n [...componentWidget.children].map(function (element) {\n componentBody.appendChild(element.cloneNode(true));\n element.remove();\n });\n \n componentWidget.append(componentBody);\n }\n };\n Export(_ComponentWidget_);\n var RegisterWidget = function (widgetName) {\n customElements.define(widgetName, class extends _ComponentWidget_ {});\n };\n var RegisterWidgets = function () {\n var widgetList = [...arguments];\n widgetList.filter(function (widgetName) {\n return typeof widgetName === \"string\";\n }).map(function (widgetName) {\n RegisterWidget(widgetName);\n });\n };\n (_protected_code_)(RegisterWidget);\n (_protected_code_)(RegisterWidgets);\n Export(RegisterWidget);\n Export(RegisterWidgets);\n \n } else {\n // not yet implemented.\n }\n \n if (!isBrowser) {\n \n Package(\"com.qcobjects.api\", [\n class BackendMicroservice extends ClassFactory(\"InheritClass\") {\n \n constructor ({\n domain= _domain_,\n basePath= _basePath_,\n body = null,\n stream= null,\n request= null\n }){\n super(...arguments);\n logger.debug(\"Initializing BackendMicroservice...\");\n let microservice = this;\n if (typeof this.body === \"undefined\") {\n this.body = null;\n }\n if (typeof body !== \"undefined\"){\n this.body = body;\n }\n this.cors();\n microservice.stream = stream;\n stream.on(\"data\", (data) => {\n // data from POST, GET\n var requestMethod = request.method.toLowerCase();\n var supportedMethods = {\n \"post\": microservice.post,\n };\n if (Object.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice, data);\n }\n });\n \n // data from POST, GET\n var requestMethod = request.method.toLowerCase();\n var supportedMethods = {\n \"get\": microservice.get,\n \"head\": microservice.head,\n \"put\": microservice.put,\n \"delete\": microservice.delete,\n \"connect\": microservice.connect,\n \"options\": microservice.options,\n \"trace\": microservice.trace,\n \"patch\": microservice.patch\n };\n if (Object.hasOwnProperty.call(supportedMethods, requestMethod)) {\n supportedMethods[requestMethod].call(microservice);\n }\n \n \n }\n \n cors() {\n if (this.route.cors) {\n logger.debug(\"Validating CORS...\");\n let {\n allow_origins,\n allow_credentials,\n allow_methods,\n allow_headers\n } = this.route.cors;\n var microservice = this;\n if (typeof microservice.headers !== \"object\") {\n microservice.headers = {};\n }\n if (typeof microservice.route.responseHeaders !== \"object\") {\n microservice.route.responseHeaders = {};\n }\n if (typeof allow_origins !== \"undefined\") {\n logger.debug(\"CORS: allow_origins available. Validating origins...\");\n // an example of allow_origins is ['https://example.com','http://www.example.com']\n if (allow_origins === \"*\" || (typeof microservice.request.headers.origin === \"undefined\") || [...allow_origins].indexOf(microservice.request.headers.origin) !== -1) {\n // for compatibility with all browsers allways return a wildcard when the origin is allowed\n logger.debug(\"CORS: Adding header Access-Control-Allow-Origin=*\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Origin\"] = \"*\";\n } else {\n logger.debug(\"CORS: Origin is not allowed: \" + microservice.request.headers.origin);\n logger.debug(\"CORS: Forcing to finish the response...\");\n this.body = {};\n try {\n this.done();\n } catch (e) {\n logger.debug(`It was not possible to finish the call to the microservice: ${e}`);\n }\n }\n } else {\n logger.debug(\"CORS: no allow_origins available. Allowing all origins...\");\n logger.debug(\"CORS: Adding header Access-Control-Allow-Origin=*\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Origin\"] = \"*\";\n }\n if (typeof allow_credentials !== \"undefined\") {\n logger.debug(`CORS: allow_credentials present. Allowing ${allow_credentials}...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Credentials\"] = allow_credentials.toString();\n } else {\n logger.debug(\"CORS: No allow_credentials present. Allowing all credentials.\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Credentials\"] = \"true\";\n }\n if (typeof allow_methods !== \"undefined\") {\n logger.debug(`CORS: allow_methods present. Allowing ${allow_methods}...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Methods\"] = [...allow_methods].join(\",\");\n } else {\n logger.debug(\"CORS: No allow_methods present. Allowing only GET, OPTIONS and POST\");\n microservice.route.responseHeaders[\"Access-Control-Allow-Methods\"] = \"GET, OPTIONS, POST\";\n }\n if (typeof allow_headers !== \"undefined\") {\n logger.debug(`CORS: allow_headers present. Allowing ${allow_headers}...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Headers\"] = [...allow_headers].join(\",\");\n } else {\n logger.debug(`CORS: No allow_headers present. Allowing all headers...`);\n microservice.route.responseHeaders[\"Access-Control-Allow-Headers\"] = \"*\";\n }\n } else {\n logger.debug(\"No CORS validation available. You can specify cors in CONFIG.backend.routes[].cors\");\n }\n }\n \n \n head(formData) {\n this.done();\n }\n \n get(formData) {\n logger.debug(`[BackendMicroservice.get] Data received: ${_DataStringify(formData)}`);\n this.done();\n }\n \n post(formData) {\n this.done();\n }\n \n put(formData) {\n this.done();\n }\n \n delete(formData) {\n this.done();\n }\n \n connect(formData) {\n this.done();\n }\n \n options(formData) {\n this.done();\n }\n \n trace(formData) {\n this.done();\n }\n \n patch(formData) {\n this.done();\n }\n \n finishWithBody(stream) {\n try {\n logger.debug(\"[BackendMicroservice.finishWithBody] Ending the stream...\");\n logger.debug(`[BackendMicroservice.finishWithBody] type of body is: ${typeof this.body}`);\n if (typeof this.body !== \"string\"){\n this.body = _DataStringify(this.body);\n }\n logger.debug(`[BackendMicroservice.finishWithBody] \\n body: ${this.body} `);\n stream.write(this.body);\n stream.end();\n logger.debug(`[BackendMicroservice.finishWithBody] Stream ended.`);\n } catch (e) {\n logger.debug(`[BackendMicroservice.finishWithBody] Something went wrong ending the stream: ${e}`);\n }\n }\n \n done() {\n logger.debug(`[BackendMicroservice.done] Finalizing the response...`);\n var microservice = this;\n var stream = microservice.stream;\n try {\n logger.debug(`[BackendMicroservice.done] Sending response headers...`);\n if (microservice.route.responseHeaders){\n logger.debug(`[BackendMicroservice.done] Response headers present: ${Object.keys(microservice.route.responseHeaders)}`);\n stream.respond(microservice.route.responseHeaders);\n } else {\n throw Error(`[BackendMicroservice.done] No headers present.`);\n }\n } catch (e) {\n logger.debug(`[BackendMicroservice.done] Something went wrong sending response headers: ${e}`);\n }\n if (microservice.body !== null) {\n try {\n logger.debug(`[BackendMicroservice.done] A body of message is present. Finalizing the response...`);\n microservice.finishWithBody.call(microservice, stream);\n } catch (e) {\n logger.debug(`[BackendMicroservice.done] Something went wrong finalizing the response: ${e}`);\n }\n } else {\n logger.debug(\"[BackendMicroservice.done] No body present. Ending stream...\");\n stream.end();\n }\n }\n \n \n }\n ]);\n \n \n }\n \n Class(\"SourceJS\", Object, {\n domain: _domain_,\n basePath: _basePath_,\n body: _DOMCreateElement(\"script\"),\n type: \"text/javascript\",\n containerTag: \"body\",\n url: \"\",\n data: {},\n async: false,\n external: false,\n set(name, value) {\n this[name] = value;\n },\n get(name) {\n return this[name];\n },\n status: false,\n done() {},\n fail() {},\n rebuild() {\n var context = this;\n try {\n document.getElementsByTagName(context.containerTag)[0].appendChild(\n (function (s, url, context) {\n s.type = context.type;\n s.src = url;\n s.crossOrigin = (Object.hasOwnProperty.call(context, \"crossOrigin\")) ? (context.crossOrigin) : (\"anonymous\");\n s.async = context.async;\n s.onreadystatechange = function () {\n if (this.readyState === \"complete\") {\n context.done.call(context);\n }\n };\n s.onload = function (e) {\n context.status = true;\n context.done.call(context, e);\n };\n s.onerror = function (e) {\n context.status = false;\n context.fail.call(context, e);\n };\n context.body = s;\n return s;\n }).call(this,\n _DOMCreateElement(\"script\"),\n (this.external) ? (this.url) : (this.basePath + this.url), context));\n } catch (e) {\n context.status = false;\n context.fail.call(context, e);\n }\n },\n Cast(o) {\n return _Cast(this, o);\n },\n _new_(properties) {\n this.__new__(properties);\n this.rebuild();\n }\n });\n Class(\"SourceCSS\", Object, {\n domain: _domain_,\n basePath: _basePath_,\n body: _DOMCreateElement(\"link\"),\n url: \"\",\n data: {},\n async: false,\n external: false,\n set(name, value) {\n this[name] = value;\n },\n get(name) {\n return this[name];\n },\n done() {},\n rebuild() {\n var context = this;\n if (isBrowser) {\n window.document.getElementsByTagName(\"head\")[0].appendChild(\n (function (s, url, context) {\n s.type = \"text/css\";\n s.rel = \"stylesheet\";\n s.href = url;\n s.crossOrigin = \"anonymous\";\n s.onreadystatechange = function () {\n if (this.readyState === \"complete\") {\n context.done.call(context);\n }\n };\n s.onload = context.done;\n context.body = s;\n return s;\n }).call(this,\n _DOMCreateElement(\"link\"),\n (this.external) ? (this.url) : (this.basePath + this.url), context));\n }\n },\n Cast(o) {\n return _Cast(this, o);\n },\n _new_(properties) {\n this.__new__(properties);\n this.rebuild();\n }\n });\n \n /**\n * Array math functions\n */\n var __to_number = function (value) {\n return (isNaN(value)) ? (new Number(0)) : (new Number(value));\n };\n Array.prototype.unique = function () {\n return this.filter(function (value, index, self) {\n return self.indexOf(value) === index;\n });\n };\n Array.unique = function (a) {\n return a.unique();\n };\n (_protected_code_)(Array.unique);\n (_protected_code_)(Array.prototype.unique);\n Array.prototype.table = function () {\n console.table(this);\n };\n Array.table = function (a) {\n return a.table();\n };\n (_protected_code_)(Array.table);\n (_protected_code_)(Array.prototype.table);\n Array.prototype.sum = function () {\n return this.reduce(function (prev, current) {\n return __to_number(prev) + __to_number(current);\n }, 0);\n };\n Array.sum = function (a) {\n return a.sum();\n };\n (_protected_code_)(Array.sum);\n (_protected_code_)(Array.prototype.sum);\n Array.prototype.avg = function () {\n return (this.length < 1) ? (0) : (this.reduce(function (prev, current) {\n return ((__to_number(prev) + __to_number(current)) / 2);\n }));\n };\n Array.avg = function (a) {\n return a.avg();\n };\n (_protected_code_)(Array.avg);\n (_protected_code_)(Array.prototype.avg);\n Array.prototype.min = function () {\n return this.reduce(function (prev, current) {\n return (__to_number(prev) <= __to_number(current)) ? (prev) : (current);\n }, Infinity);\n };\n Array.min = function (a) {\n return a.min();\n };\n (_protected_code_)(Array.min);\n (_protected_code_)(Array.prototype.min);\n Array.prototype.max = function () {\n return this.reduce(function (prev, current) {\n return (__to_number(prev) >= __to_number(current)) ? (prev) : (current);\n }, 0);\n };\n Array.max = function (a) {\n return a.max();\n };\n (_protected_code_)(Array.max);\n (_protected_code_)(Array.prototype.max);\n Array.prototype.sortBy = function (propName, sortAsc = true) {\n var sort_function = (sortAsc) ? (\n function (prev, current) {\n return current[propName] < prev[propName] ? 1 : -1;\n }\n ) : (\n function (prev, current) {\n return current[propName] > prev[propName] ? 1 : -1;\n }\n );\n return this.sort(sort_function);\n };\n Array.sortBy = function (a, propName, sortAsc = true) {\n return a.sortBy(propName, sortAsc);\n };\n (_protected_code_)(Array.sortBy);\n (_protected_code_)(Array.prototype.sortBy);\n \n Array.matrix = function (_length, _fillValue = 0) {\n var x_func = function (x) {\n return _fillValue;\n };\n return Array.from({\n length: _length\n }, x_func);\n };\n (_protected_code_)(Array.matrix);\n \n Array.matrix2d = function (_length, _fillValue = 0) {\n var y_func = function (y) {\n return _fillValue;\n };\n var x_func = function (x) {\n return Array.from({\n length: _length\n }, y_func);\n };\n return Array.from({\n length: _length\n }, x_func);\n };\n (_protected_code_)(Array.matrix2d);\n \n Array.matrix3d = function (_length, _fillValue = 0) {\n var y_func = function (y) {\n return Array.from({\n length: _length\n }, function () {\n return _fillValue;\n });\n };\n var x_func = function (x) {\n return Array.from({\n length: _length\n }, y_func);\n };\n return Array.from({\n length: _length\n }, x_func);\n };\n (_protected_code_)(Array.matrix3d);\n \n _top.range = function (start, stop = 0, step = 1) {\n if (stop === 0 || typeof stop === \"undefined\") {\n stop = start;\n start = 0;\n }\n return Array.from({\n length: (stop - start) / step + 1\n }, function (_, i) {\n return start + (i * step);\n });\n };\n (_protected_code_)(_top.range);\n \n String.prototype.list = function () {\n var __instance = this;\n return _top.range(0, __instance.length - 1).map(function (i) {\n return __instance[i];\n });\n };\n (_protected_code_)(String.prototype.list);\n \n _top.getDocumentLayout = function () {\n var h = (w, h) => {\n return w > h ? \"landscape\" : null;\n };\n var v = (w, h) => {\n return h > w ? \"portrait\" : null;\n };\n var square = (w, h) => {\n return w === h ? \"square\" : null;\n };\n return [\n h(document.documentElement.clientWidth, document.documentElement.clientHeight),\n v(document.documentElement.clientWidth, document.documentElement.clientHeight),\n square(document.documentElement.clientWidth, document.documentElement.clientHeight)\n ].filter(e => e !== null).pop();\n };\n \n \n /**\n * End of array math functions\n */\n \n \n Class(\"ArrayList\", Array, []);\n ClassFactory(\"ArrayList\").matrix = Array.matrix;\n ClassFactory(\"ArrayList\").matrix2d = Array.matrix2d;\n ClassFactory(\"ArrayList\").matrix3d = Array.matrix3d;\n (_protected_code_)(ClassFactory(\"ArrayList\").matrix);\n (_protected_code_)(ClassFactory(\"ArrayList\").matrix2d);\n (_protected_code_)(ClassFactory(\"ArrayList\").matrix3d);\n \n Class(\"ArrayCollection\", Object, {\n source: New(ClassFactory(\"ArrayList\"), []),\n changed(prop, value) {\n logger.debug(\"VALUE CHANGED\");\n logger.debug(prop);\n logger.debug(value);\n },\n push(value) {\n var self = this;\n logger.debug(\"VALUE ADDED\");\n logger.debug(value);\n self.source.push(value);\n },\n pop(value) {\n var self = this;\n logger.debug(\"VALUE POPPED\");\n logger.debug(value);\n self.source.pop(value);\n },\n _new_(source) {\n var self = this;\n var _index = 0;\n self.source = New(ClassFactory(\"ArrayList\"), source);\n for (var _k in self.source) {\n if (!isNaN(_k)) {\n logger.debug(\"binding \" + _k.toString());\n (function (_pname) {\n Object.defineProperty(self, _pname, {\n set(value) {\n logger.debug(\"setting \" + _pname + \"=\" + value);\n self.source[_pname] = value;\n self.changed(_pname, value);\n },\n get() {\n return self.source[_pname];\n }\n });\n })(_k);\n _index++;\n }\n \n }\n self.source.length = _index;\n Object.defineProperty(self, \"length\", {\n get() {\n return self.source.length;\n }\n });\n }\n });\n \n Package(\"com.qcobjects.effects.base\", [\n class Effect extends ClassFactory(\"InheritClass\") {\n duration = 1000;\n \n constructor (){\n super(...arguments);\n }\n \n animate({\n timing,\n draw,\n duration\n }) {\n \n let start = performance.now();\n \n requestAnimationFrame(function animate(time) {\n // timeFraction goes from 0 to 1\n let timeFraction = (time - start) / duration;\n if (timeFraction > 1) timeFraction = 1;\n \n // calculate the current animation state\n let progress = timing(timeFraction);\n \n draw(Math.round(progress * 100)); // draw it\n \n if (timeFraction < 1) {\n requestAnimationFrame(animate);\n } else {\n // if this is an object with a done method\n if (typeof this !== \"undefined\" &&\n this !== null &&\n Object.hasOwnProperty.call(this, \"done\") &&\n (typeof this.done).toLowerCase() === \"function\") {\n this.done.call(this);\n }\n }\n \n });\n }\n \n }\n ]);\n \n Package(\"com.qcobjects.effects.transitions.base\", [\n \n class TransitionEffect extends ClassFactory(\"Effect\") {\n duration= 385;\n defaultParams= {\n alphaFrom: 0,\n alphaTo: 1,\n angleFrom: 180,\n angleTo: 0,\n radiusFrom: 0,\n radiusTo: 30,\n scaleFrom: 0,\n scaleTo: 1\n };\n fitToHeight= false;\n fitToWidth= false;\n effects= [];\n \n constructor (){\n super(...arguments);\n logger.info(\"DECLARING TransitionEffect \");\n this.component.defaultParams = this.defaultParams;\n }\n \n apply({\n alphaFrom,\n alphaTo,\n angleFrom,\n angleTo,\n radiusFrom,\n radiusTo,\n scaleFrom,\n scaleTo\n }) {\n var _transition_ = this;\n logger.info(\"EXECUTING TransitionEffect \");\n var componentRoot = (_transition_.component.shadowed)?(_transition_.component.shadowRoot.host):(_transition_.component.body);\n if (_transition_.fitToHeight) {\n componentRoot.height = (typeof componentRoot.offsetParent === \"object\" && componentRoot.offsetParent !== null)?(componentRoot.offsetParent.scrollHeight):(componentRoot.getBoundingClientRect().height);\n }\n if (_transition_.fitToWidth) {\n componentRoot.width = (typeof componentRoot.offsetParent === \"object\" && componentRoot.offsetParent !== null)?(componentRoot.offsetParent.scrollWidth):(componentRoot.getBoundingClientRect().width);\n }\n componentRoot.style.display = \"block\";\n _transition_.effects.map(function (effectClassName, eff) {\n var __effectClass__ = ClassFactory(effectClassName);\n var effectObj = new __effectClass__();\n var effectClassMethod = effectObj.apply;\n var args = [componentRoot].concat(Object.values({\n alphaFrom,\n alphaTo,\n angleFrom,\n angleTo,\n radiusFrom,\n radiusTo,\n scaleFrom,\n scaleTo\n }));\n effectClassMethod.apply(_transition_, args);\n });\n }\n \n }\n ]);\n \n Package(\"com.qcobjects.timing\", [\n class Timer extends ClassFactory(\"InheritClass\") {\n \n constructor (){\n super(...arguments);\n }\n \n duration= 1000;\n alive= true;\n thread({\n timing,\n intervalInterceptor,\n duration\n }) {\n var timer = this;\n \n let start = performance.now();\n \n requestAnimationFrame(function thread(time) {\n // timeFraction goes from 0 to 1\n let elapsed = (time - start);\n let timeFraction = elapsed / duration;\n if (timeFraction > 1) timeFraction = 1;\n \n // calculate the current progress state\n let progress = timing(timeFraction, elapsed);\n \n intervalInterceptor(Math.round(progress * 100)); // draw it\n \n if ((timeFraction < 1 || duration === -1) && timer.alive) {\n requestAnimationFrame(thread);\n }\n \n });\n }\n \n \n }\n ]);\n \n Package(\"com.qcobjects.tools.essentials\", [\n class Toggle extends ClassFactory(\"InheritClass\") {\n _toggle= false;\n _inverse= true;\n _positive= null;\n _negative= null;\n _dispatched= null;\n _args= {};\n \n constructor (){\n super(...arguments);\n this._new_(...arguments);\n }\n \n changeToggle() {\n this._toggle = (this._toggle) ? (false) : (true);\n }\n \n _new_({\n positive,\n negative,\n args\n }) {\n this._positive = positive;\n this._negative = negative;\n this._args = args;\n }\n \n fire() {\n var toggle = this;\n var _promise = new Promise(function (resolve, reject) {\n \n if (typeof toggle._positive === \"function\" && typeof toggle._negative === \"function\") {\n if (toggle._inverse) {\n toggle._dispatched = (toggle._toggle) ? (toggle._negative.bind(toggle)) : (toggle._positive.bind(toggle));\n } else {\n toggle._dispatched = (toggle._toggle) ? (toggle._positive.bind(toggle)) : (toggle._negative.bind(toggle));\n }\n toggle._dispatched.call(toggle, toggle._args);\n resolve.call(_promise, toggle);\n } else {\n logger.debug(\"Toggle functions are not declared\");\n reject.call(_promise, toggle);\n }\n }).then(function (toggle) {\n toggle.changeToggle();\n }).catch(function (e) {\n logger.debug(e.toString());\n });\n return _promise;\n }\n \n \n }\n \n ]);\n \n // Set Processors\n (function (_top) {\n \n let mapper = function (componentInstance,componentName, valueName) {\n /*\n * Mapper processor\n * @usage\n * $mapper(,)\n *\n * Where componentName is the name of the component (same value as in attribute tag name) without quotes\n * and valueName is the name of the variable that contains the value to map, it can be either a property of\n * the component instance, the data object or a global value\n */\n \n var self = this;\n if (typeof componentInstance === \"undefined\" || componentInstance === null){\n throw Error (`mapper.${componentName}.${valueName} does not have a component instance or it is null.`);\n }\n let globalValue = _top.global.get(valueName);\n let componentValue = componentInstance.get(valueName);\n let dataValue = componentInstance.data[valueName];\n let list = (typeof dataValue !== \"undefined\") ? (dataValue) : ((typeof componentValue !== \"undefined\") ? (componentValue) : (globalValue));\n let listItems = \"\";\n if (typeof list !== \"undefined\" && typeof list[\"map\"] !== \"undefined\") {\n listItems = list.map(function (element) {\n let dataItems = [...Object.keys(element)].map(k => ` data-${k}=\"${(typeof element[k] !== \"undefined\" && element[k] !== null)?(element[k].toString()):(\"\")}\"`).join(\"\");\n return ``;\n }).join(\"\");\n } else {\n logger.debug(`${componentName}.${valueName} does not have a map property`);\n }\n return listItems;\n };\n Processor.setProcessor(mapper);\n \n let layout = function (componentInstance, layoutname, cssfile) {\n /*\n * Layout processor\n * @usage\n * $layout(, )\n * Where layoutname can be \"portrait\" or \"landscape\" without quotes\n * cssfile is the uri for the css file to import\n */\n \n var layout_portrait = `\n /* CSS Document for Mobile Imports */\n @import url(\"${cssfile}\") (orientation:portrait);\n @import url(\"${cssfile}\") (max-width:460px);\n @import url(\"${cssfile}\") (aspect-ratio: 9/16);\n @import url(\"${cssfile}\") (aspect-ratio: 10/16);\n @import url(\"${cssfile}\") (aspect-ratio: 5/8);\n @import url(\"${cssfile}\") (aspect-ratio: 3/4);\n @import url(\"${cssfile}\") (aspect-ratio: 2/3);\n `;\n var layout_landscape = `\n @import url(\"${cssfile}\") (orientation:landscape) and (min-width:460px);\n @import url(\"${cssfile}\") (aspect-ratio: 16/9) and (min-width:460px);\n @import url(\"${cssfile}\") (aspect-ratio: 16/10) and (min-width:460px);\n @import url(\"${cssfile}\") (aspect-ratio: 8/5) and (min-width:460px);\n @import url(\"${cssfile}\") (aspect-ratio: 4/3) and (min-width:460px);\n @import url(\"${cssfile}\") (aspect-ratio: 3/2) and (min-width:460px);\n `;\n var layout_code = {\n \"landscape\": layout_landscape,\n \"portrait\": layout_portrait\n };\n \n return (Object.hasOwnProperty.call(layout_code, layoutname)) ? (layout_code[layoutname]) : (\"\");\n };\n \n Processor.setProcessor(layout);\n \n let component = function () {\n /*\n * component processor\n * @usage\n * $component(name=, componentClass=, ...)\n * Returns a component tag declaration like:\n * ...>\n */\n let arg = [...arguments].slice(1).map(function (a) {\n return {\n [a.split(\"=\")[0]]: a.split(\"=\")[1]\n };\n }).reduce(function (k1, k2) {\n return Object.assign(k1, k2);\n });\n let attrs = [...Object.keys(arg)].map(function (a) {\n return `${a}=${arg[a]}`;\n }).join(\" \");\n return ``;\n };\n \n Processor.setProcessor(component);\n \n let quick_component = function () {\n /*\n * component processor\n * @usage\n * $quick_component(name=, componentClass=, ...)\n * Returns a component tag declaration like:\n * ...>\n */\n let arg = [...arguments].slice(1).map(function (a) {\n return {\n [a.split(\"=\")[0]]: a.split(\"=\")[1]\n };\n }).reduce(function (k1, k2) {\n return Object.assign(k1, k2);\n });\n let attrs = [...Object.keys(arg)].map(function (a) {\n return `${a}=${arg[a]}`;\n }).join(\" \");\n return ``;\n };\n \n Processor.setProcessor(quick_component);\n \n \n let repeat = function (componentInstance, length, text) {\n /*\n * Repeat processor\n * @usage\n * $repeat(, )\n * Where length is the number of occurrences of text\n */\n return _top.range(length).map(\n function (index) {\n return text.replace(\"{{index}}\", index.toString());\n }\n ).join(\"\");\n };\n \n Processor.setProcessor(repeat);\n \n })(_top);\n \n \n /**\n * Load every component tag declared in the body\n **/\n Ready(function () {\n if (!_top.CONFIG.get(\"useSDK\")) {\n _top.__start__();\n }\n });\n \n /*\n Public variables and functions\n */\n Export(Export); /* exports the same Export function once */\n Export(Import);\n Export(Package);\n Export(Class);\n Export(New);\n Export(Tag);\n Export(Ready);\n Export(ready);\n Export(isBrowser);\n Export(_methods_);\n \n (function (_top){\n Package(\"com.qcobjects\", [\n class GlobalSettings extends ClassFactory(\"InheritClass\"){\n _GLOBAL= {};\n __definition = {};\n __classType = \"GlobalSettings\";\n \n constructor(){\n super(...arguments);\n this.set = GlobalSettings.set.bind(this);\n this.get = GlobalSettings.get.bind(this);\n this.__start__ = GlobalSettings.__start__.bind(this);\n }\n \n static set(name, value) {\n this._GLOBAL[name] = value;\n }\n \n static get(name, _default) {\n var _value;\n if (typeof this._GLOBAL[name] !== \"undefined\") {\n _value = this._GLOBAL[name];\n } else if (typeof _default !== \"undefined\") {\n _value = _default;\n }\n return _value;\n }\n \n static __start__() {\n var __load__serviceWorker = function () {\n var _promise;\n if (isBrowser) {\n _promise = new Promise(function (resolve, reject) {\n if ((\"serviceWorker\" in navigator) &&\n (typeof _top.CONFIG.get(\"serviceWorkerURI\") !== \"undefined\")) {\n _top.CONFIG.set(\"serviceWorkerScope\", _top.CONFIG.get(\"serviceWorkerScope\") ? (_top.CONFIG.get(\"serviceWorkerScope\")) : (\"/\"));\n navigator.serviceWorker.register(_top.CONFIG.get(\"serviceWorkerURI\"), {\n scope: _top.CONFIG.get(\"serviceWorkerScope\")\n })\n .then(function (registration) {\n logger.debug(\"Service Worker Registered\");\n resolve.call(_promise, registration);\n }, function (registration) {\n logger.debug(\"Error registering Service Worker\");\n reject.call(_promise, registration);\n });\n navigator.serviceWorker.ready.then(function (registration) {\n logger.debug(\"Service Worker Ready\");\n resolve.call(_promise, registration);\n }, function (registration) {\n logger.debug(\"Error loading Service Worker\");\n reject.call(_promise, registration);\n });\n }\n });\n }\n return _promise;\n };\n var _buildComponents = function () {\n return new Promise ((resolve, reject) => {\n if (isBrowser) {\n logger.debug(\"Starting to building components\");\n try {\n _top.componentsStack = document.buildComponents.call(document);\n }catch (e){\n throw Error (`Something went wrong trying to start components tree: ${e.message}`);\n }\n logger.debug(\"Initializing the service worker\");\n __load__serviceWorker.call(_top)\n .catch(function (e) {\n logger.debug(`error loading the service worker ${e}`);\n });\n }\n resolve();\n });\n };\n logger.debug(\"Starting to load the config settings...\");\n if (_top.CONFIG.get(\"useConfigService\", false)) {\n logger.debug(\"Loading settings using local configuration file...\");\n _top.global.configService = New(ClassFactory(\"ConfigService\"));\n _top.global.configService.configLoaded = _buildComponents;\n serviceLoader(_top.global.configService);\n } else {\n logger.debug(\"Starting to load the components...\");\n _buildComponents.call(this);\n }\n }\n \n }\n ]);\n Export(ClassFactory(\"GlobalSettings\"));\n global = New(ClassFactory(\"GlobalSettings\"));\n _top = _CastProps(global, _top);\n \n Object.defineProperty(_top, \"PackagesNameList\", {\n set(val) {\n logger.debug(\"PackagesNameList is readonly\");\n return;\n },\n get() {\n var _get_packages_names = function (_packages) {\n var _keys = [];\n for (var _k in _packages) {\n if (\n typeof _packages[_k] !== \"undefined\" &&\n typeof _packages[_k] !== \"function\" &&\n Object.hasOwnProperty.call(_packages[_k], \"length\") &&\n _packages[_k].length > 0\n ) {\n _keys.push(_k);\n _keys = _keys.concat(_get_packages_names(_packages[_k]));\n }\n }\n return _keys;\n };\n return _get_packages_names(_QC_PACKAGES);\n }\n });\n \n Object.defineProperty(_top, \"PackagesList\", {\n set(value) {\n logger.debug(\"PackagesList is readonly\");\n return;\n },\n get() {\n return _top.PackagesNameList.map(function (packagename) {\n let _classesList = Package(packagename);\n let _ret_;\n if (_classesList) {\n _ret_ = {\n packageName: packagename,\n classesList: _classesList.filter(function (_packageClass) {\n return isQCObjects_Class(_packageClass);\n })\n };\n }\n return _ret_;\n }).filter(function (_p) {\n return typeof _p !== \"undefined\";\n });\n }\n });\n \n Object.defineProperty(_top, \"ClassesList\", {\n set(value) {\n logger.debug(\"ClassesList is readonly\");\n return;\n },\n get() {\n var _classesList = [];\n _top.PackagesList.map(function (_package_element) {\n _classesList = _classesList.concat(_package_element.classesList.map(\n function (_class_element) {\n return {\n packageName: _package_element.packageName,\n className: _package_element.packageName + \".\" + _class_element.__definition.__classType,\n classFactory: _class_element\n };\n }\n ));\n return _package_element;\n });\n \n return _classesList;\n }\n });\n \n Object.defineProperty(_top, \"ClassesNameList\", {\n set(value) {\n logger.debug(\"ClassesNameList is readonly\");\n return;\n },\n get() {\n return _top.ClassesList.map(function (_class_element) {\n return _class_element.className;\n });\n }\n });\n \n if (isBrowser) {\n // use of GLOBAL word is deprecated in node.js\n // this is only for compatibility purpose with old versions of QCObjects in browsers\n Class(\"GLOBAL\", _QC_CLASSES[\"global\"]); // case insensitive for compatibility con old versions;\n Export(ClassFactory(\"GLOBAL\"));\n }\n Export(global);\n \n if (_top.CONFIG.get(\"useSDK\")) {\n (function (_top) {\n var remoteImportsPath = _top.CONFIG.get(\"remoteImportsPath\");\n var external = (!_top.CONFIG.get(\"useLocalSDK\")) ? (true) : (false);\n _top.CONFIG.set(\"remoteImportsPath\", _top.CONFIG.get(\"remoteSDKPath\"));\n \n var tryImportingSDK = false;\n var sdkName = \"QCObjects-SDK\";\n if (isBrowser) {\n tryImportingSDK = true;\n } else {\n var sdkPath = findPackageNodePath(\"qcobjects-sdk\");\n if (sdkPath !== null) {\n sdkName = \"qcobjects-sdk\";\n tryImportingSDK = true;\n } else {\n sdkName = \"node_modules/qcobjects-sdk/QCObjects-SDK\";\n tryImportingSDK = true;\n }\n }\n \n if (tryImportingSDK) {\n logger.info(\"Importing SDK... \" + sdkName);\n if (isNodeCommonJS && typeof require !== \"undefined\"){\n let sdk = require(\"qcobjects-sdk\");\n } else {\n Import(sdkName, function () {\n if (external) {\n logger.debug(\"QCObjects-SDK.js loaded from remote location\");\n } else {\n logger.debug(\"QCObjects-SDK.js loaded from local\");\n }\n _top.CONFIG.set(\"remoteImportsPath\", remoteImportsPath);\n }, external);\n }\n } else {\n logger.debug(\"SDK has not been imported as it is not available at the moment\");\n }\n })(_top);\n }\n })(_top);\n \n if (isBrowser) {\n asyncLoad(function () {\n Ready(function () {\n \n /*\n * scroll management custom events\n * usage: document.addEventListener('percentY90',function(e){console.log(e.detail.percentY)});\n * possible events: scrollpercent, defaultscroll, percentY0, percentY25, percentY50, percentY75, percentY90\n */\n \n (function (_top) {\n let lastKnownScrollPosition = 0;\n let ticking = false;\n let scrollHeight = Math.max(\n document.body.scrollHeight, document.documentElement.scrollHeight,\n document.body.offsetHeight, document.documentElement.offsetHeight,\n document.body.clientHeight, document.documentElement.clientHeight\n );\n \n let scrollWidth = Math.max(\n document.body.scrollWidth, document.documentElement.scrollWidth,\n document.body.offsetWidth, document.documentElement.offsetWidth,\n document.body.clientWidth, document.documentElement.clientWidth\n );\n \n function scrollDispatcher(event) {\n var percentY = Math.round(_top.scrollY * 100 / scrollHeight);\n var percentX = Math.round(_top.scrollX * 100 / scrollWidth);\n var scrollPercentEventEvent = new CustomEvent(\"scrollpercent\", {\n detail: {\n percentX: percentX,\n percentY: percentY\n }\n });\n event.target.dispatchEvent(scrollPercentEventEvent);\n var secondaryEventName = \"defaultscroll\";\n var __valid_scrolls__ = [0, 5, 10, 25, 50, 75, 90, 95, 100];\n __valid_scrolls__.filter(function (p) {\n return p === percentY;\n }).map(function (pY) {\n secondaryEventName = \"percentY\" + percentY.toString();\n var secondaryCustomEvent = new CustomEvent(secondaryEventName, {\n detail: {\n percentX: percentX,\n percentY: percentY\n }\n });\n event.target.dispatchEvent(secondaryCustomEvent);\n });\n \n }\n \n document.addEventListener(\"scroll\", function (event) {\n \n if (!ticking) {\n requestAnimationFrame(function () {\n scrollDispatcher(event);\n ticking = false;\n });\n \n ticking = true;\n }\n });\n \n })(_top);\n \n });\n }, null);\n }\n \n if (!isBrowser) {\n if (typeof _top.global !== \"undefined\" && Object.hasOwnProperty.call(_top.global, \"_fireAsyncLoad\")) {\n _top.global._fireAsyncLoad.call(this);\n }\n if (typeof _top.global !== \"undefined\" && Object.hasOwnProperty.call(_top.global, \"onload\")) {\n _top.global.onload.call(this);\n }\n }\n \n \n /* Freezing Object && Object.prototype to prevent prototype pollution risks */\n (function (isBrowser) {\n var __freeze__ = function () {\n Object.freeze(Object.prototype);\n Object.freeze(Object);\n };\n if (isBrowser && _top.CONFIG.get(\"secureObjects\", false)) {\n Ready(function () {\n __freeze__();\n });\n } else if (_top.CONFIG.get(\"secureObjects\", false)) {\n __freeze__();\n }\n })(isBrowser);\n }\n}).call(null, (typeof module === \"object\" && typeof module.exports === \"object\") ? (\n module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})\n) : ((typeof global === \"object\") ? (global) : (\n (typeof window === \"object\") ? (window) : ({})\n)));", "const QCObjects = require(\"./QCObjects.js\");\nmodule.exports = QCObjects;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n(function (global) {\n \"use strict\";\n // eslint-disable-next-line camelcase\n class i18n_messages extends qcobjects_1.InheritClass {\n constructor({ messages = [] }) {\n super({\n messages\n });\n if (qcobjects_1.CONFIG.get(\"use_i18n\", false)) {\n qcobjects_1.CONFIG.set(\"lang\", \"en\");\n if (!global.get(\"i18n\")) {\n global.set(\"i18n\", {\n messages\n });\n }\n else {\n global.set(\"i18n\", {\n messages: global.get(\"i18n\").messages.concat(messages)\n });\n }\n }\n }\n _load_i18n_packages_() {\n // eslint-disable-next-line array-callback-return, camelcase\n return qcobjects_1.CONFIG.get(\"i18n_languages\", []).map((i18n_packagename) => {\n // eslint-disable-next-line camelcase\n (0, qcobjects_1.Import)(`org.quickcorp.i18n_messages.${i18n_packagename}`);\n });\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.i18n_messages\", [\n // eslint-disable-next-line camelcase\n i18n_messages\n ]);\n // eslint-disable-next-line new-cap\n (new i18n_messages({}))._load_i18n_packages_();\n})((typeof module === \"object\" && typeof module.exports === \"object\") ? (module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})) : ((typeof global === \"object\") ? (global) : ((typeof window === \"object\") ? (window) : ({}))));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.models\", [\n class Contact extends qcobjects_1.VO {\n }\n ]);\n})();\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ModalMoveUp = exports.ModalMoveDown = exports.ModalFade = exports.WipeDown = exports.WipeUp = exports.WipeRight = exports.WipeLeft = exports.Resize = exports.Radius = exports.Rotate = exports.RotateZ = exports.RotateY = exports.RotateX = exports.MoveYInFromTop = exports.MoveYInFromBottom = exports.MoveXInFromLeft = exports.MoveXInFromRight = exports.Move = exports.Fade = void 0;\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\nconst _top = (typeof module === \"object\" && typeof module.exports === \"object\") ? (module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})) : ((typeof global === \"object\") ? (global) : ((typeof window === \"object\") ? (window) : ({})));\n(function () {\n \"use strict\";\n class Fade extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, alphaFrom, alphaTo) {\n const da = alphaTo - alphaFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const alpha = alphaFrom + (progress * da / 100);\n qcobjects_1.logger.debug(\"alpha: \" + alpha.toString());\n element.style.opacity = alpha.toString();\n }\n });\n }\n }\n class Move extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, xfrom, yfrom, xto, yto) {\n const dx = xto - xfrom;\n const dy = yto - yfrom;\n element.style.transform = \"translate(\" + xfrom + \"px,\" + yfrom + \"px)\";\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const y = yfrom + (progress * dy / 100);\n const x = xfrom + (progress * dx / 100);\n qcobjects_1.logger.debug(\"x: \" + x.toString() + \" y:\" + y.toString());\n element.style.transform = \"translate(\" + x + \"px,\" + y + \"px)\";\n }\n });\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.effects.base\", [\n Fade,\n Move\n ]);\n class MoveXInFromRight extends Move {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element) {\n super.apply.call(this, element, element.width, 0, 0, 0);\n }\n }\n class MoveXInFromLeft extends Move {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element) {\n super.apply.call(this, element, -element.width, 0, 0, 0);\n }\n }\n class MoveYInFromBottom extends Move {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element) {\n super.apply.call(this, element, 0, element.height, 0, 0);\n }\n }\n class MoveYInFromTop extends Move {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element) {\n super.apply.call(this, element, 0, -element.height, 0, 0);\n }\n }\n class RotateX extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, angleFrom, angleTo) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n qcobjects_1.logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(1,0,0,\" + angle.toString() + \"deg)\";\n }\n });\n }\n }\n class RotateY extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, angleFrom, angleTo) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n qcobjects_1.logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(0,1,0,\" + angle.toString() + \"deg)\";\n }\n });\n }\n }\n class RotateZ extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, angleFrom, angleTo) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n qcobjects_1.logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(0,0,1,\" + angle.toString() + \"deg)\";\n }\n });\n }\n }\n class Rotate extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, angleFrom, angleTo) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n qcobjects_1.logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(1,1,1,\" + angle.toString() + \"deg)\";\n }\n });\n }\n }\n class Radius extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, radiusFrom, radiusTo) {\n const dr = radiusTo - radiusFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const radius = radiusFrom + (progress * dr / 100);\n qcobjects_1.logger.debug(\"radius: \" + radius.toString());\n element.style.borderRadius = radius.toString() + \"px\";\n }\n });\n }\n }\n class Resize extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, scaleFrom, scaleTo) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n qcobjects_1.logger.debug(\"resize: \" + scale.toString());\n element.style.transformOrigin = \"center\";\n element.style.transform = \"scale(\" + scale + \",\" + scale + \")\";\n }\n });\n }\n }\n class WipeLeft extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, scaleFrom, scaleTo) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n qcobjects_1.logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"right\";\n element.style.transform = \"scaleX(\" + scale + \")\";\n }\n });\n }\n }\n class WipeRight extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, scaleFrom, scaleTo) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n qcobjects_1.logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"left\";\n element.style.transform = \"scaleX(\" + scale + \")\";\n }\n });\n }\n }\n class WipeUp extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, scaleFrom, scaleTo) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n qcobjects_1.logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"bottom\";\n element.style.transform = \"scaleY(\" + scale + \")\";\n }\n });\n }\n }\n class WipeDown extends qcobjects_1.Effect {\n constructor() {\n super(...arguments);\n this.duration = 1000;\n }\n apply(element, scaleFrom, scaleTo) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n return timeFraction;\n },\n draw(progress) {\n qcobjects_1.logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n qcobjects_1.logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"top\";\n element.style.transform = \"scaleY(\" + scale + \")\";\n }\n });\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.effects.extended\", [\n MoveXInFromRight,\n MoveXInFromLeft,\n MoveYInFromBottom,\n MoveYInFromTop,\n RotateX,\n RotateY,\n RotateZ,\n Rotate,\n Radius,\n Resize,\n WipeLeft,\n WipeRight,\n WipeUp,\n WipeDown\n ]);\n class ModalFade extends Fade {\n constructor() {\n super(...arguments);\n this.duration = 500;\n }\n }\n class ModalMoveDown extends Move {\n constructor() {\n super(...arguments);\n this.duration = 300;\n }\n }\n class ModalMoveUp extends Move {\n constructor() {\n super(...arguments);\n this.duration = 800;\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.modal.effects\", [\n ModalFade,\n ModalMoveDown,\n ModalMoveUp\n ]);\n})();\nconst Fade = _top.Fade;\nexports.Fade = Fade;\nconst Move = _top.Fade;\nexports.Move = Move;\nconst MoveXInFromRight = _top.MoveXInFromRight;\nexports.MoveXInFromRight = MoveXInFromRight;\nconst MoveXInFromLeft = _top.MoveXInFromLeft;\nexports.MoveXInFromLeft = MoveXInFromLeft;\nconst MoveYInFromBottom = _top.MoveYInFromBottom;\nexports.MoveYInFromBottom = MoveYInFromBottom;\nconst MoveYInFromTop = _top.MoveYInFromTop;\nexports.MoveYInFromTop = MoveYInFromTop;\nconst RotateX = _top.RotateX;\nexports.RotateX = RotateX;\nconst RotateY = _top.RotateY;\nexports.RotateY = RotateY;\nconst RotateZ = _top.RotateZ;\nexports.RotateZ = RotateZ;\nconst Rotate = _top.Rotate;\nexports.Rotate = Rotate;\nconst Radius = _top.Radius;\nexports.Radius = Radius;\nconst Resize = _top.Resize;\nexports.Resize = Resize;\nconst WipeLeft = _top.WipeLeft;\nexports.WipeLeft = WipeLeft;\nconst WipeRight = _top.WipeRight;\nexports.WipeRight = WipeRight;\nconst WipeUp = _top.WipeUp;\nexports.WipeUp = WipeUp;\nconst WipeDown = _top.WipeDown;\nexports.WipeDown = WipeDown;\nconst ModalFade = _top.ModalFade;\nexports.ModalFade = ModalFade;\nconst ModalMoveDown = _top.ModalMoveDown;\nexports.ModalMoveDown = ModalMoveDown;\nconst ModalMoveUp = _top.ModalMoveUp;\nexports.ModalMoveUp = ModalMoveUp;\n", "/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwaggerUIComponent = exports.ModalEnclosureComponent = exports.ModalComponent = exports.EmailField = exports.TextField = exports.InputField = exports.ButtonField = exports.ShadowedComponent = exports.FormField = void 0;\nconst qcobjects_1 = require(\"qcobjects\");\nconst org_qcobjects_effects_1 = require(\"./org.qcobjects.effects\");\nconst _top = (typeof module === \"object\" && typeof module.exports === \"object\") ? (module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})) : ((typeof global === \"object\") ? (global) : ((typeof window === \"object\") ? (window) : ({})));\n(function (global) {\n class FormField extends qcobjects_1.Component {\n constructor(o) {\n o.name = (typeof o.name !== \"undefined\") ? (o.name) : (\"form-field\");\n super(o);\n this.cached = false;\n this.reload = true;\n }\n createBindingEvents() {\n let _objList;\n if (typeof this.fieldType === \"undefined\" || this.fieldType == null) {\n _objList = this.body.subelements(\"*[data-field]\"); // every child with data-field set\n }\n else {\n _objList = this.body.subelements(this.fieldType + \"[data-field]\"); // every child with data-field set and tagname is equal to fieldType property\n }\n for (let _datak = 0; _datak < _objList.length; _datak++) {\n const _obj = _objList[_datak];\n _obj.addEventListener(\"change\", () => {\n qcobjects_1.logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"blur\", () => {\n qcobjects_1.logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"focus\", () => {\n qcobjects_1.logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"keydown\", () => {\n qcobjects_1.logger.debug(\"Executing keydown event binding\");\n this.executeBindings();\n });\n }\n }\n executeBinding(_obj) {\n const _datamodel = _obj.getAttribute(\"data-field\");\n qcobjects_1.logger.debug(\"Binding \" + _datamodel + \" for \" + this.name);\n this.data[_datamodel] = _obj.value;\n }\n executeBindings() {\n let _objList;\n if (typeof this.fieldType === \"undefined\" || this.fieldType == null) {\n _objList = this.body.subelements(\"*[data-field]\"); // every child with data-field set\n }\n else {\n _objList = this.body.subelements(this.fieldType + \"[data-field]\"); // every child with data-field set and tagname is equal to fieldType property\n }\n for (let _datak = 0; _datak < _objList.length; _datak++) {\n const _obj = _objList[_datak];\n const _datamodel = _obj.getAttribute(\"data-field\");\n qcobjects_1.logger.debug(\"Binding \" + _datamodel + \" for \" + this.name);\n this.data[_datamodel] = _obj.value;\n }\n }\n done(standardResponse) {\n const _ret_ = super.done(standardResponse);\n this.executeBindings();\n this.createBindingEvents();\n qcobjects_1.logger.debug(\"Field loaded: \" + this.fieldType + \"[name=\" + this.name + \"]\");\n return _ret_;\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.base.components\", [\n FormField\n ]);\n class ShadowedComponent extends qcobjects_1.Component {\n constructor(o) {\n o.body = (0, qcobjects_1._DOMCreateElement)(\"div\");\n super(o);\n this.container = null;\n this.shadowed = true;\n this.cached = false;\n this.controller = null;\n this.view = null;\n this.data = {};\n }\n }\n class ButtonField extends FormField {\n constructor(o) {\n o.fieldType = \"button\";\n super(o);\n }\n }\n class InputField extends FormField {\n constructor(o) {\n o.fieldType = \"input\";\n super(o);\n }\n }\n class TextField extends FormField {\n constructor(o) {\n o.fieldType = \"textarea\";\n super(o);\n }\n }\n class EmailField extends FormField {\n constructor(o) {\n o.fieldType = \"input\";\n super(o);\n }\n }\n class ModalEnclosureComponent extends qcobjects_1.Component {\n constructor(o) {\n o.body = (0, qcobjects_1._DOMCreateElement)(\"div\");\n super(o);\n this.name = \"modalenclosure\";\n this.tplsource = \"inline\";\n this.cached = false;\n this.basePath = qcobjects_1.CONFIG.get(\"modalBasePath\", qcobjects_1.CONFIG.get(\"remoteSDKPath\", \"\"));\n this.template = `\n\n\n
        \n\n\n
        \n×\n{{content}}\n
        \n\n
        \n`;\n this.data = {};\n }\n }\n class ModalComponent extends qcobjects_1.Component {\n constructor(o) {\n o.basePath = qcobjects_1.CONFIG.get(\"modalBasePath\", qcobjects_1.CONFIG.get(\"remoteSDKPath\", \"\"));\n super(o);\n this.name = \"modal\";\n this.cached = false;\n this.modalEnclosureComponentClass = \"ModalEnclosureComponent\";\n this.controller = null;\n this.view = null;\n this.tplsource = \"none\";\n this.closeOnClickOutside = false;\n this.data = {\n content: \"\",\n modalId: 0\n };\n this.submodal = null;\n this.data.modalId = this.__instanceID;\n const submodal = (0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(this.modalEnclosureComponentClass), {\n name: this.name,\n basePath: this.basePath,\n data: this.data\n });\n this.subcomponents.push(submodal);\n this.submodal = submodal;\n if (submodal.tplsource === \"none\") {\n this.body.innerHTML = submodal.parsedAssignmentText;\n }\n else {\n this.body.append(submodal.body);\n }\n }\n modal() {\n const modalId = this.data.modalId;\n (0, qcobjects_1.Tag)(\"#modalInstance_\" + modalId + \".modal\").map((modal) => {\n modal.style.display = \"block\";\n return (new org_qcobjects_effects_1.ModalFade({})).apply(modal, 0, 1);\n });\n (0, qcobjects_1.Tag)(\"#modalInstance_\" + modalId + \".modal .modal-content\").map((modalcontent) => {\n return (new org_qcobjects_effects_1.ModalMoveDown({})).apply(modalcontent, 0, -document.body.clientHeight, 0, 0);\n });\n (0, qcobjects_1.Tag)(\"#modalInstance_\" + modalId + \".modal .modal-content .close\").map((closebtn) => {\n return closebtn.addEventListener(\"click\", () => {\n this.close();\n }, false);\n });\n if (this.closeOnClickOutside) {\n window.addEventListener(\"click\", () => {\n this.close();\n }, false);\n }\n }\n close() {\n const modalId = this.data.modalId;\n (0, qcobjects_1.Tag)(\"#modalInstance_\" + modalId + \".modal\").map((modal) => {\n modal.style.display = \"block\";\n return (new org_qcobjects_effects_1.ModalFade({})).apply(modal, 1, 0);\n });\n (0, qcobjects_1.Tag)(\"#modalInstance_\" + modalId + \".modal .modal-content\").map(function (modalcontent) {\n return (new org_qcobjects_effects_1.ModalMoveUp({})).apply(modalcontent, 0, 0, 0, -document.body.clientHeight);\n });\n setTimeout(function () {\n (0, qcobjects_1.Tag)(\"#modalInstance_\" + modalId + \".modal\").map((modal) => {\n modal.style.display = \"none\";\n return true;\n });\n }, 900);\n }\n rebuild() {\n const _ret_ = super.rebuild();\n this.templateURI = (0, qcobjects_1.ComponentURI)({\n \"COMPONENTS_BASE_PATH\": qcobjects_1.CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": \"modal\",\n \"TPLEXTENSION\": qcobjects_1.CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": \"default\" // here is always default in order to get the right uri\n });\n return _ret_; // parent call\n }\n }\n class SwaggerUIComponent extends qcobjects_1.Component {\n constructor() {\n super(...arguments);\n this.cached = false;\n this.basePath = qcobjects_1.CONFIG.get(\"remoteSDKPath\", \"\");\n this.tplextension = \"tpl.html\";\n this.name = \"swagger-ui\";\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.form.components\", [\n ShadowedComponent,\n ButtonField,\n InputField,\n TextField,\n EmailField,\n ModalEnclosureComponent,\n ModalComponent,\n SwaggerUIComponent\n ]);\n global.FormField = FormField;\n global.ShadowedComponent = ShadowedComponent;\n global.ButtonField = ButtonField;\n global.InputField = InputField;\n global.TextField = TextField;\n global.EmailField = EmailField;\n global.ModalEnclosureComponent = ModalEnclosureComponent;\n global.ModalComponent = ModalComponent;\n global.SwaggerUIComponent = SwaggerUIComponent;\n})(_top);\nconst FormField = _top.FormField;\nexports.FormField = FormField;\nconst ShadowedComponent = _top.ShadowedComponent;\nexports.ShadowedComponent = ShadowedComponent;\nconst ButtonField = _top.ButtonField;\nexports.ButtonField = ButtonField;\nconst InputField = _top.InputField;\nexports.InputField = InputField;\nconst TextField = _top.TextField;\nexports.TextField = TextField;\nconst EmailField = _top.EmailField;\nexports.EmailField = EmailField;\nconst ModalEnclosureComponent = _top.ModalEnclosureComponent;\nexports.ModalEnclosureComponent = ModalEnclosureComponent;\nconst ModalComponent = _top.ModalComponent;\nexports.ModalComponent = ModalComponent;\nconst SwaggerUIComponent = _top.SwaggerUIComponent;\nexports.SwaggerUIComponent = SwaggerUIComponent;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GridItemComponent = exports.GridComponent = void 0;\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\nconst _top = (typeof module === \"object\" && typeof module.exports === \"object\") ? (module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})) : ((typeof global === \"object\") ? (global) : ((typeof window === \"object\") ? (window) : ({})));\n(function (global) {\n \"use strict\";\n class GridItemComponent extends qcobjects_1.Component {\n constructor() {\n super(...arguments);\n this.name = \"grid-item\";\n this.shadowed = true;\n this.tplsource = \"inline\";\n this.template = `\n\n

        {{description}}

        \n`;\n this.cached = false;\n }\n }\n class GridComponent extends qcobjects_1.Component {\n constructor(o) {\n super(o);\n this.name = \"grid\";\n this.cached = false;\n this.view = null;\n this.shadowed = true;\n this.rows = 3;\n this.cols = 3;\n this.templateURI = \"\";\n this.data = {};\n this.tplsource = \"inline\";\n this.template = \"

        Loading...

        \";\n this.body.setAttribute(\"controllerClass\", \"DataGridController\");\n const subcomponentClass = (this.body.getAttribute(\"subcomponentClass\") !== null) ? (this.body.getAttribute(\"subcomponentClass\")) : (\"GridItemComponent\");\n this.body.setAttribute(\"subcomponentClass\", subcomponentClass);\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.components.grid\", [\n GridComponent,\n GridItemComponent\n ]);\n global.GridComponent = GridComponent;\n global.GridItemComponent = GridItemComponent;\n})(_top);\nconst GridComponent = _top.GridComponent;\nexports.GridComponent = GridComponent;\nconst GridItemComponent = _top.GridItemComponent;\nexports.GridItemComponent = GridItemComponent;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListItemComponent = exports.ListComponent = void 0;\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\nconst _top = (typeof module === \"object\" && typeof module.exports === \"object\") ? (module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})) : ((typeof global === \"object\") ? (global) : ((typeof window === \"object\") ? (window) : ({})));\n(function (global) {\n \"use strict\";\n class ListItemComponent extends qcobjects_1.Component {\n constructor(o) {\n o.name = \"list-item\";\n super(o);\n this.shadowed = false;\n this.tplsource = \"inline\";\n this.template = \"{{label}}\";\n this.cached = false;\n }\n }\n class ListComponent extends qcobjects_1.Component {\n constructor(o) {\n o.name = \"list\";\n super(o);\n this.shadowed = true;\n this.tplsource = \"inline\";\n this.template = \"

        Loading...

        \";\n this.body.setAttribute(\"controllerClass\", \"ListController\");\n this.body.setAttribute(\"subcomponentClass\", \"ListItemComponent\");\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.components.list\", [\n ListItemComponent,\n ListComponent\n ]);\n global.ListComponent = ListComponent;\n global.ListItemComponent = ListItemComponent;\n})(_top);\nconst ListComponent = _top.ListComponent;\nexports.ListComponent = ListComponent;\nconst ListItemComponent = _top.ListItemComponent;\nexports.ListItemComponent = ListItemComponent;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.components.slider\", [\n class SlideListComponent extends qcobjects_1.Component {\n constructor(o) {\n super(o);\n this.tplsource = \"inline\";\n this.template = \"

        Loading...

        \";\n this.name = \"slidelist\";\n this.body.setAttribute(\"controllerClass\", \"DataGridController\");\n const subcomponentClass = (this.body.getAttribute(\"subcomponentClass\") !== null) ? (this.body.getAttribute(\"subcomponentClass\")) : (\"GridItemComponent\");\n this.body.setAttribute(\"subcomponentClass\", subcomponentClass);\n }\n },\n class SlideItemComponent extends qcobjects_1.Component {\n constructor(o) {\n super(o);\n this.effectClass = \"Fade\";\n this.name = \"slider_item\";\n this.data.slideNumber = this.data.__dataIndex + 1;\n this.template = `\n
        \n
        {{slideNumber}} / {{__dataLength}}
        \n \"{{title}}\"/\n
        \n

        {{label}} {{category}}

        \n
        \n
        \n `;\n this.tplsource = \"inline\";\n }\n },\n class SliderComponent extends qcobjects_1.Component {\n constructor(o) {\n super(o);\n this.name = \"slider\";\n this.template = `\n \n \n
        \n \n \n \n \n
        \n
        \n \n
        \n
        \n \n `;\n this.tplsource = \"inline\";\n this.shadowed = true;\n this.data.SERVICE_CLASS = this.body.getAttribute(\"serviceClass\");\n this.data.sliderHandler = \"slider_\" + this.__instanceID.toString();\n this.body.setAttribute(\"controllerClass\", \"SliderController\");\n }\n }\n ]);\n})();\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\nconst org_qcobjects_effects_1 = require(\"./org.qcobjects.effects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n(function () {\n \"use strict\";\n class NotificationComponent extends qcobjects_1.Component {\n constructor(o) {\n o.name = \"notification\";\n o.body = (0, qcobjects_1._DOMCreateElement)(\"div\");\n super(o);\n this.cached = false;\n this.tplsource = \"inline\";\n this.shadowed = false;\n this.template = `\n \n
        \n
        \n

        {{title}} {{message}}

        \n
        \n
        \n `;\n this.kinds = [\"danger\", \"success\", \"info\", \"warning\"];\n }\n display(element) {\n const _display_ = function (element) {\n element.style.display = \"block\";\n const appearEffect = (0, qcobjects_1.New)(org_qcobjects_effects_1.Move, {\n duration: 900,\n apply(element) {\n (0, qcobjects_1._super_)(\"Fade\", \"apply\").call(this, element, 0, 1);\n (0, qcobjects_1._super_)(\"Move\", \"apply\").call(this, element, 0, -document.body.clientHeight, 0, 0);\n }\n });\n const disappearEffect = (0, qcobjects_1.New)(org_qcobjects_effects_1.Move, {\n duration: 650,\n apply(element) {\n (0, qcobjects_1._super_)(\"Fade\", \"apply\").call(this, element, 1, 0);\n (0, qcobjects_1._super_)(\"Move\", \"apply\").call(this, element, 0, 0, 0, -document.body.clientHeight);\n }\n });\n appearEffect.apply(element);\n setTimeout(function () {\n disappearEffect.apply(element);\n }, 2000);\n };\n element.subelements(\"div.notification_background\").map(element => (0, qcobjects_1.New)(org_qcobjects_effects_1.Fade, { duration: 500 }).apply(element, 0, 1));\n element.subelements(\"div.notification\").map(element => _display_(element));\n setTimeout(function () {\n element.remove();\n }, 2200);\n }\n static success(message) {\n const c = (0, qcobjects_1.New)(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: (0, qcobjects_1._DOMCreateElement)(\"div\"),\n data: {\n kind: \"success\",\n title: \"Success!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed) ? (c.shadowRoot.host) : (c.body);\n c.display(_componentRoot);\n }\n static danger(message) {\n const c = (0, qcobjects_1.New)(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: (0, qcobjects_1._DOMCreateElement)(\"div\"),\n data: {\n kind: \"danger\",\n title: \"Danger!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed) ? (c.shadowRoot.host) : (c.body);\n c.display(_componentRoot);\n }\n static info(message) {\n const c = (0, qcobjects_1.New)(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: (0, qcobjects_1._DOMCreateElement)(\"div\"),\n data: {\n kind: \"info\",\n title: \"Info!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed) ? (c.shadowRoot.host) : (c.body);\n c.display(_componentRoot);\n }\n static warning(message) {\n const c = (0, qcobjects_1.New)(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: (0, qcobjects_1._DOMCreateElement)(\"div\"),\n data: {\n kind: \"warning\",\n title: \"Warning!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed) ? (c.shadowRoot.host) : (c.body);\n c.display(_componentRoot);\n }\n }\n (0, qcobjects_1.Package)(\"org.quickcorp.components.notifications\", [\n NotificationComponent\n ]);\n})();\n", "\"use strict\";\n/**\n * QCObjects SDK 2.4.0\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CubeSplashScreenComponent = exports.VideoSplashScreenComponent = exports.SplashScreenComponent = void 0;\nconst qcobjects_1 = require(\"qcobjects\");\nconst org_qcobjects_effects_1 = require(\"./org.qcobjects.effects\");\nconst _top = (typeof module === \"object\" && typeof module.exports === \"object\") ? (module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})) : ((typeof global === \"object\") ? (global) : ((typeof window === \"object\") ? (window) : ({})));\n// eslint-disable-next-line camelcase\n(function __splash_screen__(global) {\n \"use strict\";\n class SplashScreenComponent extends qcobjects_1.Component {\n constructor(component) {\n component.name = (typeof component.name === \"undefined\") ? (\"splashscreen\") : (component.name);\n const isBrowser = typeof window !== \"undefined\" && typeof window.self !== \"undefined\" && window === window.self;\n const isStartURL = (location.hash === \"\"\n && location.pathname === \"/\" && location.search === \"\")\n || qcobjects_1.CONFIG.get(\"routingWay\", \"pathname\") === \"hash\" && qcobjects_1.CONFIG.get(\"start_url\", \"/\") === location.hash\n || qcobjects_1.CONFIG.get(\"routingWay\", \"pathname\") === \"pathname\" && qcobjects_1.CONFIG.get(\"start_url\", \"/\") === location.pathname\n || qcobjects_1.CONFIG.get(\"routingWay\", \"pathname\") === \"search\" && qcobjects_1.CONFIG.get(\"start_url\", \"/\") === location.search;\n const _enabled_ = isBrowser && isStartURL;\n if (_enabled_) {\n component.basePath = qcobjects_1.CONFIG.get(\"splashscreenBasePath\", qcobjects_1.CONFIG.get(\"remoteSDKPath\", \"\"));\n if (typeof component.data === \"undefined\") {\n component.data = {};\n }\n component.data.basePath = component.basePath;\n }\n else {\n if (typeof component !== \"undefined\" && typeof component.body !== \"undefined\") {\n component.body.style.display = \"none\";\n }\n }\n super(component);\n this.cached = false;\n this.shadowed = true;\n this._bgcolor = \"\";\n this._enabled_ = _enabled_;\n if (this._enabled_) {\n const displayEffectDuration = 1000;\n let duration = this.body.getAttribute(\"duration\");\n if (duration === null) {\n duration = displayEffectDuration;\n }\n else {\n duration = parseInt(duration.toString());\n }\n this._bgcolor = this.body.style.backgroundColor;\n const _helper_ = () => {\n setTimeout(() => {\n if (!_helper_.executed) {\n const _componentRoot = (this.shadowed) ? this.shadowRoot?.host : this.body;\n if (typeof global.componentsStack !== \"undefined\") {\n global.componentsStack.filter((c) => c.body.hasAttribute(\"splashscreen\")).map((mainComponent) => {\n qcobjects_1.logger.debug(`Splash Screen of Main Component: ${mainComponent.name}`);\n mainComponent.splashScreenComponent = this;\n const SplashScreenHandler = () => {\n if (!SplashScreenHandler.executed) {\n const component = mainComponent.splashScreenComponent;\n const mainElement = (mainComponent.shadowed) ? mainComponent.shadowRoot?.host : mainComponent.body;\n mainComponent._mainPosition = mainElement.style.position;\n if (typeof mainElement !== \"undefined\") {\n mainElement.style.position = \"fixed\";\n }\n mainComponent._mainOpacity = mainElement.style.opacity;\n _componentRoot.style.width = \"100%\";\n _componentRoot.style.height = \"100%\";\n document.body.style.backgroundColor = \"#111111\";\n mainElement.style.opacity = \"0\";\n setTimeout(function () {\n if (typeof _componentRoot !== \"undefined\") {\n document.body.style.backgroundColor = component?._bgcolor;\n _componentRoot.subelements(\"#slot-logo\").map((slotlogo) => {\n slotlogo.style.display = \"block\";\n slotlogo.style.transformOrigin = \"center\";\n return (new org_qcobjects_effects_1.Resize()).apply(slotlogo, 1, 0);\n });\n (new org_qcobjects_effects_1.Fade()).apply(_componentRoot, 1, 0);\n }\n }, (duration - displayEffectDuration));\n setTimeout(function () {\n (new org_qcobjects_effects_1.Fade()).apply(mainElement, 0, 1);\n mainElement.style.position = mainComponent._mainPosition;\n document.body.style.backgroundColor = component._bgcolor;\n if (_componentRoot.parentElement !== null) {\n _componentRoot.parentElement.remove();\n }\n }, duration);\n }\n SplashScreenHandler.executed = true;\n };\n return mainComponent.addComponentHelper(SplashScreenHandler.bind(mainComponent));\n });\n }\n _helper_.executed = true;\n }\n });\n };\n _helper_.executed = false;\n this.addComponentHelper(_helper_.bind(component));\n }\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.components.base\", [\n SplashScreenComponent\n ]);\n class VideoSplashScreenComponent extends SplashScreenComponent {\n constructor(o) {\n o.name = \"videosplashscreen\";\n super(o);\n this.cached = false;\n this.shadowed = true;\n this.tplsource = \"inline\";\n this.template = `\n \n
        \n
        \n \n \n
        \n
        \n\n `;\n }\n }\n class CubeSplashScreenComponent extends SplashScreenComponent {\n constructor(o) {\n o.name = \"cubesplashscreen\";\n super(o);\n this.cached = false;\n this.shadowed = true;\n this.tplsource = \"inline\";\n this.template = `\n \n\n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n\n `;\n }\n }\n (0, qcobjects_1.Package)(\"org.qcobjects.components.splashscreen\", [\n VideoSplashScreenComponent,\n CubeSplashScreenComponent\n ]);\n})(_top);\nconst SplashScreenComponent = _top.SplashScreenComponent;\nexports.SplashScreenComponent = SplashScreenComponent;\nconst VideoSplashScreenComponent = _top.VideoSplashScreenComponent;\nexports.VideoSplashScreenComponent = VideoSplashScreenComponent;\nconst CubeSplashScreenComponent = _top.CubeSplashScreenComponent;\nexports.CubeSplashScreenComponent = CubeSplashScreenComponent;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.controllers\", [\n class GenericController extends qcobjects_1.Controller {\n }\n ]);\n})();\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.controllers.grid\", [\n class GridController extends qcobjects_1.Controller {\n constructor(controller) {\n super(controller);\n this.rows = this.component.body.getAttribute(\"rows\");\n this.rows = (this.rows !== null) ? (this.rows) : (this.component.rows);\n this.cols = this.component.body.getAttribute(\"cols\");\n this.cols = (this.cols !== null) ? (this.cols) : (this.component.cols);\n }\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = (0, qcobjects_1._DOMCreateElement)(\"style\");\n const templateRows = \"auto \".repeat(this.rows);\n const templateCols = \"auto \".repeat(this.cols);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n _componentRoot?.append(s);\n if (component.shadowed) {\n _componentRoot?.host.classList.add(className);\n }\n else {\n (_componentRoot.classList).add(className);\n }\n }\n }\n done() {\n this.cssGrid();\n qcobjects_1.logger.debug(\"GridComponent built\");\n }\n },\n class DataGridController extends qcobjects_1.Controller {\n constructor(controller) {\n super(controller);\n this._componentRoot = (controller.component.shadowed) ? (controller.component.shadowRoot) : (controller.component.body);\n this.rows = controller.component.body.getAttribute(\"rows\");\n this.rows = (controller.rows !== null) ? (controller.rows) : (controller.component.rows);\n this.cols = controller.component.body.getAttribute(\"cols\");\n this.cols = (controller.cols !== null) ? (controller.cols) : (controller.component.cols);\n qcobjects_1.logger.debug(\"DataGridController INIT\");\n }\n getPageIndex(page, totalPage, totalElements) {\n page = (page > 0) ? (page - 1) : (0);\n return [totalElements * page / totalPage, (totalElements * page / totalPage) + totalElements / totalPage];\n }\n addSubcomponents() {\n this.component.subcomponents = [];\n if (typeof this._componentRoot !== \"undefined\") {\n this._componentRoot.innerHTML = \"\";\n }\n this.cssGrid();\n qcobjects_1.logger.debug((0, qcobjects_1._DataStringify)(this.component.data));\n try {\n const subcomponentClass = this.component.body.getAttribute(\"subcomponentClass\");\n if (subcomponentClass != null) {\n let offset;\n let limit;\n let pagesNumber;\n let list = [...this.component.data];\n let paginateIn = this.component.body.getAttribute(\"paginate-in\");\n let page;\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"client\") {\n page = this.component.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n if (page !== -1) {\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, list.length)[0];\n limit = this.getPageIndex(page, pagesNumber, list.length)[1];\n }\n else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list = list.slice(offset, limit);\n }\n else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list.map((record, dataIndex, list) => {\n const _ret_ = undefined;\n try {\n const _body = (0, qcobjects_1._DOMCreateElement)(\"component\");\n _body.setAttribute(\"name\", (0, qcobjects_1.ClassFactory)(subcomponentClass).name);\n _body.setAttribute(\"shadowed\", (0, qcobjects_1.ClassFactory)(subcomponentClass).shadowed);\n _body.setAttribute(\"cached\", (0, qcobjects_1.ClassFactory)(subcomponentClass).cached);\n record = Object.assign(record, {\n __dataIndex: dataIndex,\n __dataLength: list.length,\n __page: page,\n __totalPages: pagesNumber,\n __limit: limit,\n __offset: offset\n });\n const subcomponent = (0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(subcomponentClass), {\n name: \"item\",\n data: record,\n templateURI: (0, qcobjects_1.ComponentURI)({\n \"COMPONENTS_BASE_PATH\": qcobjects_1.CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": (0, qcobjects_1.ClassFactory)(subcomponentClass).name,\n \"TPLEXTENSION\": qcobjects_1.CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": (0, qcobjects_1.ClassFactory)(subcomponentClass).tplsource\n }),\n body: _body,\n template: (0, qcobjects_1.ClassFactory)(subcomponentClass).template\n });\n subcomponent.done = this.component.done.bind(subcomponent);\n try {\n if (subcomponent) {\n subcomponent.data.__dataIndex = dataIndex;\n if (Object.hasOwnProperty.call(this.component.data, \"length\")) {\n subcomponent.data.__dataLength = this.component.data.length;\n }\n qcobjects_1.logger.debug(\"adding subcomponent to body\");\n this._componentRoot?.append(subcomponent.body);\n try {\n this.component.subcomponents.push(subcomponent);\n }\n catch (e) {\n qcobjects_1.logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n }\n else {\n qcobjects_1.logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n }\n catch (e) {\n qcobjects_1.logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n }\n catch (e) {\n qcobjects_1.logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n return _ret_;\n });\n }\n else {\n qcobjects_1.logger.debug(\"NO SUBCOMPONENT CLASS IN COMPONENT\");\n }\n }\n catch (e) {\n qcobjects_1.logger.debug(\"No data for component\");\n }\n }\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = (0, qcobjects_1._DOMCreateElement)(\"style\");\n const templateRows = \"auto \".repeat(this.rows);\n const templateCols = \"auto \".repeat(this.cols);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n if (component.shadowed) {\n component.body.append(s);\n _componentRoot.host.classList.add(className);\n }\n else {\n _componentRoot?.append(s);\n _componentRoot.classList.add(className);\n }\n }\n }\n done() {\n const componentInstance = this.component;\n qcobjects_1.logger.debug(\"DataGridController DONE\");\n const serviceClass = this.component.body.getAttribute(\"serviceClass\");\n if (serviceClass != null) {\n let offset;\n let limit;\n let paginateIn = componentInstance.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"server\") {\n let page = componentInstance.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n let pagesNumber;\n if (page !== -1) {\n const serverDataCount = (this.component.body.getAttribute(\"server-data-count\") !== null) ? this.component.body.getAttribute(\"server-data-count\") : (1);\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0];\n limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1];\n // send params in jsonrpc 2.0 style\n componentInstance.serviceData = (typeof componentInstance.serviceData !== \"undefined\") ? (componentInstance.serviceData) : ({});\n componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== \"undefined\") ? (componentInstance.serviceData.params) : ({});\n componentInstance.serviceData.params.offset = offset;\n componentInstance.serviceData.params.limit = limit;\n }\n }\n (0, qcobjects_1.serviceLoader)((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(serviceClass), {\n data: componentInstance.serviceData\n }), false).then((successfulResponse) => {\n // This will show the service response as a plain text\n qcobjects_1.logger.debug(\"DONE SERVICE COMPONENT\");\n successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template);\n if (typeof successfulResponse.service.JSONresponse.result !== \"undefined\") {\n qcobjects_1.logger.debug((0, qcobjects_1._DataStringify)(successfulResponse.service.JSONresponse.result));\n componentInstance.data = successfulResponse.service.JSONresponse.result;\n }\n else {\n componentInstance.data = successfulResponse.service.JSONresponse;\n }\n this.addSubcomponents();\n }, (failedResponse) => {\n qcobjects_1.logger.debug(failedResponse);\n }).catch((e) => {\n qcobjects_1.logger.debug(\"Something went wrong when calling the service from: \" + serviceClass);\n qcobjects_1.logger.debug(e.message);\n });\n }\n }\n }\n ]);\n})();\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.controllers.list\", [\n class ListController extends qcobjects_1.Controller {\n constructor({ component, dependencies = [], valueField = undefined, labelField = undefined }) {\n super({ component, dependencies, valueField, labelField });\n this.component = component;\n this._componentRoot = (this.component.shadowed) ? (this.component.shadowRoot) : (this.component.body);\n this.labelField = this.component.body.getAttribute(\"label-field\");\n this.valueField = this.component.body.getAttribute(\"value-field\");\n this.rows = this.component.body.getAttribute(\"rows\");\n this.rows = (this.rows !== null) ? (this.rows) : (this.component.rows);\n this.cols = 1;\n qcobjects_1.logger.debug(\"ListController INIT\");\n }\n getPageIndex(page, totalPage, totalElements) {\n page = (page > 0) ? (page - 1) : (0);\n return [totalElements * page / totalPage, (totalElements * page / totalPage) + totalElements / totalPage];\n }\n addSubcomponents() {\n this.component.subcomponents = [];\n const layout = this.component.body.getAttribute(\"layout\");\n const basePath = qcobjects_1.CONFIG.get(\"listBasePath\", qcobjects_1.CONFIG.get(\"remoteSDKPath\", \"\"));\n let cssLayout = \"\";\n this.labelField = this.component.body.getAttribute(\"label-field\");\n this.valueField = this.component.body.getAttribute(\"value-field\");\n if (layout === \"horizontal\") {\n cssLayout = `@import url(\"${basePath}css/components/horizontal-list.css\");`;\n }\n else {\n cssLayout = `@import url(\"${basePath}css/components/list.css\");`;\n }\n if (typeof this._componentRoot !== \"undefined\") {\n this._componentRoot.innerHTML = `
          `;\n }\n qcobjects_1.logger.debug((0, qcobjects_1._DataStringify)(this.component.data));\n try {\n const subcomponentClass = this.component.body.getAttribute(\"subcomponentClass\");\n if (subcomponentClass != null) {\n let offset;\n let limit;\n let pagesNumber;\n let list = [...this.component.data];\n let paginateIn = this.component.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n let page;\n if (paginateIn === \"client\") {\n page = this.component.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n if (page !== -1) {\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, list.length)[0];\n limit = this.getPageIndex(page, pagesNumber, list.length)[1];\n }\n else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list = list.slice(offset, limit);\n }\n else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list.map((record, dataIndex) => {\n const _ret_ = undefined;\n try {\n const _body = (0, qcobjects_1._DOMCreateElement)(\"li\");\n record.label = record[this.labelField];\n record.value = record[this.valueField];\n const subcomponent = (0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(subcomponentClass), {\n name: \"list-item\",\n data: {\n label: record[this.labelField],\n value: record[this.valueField],\n __dataIndex: dataIndex,\n __page: page,\n __totalPages: pagesNumber,\n __limit: limit,\n __offset: offset\n },\n templateURI: (0, qcobjects_1.ComponentURI)({\n \"COMPONENTS_BASE_PATH\": qcobjects_1.CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": (0, qcobjects_1.ClassFactory)(subcomponentClass).name,\n \"TPLEXTENSION\": qcobjects_1.CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": (0, qcobjects_1.ClassFactory)(subcomponentClass).tplsource\n }),\n body: _body,\n template: (0, qcobjects_1.ClassFactory)(subcomponentClass).template\n });\n subcomponent.done = this.component.done.bind(subcomponent);\n try {\n if (subcomponent) {\n subcomponent.data.__dataIndex = dataIndex;\n if (Object.hasOwnProperty.call(this.component.data, \"length\")) {\n subcomponent.data.__dataLength = this.component.data.length;\n }\n qcobjects_1.logger.debug(\"adding subcomponent to body\");\n this._componentRoot.subelements(\"ul\").map(ul => ul.append(subcomponent));\n try {\n this.component.subcomponents.push(subcomponent);\n }\n catch (e) {\n qcobjects_1.logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n }\n else {\n qcobjects_1.logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n }\n catch (e) {\n qcobjects_1.logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n }\n catch (e) {\n qcobjects_1.logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n return _ret_;\n });\n }\n else {\n qcobjects_1.logger.debug(\"NO SUBCOMPONENT CLASS IN COMPONENT\");\n }\n }\n catch (e) {\n qcobjects_1.logger.debug(\"No data for component\");\n }\n }\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = (0, qcobjects_1._DOMCreateElement)(\"style\");\n const templateRows = \"auto \".repeat(this.rows);\n const templateCols = \"auto \".repeat(this.cols);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n _componentRoot.append(s);\n _componentRoot.classList.add(className);\n }\n }\n done() {\n this.cssGrid();\n const componentInstance = this.component;\n qcobjects_1.logger.debug(\"ListController DONE\");\n const serviceClass = this.component.body.getAttribute(\"serviceClass\");\n if (serviceClass != null) {\n let offset;\n let limit;\n let paginateIn = componentInstance.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"server\") {\n let page = componentInstance.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n let pagesNumber;\n if (page !== -1) {\n const serverDataCount = (this.component.body.getAttribute(\"server-data-count\") !== null) ? (this.component.body.getAttribute(\"server-data-count\")) : (1);\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0];\n limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1];\n // send params in jsonrpc 2.0 style\n componentInstance.serviceData = (typeof componentInstance.serviceData !== \"undefined\") ? (componentInstance.serviceData) : ({});\n componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== \"undefined\") ? (componentInstance.serviceData.params) : ({});\n componentInstance.serviceData.params.offset = offset;\n componentInstance.serviceData.params.limit = limit;\n }\n }\n (0, qcobjects_1.serviceLoader)((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(serviceClass), {\n data: componentInstance.serviceData\n }), false).then((successfulResponse) => {\n // This will show the service response as a plain text\n qcobjects_1.logger.debug(\"DONE SERVICE COMPONENT\");\n successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template);\n if (typeof successfulResponse.service.JSONresponse.result !== \"undefined\") {\n qcobjects_1.logger.debug((0, qcobjects_1._DataStringify)(successfulResponse.service.JSONresponse.result));\n componentInstance.data = successfulResponse.service.JSONresponse.result;\n }\n else {\n componentInstance.data = successfulResponse.service.JSONresponse;\n }\n this.addSubcomponents();\n }, (failedResponse) => {\n qcobjects_1.logger.debug(failedResponse);\n }).catch((e) => {\n qcobjects_1.logger.debug(\"Something went wrong when calling the service from: \" + serviceClass);\n qcobjects_1.logger.debug(e.message);\n });\n }\n }\n }\n ]);\n})();\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n(function (global) {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.controllers.slider\", [\n class SliderController extends qcobjects_1.Controller {\n constructor({ component, dependencies = [], duration = 7100, slideIndex = 0, interval = null, sliderHandlerName = null }) {\n super({ component, dependencies, duration, slideIndex, interval, sliderHandlerName });\n this.slideIndex = 0;\n this.duration = 7100;\n this.interval = null;\n this.sliderHandlerName = \"\";\n this.component = component;\n this._componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n this.sliderHandlerName = \"slider_\" + this.component.__instanceID.toString();\n global.set(this.sliderHandlerName, this);\n }\n stop() {\n if (this.interval != null) {\n clearInterval(this.interval);\n }\n }\n plusSlidesAndStop(n) {\n this.stop();\n this.plusSlides(n);\n }\n plusSlides(n) {\n this.showSlides(this.slideIndex += n);\n }\n currentSlide(n) {\n this.stop();\n this.showSlides(this.slideIndex = n);\n }\n automate() {\n this.interval = setInterval(() => {\n this.plusSlides(1);\n }, this.duration);\n }\n showSlides(n) {\n const slides = this._componentRoot?.subelements(\".qcoSlides\");\n const dots = this._componentRoot?.subelements(\".qcoSlider__dots--dot\");\n if (n > (slides.length - 1)) {\n this.slideIndex = 0;\n }\n if (n < 0) {\n this.slideIndex = 0;\n }\n slides.filter((slide, index) => { return index !== this.slideIndex; }).map((slide) => {\n return ((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(\"Fade\"), {})).apply(slide, 1, 0);\n });\n dots.filter((dot, index) => { return index !== this.slideIndex; }).map((dot) => {\n return dot.classList.remove(\"active\");\n });\n try {\n dots[this.slideIndex].classList.add(\"active\");\n }\n catch (e) {\n qcobjects_1.logger.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${e.message}`);\n }\n setTimeout(() => {\n slides.filter((slide, index) => { return index !== this.slideIndex; }).map((slide) => {\n slide.style.display = \"none\";\n return slide.style.display;\n });\n try {\n slides[this.slideIndex].style.display = \"block\";\n ((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(\"Fade\"), {})).apply(slides[this.slideIndex], 0, 1);\n }\n catch (e) {\n qcobjects_1.logger.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${e.message}`);\n }\n }, 700);\n }\n fillDots() {\n const slides = this._componentRoot?.subelements(\".qcoSlides\");\n slides.map((slide, index) => {\n const dotHTML = document.createElement(\"span\");\n const dotContent = ``;\n dotHTML.innerHTML = dotContent;\n return this._componentRoot?.subelements(\".qcoSlider__dots\")[0].append(dotHTML);\n });\n }\n done() {\n const slides = this._componentRoot?.subelements(\".qcoSlides\");\n slides.filter((slide, index) => { return index !== this.slideIndex; }).map((slide) => {\n slide.style.display = \"none\";\n return slide.style.display;\n });\n setTimeout(() => {\n this.fillDots();\n this.slideIndex = 0;\n this.showSlides(this.slideIndex);\n this.automate();\n }, 3000);\n }\n }\n ]);\n})((typeof module === \"object\" && typeof module.exports === \"object\") ? (module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})) : ((typeof global === \"object\") ? (global) : ((typeof window === \"object\") ? (window) : ({}))));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\nconst org_qcobjects_components_1 = require(\"./org.qcobjects.components\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.controllers.form\", [\n class FormValidations extends qcobjects_1.Controller {\n getDefault() {\n return function (fieldName, dataValue, element) {\n const _regex = {\n name: \"^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$\",\n email: \"^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$\"\n };\n const _pattern_ = (element.getAttribute(\"pattern\") || _regex[fieldName]);\n const pattern = new RegExp(_pattern_);\n return pattern.test(dataValue);\n };\n }\n },\n class FormController extends qcobjects_1.Controller {\n hasValidation(element) {\n const fieldName = element.getAttribute(\"data-field\");\n let _hasValidation = false;\n if (typeof this.validations !== \"undefined\"\n && Object.hasOwnProperty.call(this.validations, fieldName)) {\n _hasValidation = true;\n }\n return _hasValidation;\n }\n isInvalid(element) {\n let _isInvalid = false;\n const fieldName = element.getAttribute(\"data-field\");\n const dataValue = this.component.data[fieldName];\n const _execValidation = (fieldName, dataValue, element) => {\n return (typeof this.validations !== \"undefined\"\n && Object.hasOwnProperty.call(this.validations, fieldName)\n && this.validations[fieldName].call(null, fieldName, dataValue, element));\n };\n if (typeof this.validations !== \"undefined\" && (!_execValidation(fieldName, dataValue, element))) {\n _isInvalid = true;\n }\n return _isInvalid;\n }\n isValid(element) {\n return !this.isInvalid(element);\n }\n save() {\n if (this.serviceClass !== \"\") {\n location.href = this.formSettings.loadingRouting;\n (0, qcobjects_1.serviceLoader)((0, qcobjects_1.New)((0, qcobjects_1.ClassFactory)(this.serviceClass), {\n data: this.component.data\n }), false).then((successfulResponse) => {\n // This will show the service response as a plain text\n console.log(\"DONE SERVICE COMPONENT\");\n try {\n console.log(successfulResponse.service.JSONresponse);\n }\n catch (e) {\n // no json\n }\n location.href = this.formSettings.nextRouting;\n }, (failedResponse) => {\n qcobjects_1.logger.debug(failedResponse);\n location.href = this.formSettings.backRouting;\n });\n }\n else {\n qcobjects_1.logger.debug(\"No service name declared on serviceClass property\");\n }\n }\n formSaveTouchHandler() {\n qcobjects_1.logger.debug(\"Saving data...\");\n const _componentRoot_ = (this.component.shadowed) ? ((this.component?.shadowRoot).host) : (this.component.body);\n this.component.executeBindings();\n if (this.formValidatorModal != null) {\n const componentElementFields = _componentRoot_.subelements(\"*[data-field]\");\n const fieldsToValidate = componentElementFields.filter(f => this.hasValidation(f));\n const _labelledby = function (parentElement, element) {\n const _arialabelledby = (parentElement, element) => {\n return (element.getAttribute(\"aria-labelledby\") !== null) ? ((element.getAttribute(\"aria-labelledby\") || \"\").split(\" \").map(e => parentElement.subelements(`#${e}`).map(_e => _e.innerHTML)).join(\" \")) : (null);\n };\n return (_arialabelledby(parentElement, element)\n || element.getAttribute(\"aria-label\")\n || element.getAttribute(\"placeholder\")\n || element.getAttribute(\"name\")\n || element.getAttribute(\"data-field\"));\n };\n const _ariatitle = function (element) {\n return (element.getAttribute(\"title\") || element.getAttribute(\"aria-title\") || \"\");\n };\n const invalidFields = fieldsToValidate.filter(f => this.isInvalid(f));\n if (invalidFields.length > 0) {\n const validationMessage = `\n
          \n Please verify the following incorrect fields:\n
            \n
            \n ${invalidFields.map(element => \"
          • \" + _labelledby(_componentRoot_, element) + \"
            \" + _ariatitle(element) + \"
          • \").join(\"\")}\n
            \n
          \n
          \n`;\n this.formValidatorModal.body.subelements(\".validationMessage\")[0].innerHTML = validationMessage;\n this.formValidatorModal.modal();\n }\n else {\n this.save();\n }\n }\n else {\n qcobjects_1.logger.debug(\"Unable to find the modal validator...\");\n qcobjects_1.logger.debug(\"Saving data...\");\n this.save();\n }\n }\n constructor(o) {\n super(o);\n this.validations = [];\n this.serviceClass = \"\";\n this.formSettings = {\n backRouting: \"#\",\n loadingRouting: \"#loading\",\n nextRouting: \"#signupsuccessful\"\n };\n this.component = o.component;\n this.component = this.component.Cast(org_qcobjects_components_1.FormField);\n }\n done() {\n qcobjects_1.logger.debugEnabled = true;\n try {\n this.component.createBindingEvents();\n const modalBody = (0, qcobjects_1._DOMCreateElement)(\"div\");\n modalBody.className = \"modal_body\";\n this.formValidatorModal = (0, qcobjects_1.New)(org_qcobjects_components_1.ModalComponent, {\n body: modalBody,\n subcomponents: [],\n data: {\n content: \"
          \"\n }\n });\n (0, qcobjects_1.Tag)(\".modal_body\").map(e => document.body.removeChild(e));\n document.body.append(this.formValidatorModal);\n }\n catch (e) {\n qcobjects_1.logger.debug(\"Unable to create the modal\");\n }\n this.onpress(\".submit\", () => {\n this.formSaveTouchHandler();\n });\n }\n }\n ]);\n})();\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.controllers.swagger\", [\n class SwaggerUIController extends qcobjects_1.Controller {\n startSwaggerUI() {\n // Begin Swagger UI call region\n if (typeof SwaggerUIBundle !== \"undefined\") {\n /* eslint-disable no-undef */\n const ui = SwaggerUIBundle({\n url: qcobjects_1.CONFIG.get(\"swagger-ui-url\", \"https://petstore.swagger.io/v2/swagger.json\"),\n dom_id: \"#\" + qcobjects_1.CONFIG.get(\"swagger-ui-dom_id\", \"swagger-ui\"),\n deepLinking: true,\n presets: [\n SwaggerUIBundle.presets.apis,\n SwaggerUIStandalonePreset\n ],\n plugins: [\n SwaggerUIBundle.plugins.DownloadUrl\n ],\n layout: \"StandaloneLayout\"\n });\n // End Swagger UI call region\n window.ui = ui;\n }\n }\n done() {\n this.component.body.innerHTML = \"
          \";\n const swaggerUIPackagePath = qcobjects_1.CONFIG.get(\"swagger-ui-package-path\", \"node_modules/swagger-ui-dist/\");\n this.dependencies?.push((0, qcobjects_1.New)(qcobjects_1.SourceJS, {\n url: swaggerUIPackagePath + \"swagger-ui-standalone-preset.js\",\n external: qcobjects_1.CONFIG.get(\"swagger-ui-external\", false)\n }));\n this.dependencies?.push((0, qcobjects_1.New)(qcobjects_1.SourceCSS, {\n url: swaggerUIPackagePath + \"swagger-ui.css\",\n external: qcobjects_1.CONFIG.get(\"swagger-ui-external\", false)\n }));\n this.dependencies?.push((0, qcobjects_1.New)(qcobjects_1.SourceJS, {\n url: swaggerUIPackagePath + \"swagger-ui-bundle.js\",\n external: qcobjects_1.CONFIG.get(\"swagger-ui-external\", false),\n done: () => {\n this.startSwaggerUI();\n }\n }));\n }\n }\n ]);\n})();\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.modal.controllers\", [\n class ModalController extends qcobjects_1.Controller {\n done() {\n const component = this.component;\n component.body.innerHTML = component.body.innerHTML.replace(\"/{{content}}/g\", component.submodal.template);\n }\n }\n ]);\n})();\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.views\", [\n class GridView extends qcobjects_1.View {\n }\n ]);\n})();\n", "/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\n(function () {\n (0, qcobjects_1.Package)(\"org.qcobjects.tools.canvas\", [\n class CanvasTool extends qcobjects_1.InheritClass {\n drawImageFilled(img, canvas, zoom = 1, px = 0, py = 0) {\n // get the scale\n let scale = Math.max(canvas.width / img.width, canvas.height / img.height);\n scale = scale * zoom;\n // get the top left position of the image\n const x = (canvas.width / 2) - (img.width / 2) * scale;\n const y = (canvas.height / 2) - (img.height / 2) * scale;\n const ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(img, (px + x), (py + y), img.width * scale, img.height * scale);\n }\n getImageResized(img, width, height, resizedImage, zoom = 1, px = 0, py = 0) {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n canvas.style.width = width.toString();\n canvas.style.height = height.toString();\n this.drawImageFilled(img, canvas, zoom, px, py);\n resizedImage.src = canvas.toDataURL(\"image/png\");\n return canvas;\n }\n }\n ]);\n})();\n", "/* eslint-disable array-callback-return */\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\nconst org_qcobjects_effects_1 = require(\"./org.qcobjects.effects\");\n(function () {\n (0, qcobjects_1.Package)(\"org.qcobjects.tools.layouts\", [\n class BasicLayout extends qcobjects_1.InheritClass {\n constructor({ component = null, dependencies = [] }) {\n super({ component, dependencies });\n this.dependencies = [];\n }\n load() {\n this.dependencies.push((0, qcobjects_1.New)(qcobjects_1.SourceCSS, {\n external: !(qcobjects_1.CONFIG.get(\"useLocalSDK\", false)),\n url: (qcobjects_1.CONFIG.get(\"useLocalSDK\", false)) ? (\"css/basic-layout.css\") : (qcobjects_1.CONFIG.get(\"remoteSDKPath\", false) + \"css/basic-layout.css\")\n }));\n }\n coloredBorder() {\n /*\n * A helper function to visualize the layout borders\n * Usage: BasicLayout.coloredBorder()\n */\n setTimeout(function () {\n (0, qcobjects_1.Tag)(\"nav\").map((element) => { element.style.border = \"20px solid #3333\"; });\n (0, qcobjects_1.Tag)(\"nav\").map((element) => { element.style.backgroundColor = \"#129999\"; });\n (0, qcobjects_1.Tag)(\"component>footer\").map((element) => { element.style.background = \"#876\"; });\n (0, qcobjects_1.Tag)(\"component>div\").map((element) => { element.style.border = \"3px dashed #fff\"; });\n (0, qcobjects_1.Tag)(\"component>section\").map((element) => { element.style.border = \"3px solid #000\"; });\n (0, qcobjects_1.Tag)(\"component>section\").map((element) => { element.style.backgroundColor = \"#fffaaa\"; });\n (0, qcobjects_1.Tag)(\"component>article\").map((element) => { element.style.border = \"3px dotted #000\"; });\n (0, qcobjects_1.Tag)(\"component>header\").map((element) => { element.style.background = \"#789\"; });\n (0, qcobjects_1.Tag)(\"component>footer\").map((element) => { element.style.background = \"#876\"; });\n (0, qcobjects_1.Tag)(\"component>article:nth-child(1)\").map((element) => { element.style.border = \"1px solid #444\"; });\n (0, qcobjects_1.Tag)(\"component>article:nth-child(1)\").map((element) => { element.style.backgroundColor = \"#555aaa\"; });\n (0, qcobjects_1.Tag)(\"component>article:nth-child(2)\").map((element) => { element.style.backgroundColor = \"#aaa333\"; });\n (0, qcobjects_1.Tag)(\"component>article:nth-child(3)\").map((element) => { element.style.backgroundColor = \"#54da82\"; });\n (0, qcobjects_1.Tag)(\"*\").map((element) => { element.style.color = \"#fff\"; });\n (0, qcobjects_1.Tag)(\"component>article\").map((element) => org_qcobjects_effects_1.Fade.apply(element, 0, 1));\n (0, qcobjects_1.Tag)(\"component>footer\").map((element) => org_qcobjects_effects_1.Fade.apply(element, 0, 1));\n (0, qcobjects_1.Tag)(\"component>header\").map((element) => org_qcobjects_effects_1.Fade.apply(element, 0, 1));\n (0, qcobjects_1.Tag)(\"nav\").map((element) => { element.style.display = \"block\"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); org_qcobjects_effects_1.MoveXInFromLeft.apply(element); });\n (0, qcobjects_1.Tag)(\"component>article\").map((element) => { element.style.display = \"block\"; element.style.height = element.offsetParent?.scrollHeight.toString() || element.clientHeight.toString(); org_qcobjects_effects_1.MoveYInFromBottom.apply(element); });\n (0, qcobjects_1.Tag)(\"component>article:nth-child(2)\").map((element) => { element.style.display = \"block\"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); org_qcobjects_effects_1.MoveXInFromRight.apply(element); });\n }, 300);\n }\n }\n ]);\n})();\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionUserToken = void 0;\nconst qcobjects_1 = require(\"qcobjects\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\nconst _top = (typeof module === \"object\" && typeof module.exports === \"object\") ? (module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})) : ((typeof global === \"object\") ? (global) : ((typeof window === \"object\") ? (window) : ({})));\n(function (global) {\n \"use strict\";\n class SessionUserToken extends qcobjects_1.InheritClass {\n constructor(o) {\n super(o);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const __instance__ = this;\n this.__cache__ = new qcobjects_1.ComplexStorageCache({\n index: __instance__.__instanceID.toString(),\n load() {\n let __token__;\n if (typeof navigator !== \"undefined\" && typeof origin !== \"undefined\") {\n __token__ = qcobjects_1._Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin);\n }\n else {\n __token__ = qcobjects_1._Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, qcobjects_1.CONFIG.get(\"domain\", \"localhost\"));\n }\n SessionUserToken.user = {\n priority: __instance__.__instanceID.toString(),\n token: __token__\n };\n return SessionUserToken.user;\n },\n alternate(cacheController) {\n SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); // setting dataObject with the cached value \n }\n });\n }\n static generateIndex(s) {\n return (typeof Buffer !== \"undefined\") ? (Buffer.from(s, \"ascii\").toString(\"base64\")) : (btoa(s));\n }\n getGlobalUser(...args) {\n const username = [args].join(\"|\");\n const __index__ = \"userToken_\" + SessionUserToken.generateIndex(username);\n if (typeof global.get(__index__) === \"undefined\" || global.get(__index__) === null) {\n global.set(__index__, (0, qcobjects_1.New)(SessionUserToken, {\n username\n }));\n }\n SessionUserToken.user = global.get(__index__).user;\n return global.get(__index__).user;\n }\n getGlobalUserToken(...args) {\n return this.getGlobalUser(args).token;\n }\n getGlobalUserId(...args) {\n return this.getGlobalUser(args).id;\n }\n getGlobalUserPriority(...args) {\n return this.getGlobalUser(args).priority;\n }\n getLoginCredentialsToken(username, password) {\n return qcobjects_1._Crypt.encrypt(`${username}${password}`, this.getGlobalUserToken(username));\n }\n closeGlobalSession(...args) {\n this.getGlobalUser(args);\n const username = [args].join(\"|\");\n const __index__ = \"userToken_\" + SessionUserToken.generateIndex(username);\n if (typeof global.get(__index__) !== \"undefined\") {\n global.get(__index__).__cache__.clear();\n global.set(__index__, null);\n SessionUserToken.user = {};\n }\n }\n }\n SessionUserToken.user = {};\n (0, qcobjects_1.Package)(\"org.qcobjects.cloud.auth.session.usertoken\", [\n SessionUserToken\n ]);\n})(_top);\nconst SessionUserToken = _top.SessionUserToken;\nexports.SessionUserToken = SessionUserToken;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\nconst org_qcobjects_cloud_auth_session_usertoken_1 = require(\"./org.qcobjects.cloud.auth.session.usertoken\");\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n(function () {\n \"use strict\";\n (0, qcobjects_1.Package)(\"org.qcobjects.cloud.auth.session.data\", [\n class SessionData extends qcobjects_1.InheritClass {\n constructor() {\n super(...arguments);\n this.__session_container__ = null;\n }\n /**\n * Sets the session container\n *\n * @param {*} sessionContainer1, sessionContainer2, ...\n *\n */\n setSessionContainer() {\n // eslint-disable-next-line prefer-rest-params\n this.__session_container__ = [...arguments];\n }\n /**\n * Gets the session container\n *\n * @return {*} sessionContainer\n */\n getSessionContainer() {\n if (typeof this.__session_container__ === \"undefined\" || this.__session_container__ === null) {\n throw new Error(\"You need to set a session container first: sessionData.setSessionContainer(...arguments)\");\n }\n return this.__session_container__;\n }\n /**\n * Gets the session data\n *\n * @return {*} sessionData\n */\n getSessionData(...args) {\n // eslint-disable-next-line prefer-rest-params\n const s = sessionStorage.getItem(`${this.index(args)}`);\n let sessionData;\n if (s !== null) {\n sessionData = JSON.parse(s);\n }\n if (typeof sessionData === \"undefined\" || sessionData === null) {\n sessionData = {};\n }\n return sessionData;\n }\n /**\n * Returns an index of the session\n *\n * @param {string} valueForIndex\n * @return {string} index\n * @example sessionInstance.index(\"me@email.com\", \"myusername\")\n *\n */\n index(...args) {\n if (typeof org_qcobjects_cloud_auth_session_usertoken_1.SessionUserToken === \"undefined\") {\n throw new Error(\"You need to import SessionUserToken first: Import (\\\"org.qcobjects.cloud.auth.session.usertoken\\\")\");\n }\n return `session_${btoa(org_qcobjects_cloud_auth_session_usertoken_1.SessionUserToken.getGlobalUserToken(args))}`;\n }\n /**\n * Saves the session instance\n *\n */\n save(...args) {\n const s = (0, qcobjects_1._DataStringify)(this.sessionData);\n sessionStorage.setItem(`${this.index(args)}`, s);\n }\n /**\n *\n * Gets the session value\n *\n * @param {*} name\n * @param {*} defaultValue\n * @return {*}\n */\n get(name, defaultValue) {\n const sessionData = this.getSessionData(this.getSessionContainer());\n return (typeof sessionData[name] !== \"undefined\") ? (sessionData[name]) : (defaultValue);\n }\n /**\n *\n * Sets the session value\n *\n * @param {*} name\n * @param {*} value\n */\n set(name, value) {\n const sessionContainer = this.getSessionContainer();\n const sessionData = this.getSessionData(sessionContainer);\n this.sessionData = sessionData;\n this.sessionData[name] = value;\n this.save(sessionContainer);\n }\n }\n ]);\n})();\n", "\"use strict\";\n/* eslint-disable @typescript-eslint/no-empty-function */\n/**\n * QCObjects SDK 2.4\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qcobjects_1 = require(\"qcobjects\");\nconst _top = (typeof module === \"object\" && typeof module.exports === \"object\") ? (module.exports = (typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {})) : ((typeof global === \"object\") ? (global) : ((typeof window === \"object\") ? (window) : ({})));\n// eslint-disable-next-line camelcase\n(function __qcobjects_sdk__(_top) {\n \"use strict\";\n if (typeof Object.defineProperty !== \"undefined\" && typeof _top !== \"undefined\") {\n try {\n Object.defineProperty(_top, \"__qcobjects_sdk__\", {\n enumerable: true,\n configurable: false,\n writable: false,\n // eslint-disable-next-line camelcase\n value: __qcobjects_sdk__,\n });\n }\n catch (e) {\n if (typeof _top.__qcobjects_sdk__ !== \"undefined\") {\n _top.__qcobjects_sdk__.__loaded__ = true;\n }\n }\n }\n if (typeof _top.__qcobjects_sdk__.__loaded__ === \"undefined\") {\n _top.__qcobjects_sdk__.__loaded__ = true;\n if (typeof _top === \"undefined\") {\n throw Error(\"Top context empty: It should either global, module or window\");\n }\n const __start__ = qcobjects_1.GlobalSettings.__start__.bind(_top);\n let _imports_ = [];\n // non-browsers environment // esbuild compatible\n _imports_ = [\n new Promise((resolve) => {\n require(\"./js/org.qcobjects.i18n_messages\");\n require(\"./js/org.qcobjects.models\");\n require(\"./js/org.qcobjects.components\");\n require(\"./js/org.qcobjects.components.grid\");\n require(\"./js/org.qcobjects.components.list\");\n require(\"./js/org.qcobjects.components.slider\");\n require(\"./js/org.qcobjects.components.notifications\");\n require(\"./js/org.qcobjects.components.splashscreen\");\n require(\"./js/org.qcobjects.controllers\");\n require(\"./js/org.qcobjects.controllers.grid\");\n require(\"./js/org.qcobjects.controllers.list\");\n require(\"./js/org.qcobjects.controllers.slider\");\n require(\"./js/org.qcobjects.controllers.form\");\n require(\"./js/org.qcobjects.controllers.swagger\");\n require(\"./js/org.qcobjects.effects\");\n require(\"./js/org.qcobjects.modal.controllers\");\n require(\"./js/org.qcobjects.views\");\n require(\"./js/org.qcobjects.tools.canvas\");\n require(\"./js/org.qcobjects.tools.layouts\");\n require(\"./js/org.qcobjects.cloud.auth.session.usertoken\");\n require(\"./js/org.qcobjects.cloud.auth.session.data\");\n resolve();\n })\n ];\n _top._sdk_ = Promise.all(_imports_).then(() => {\n qcobjects_1.CONFIG.set(\"useSDK\", true);\n __start__();\n });\n }\n})(_top);\nexports.default = _top;\n"], - "mappings": "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", - "names": ["require_QCObjects_SDK", "__commonJSMin", "exports", "module", "__name", "__qcobjects_sdk__", "_top", "global", "isBrowser", "isNodeCommonJS", "remoteImportsPath", "relativeImportPath", "external", "elementName", "_ret_", "_imports_", "_relative_path_", "__start__", "require_src", "__commonJSMin", "exports", "module", "sdk", "require_QCObjects", "__commonJSMin", "exports", "module", "__name", "__qcobjects__", "_top", "Ready", "e", "isBrowser", "_QC_READY_LISTENERS", "global", "isDeno", "isNodeCommonJS", "deno_require", "_require_", "__require", "_protected_code_", "_", "__oldtoString", "_protected_symbols", "_ret_", "_methods_", "_m", "i", "regex", "matches", "match", "_DOMCreateElement", "elementName", "fs", "_DataStringify", "data", "getCircularReplacer", "seen", "_level", "key", "value", "_LegacyCopy", "_subelements", "selector", "_domain_", "_basePath_", "_tag_filter_", "_basePath", "baseURI", "process", "_f", "_p", "response", "message", "_secretKey", "__secretKey", "is_phonegap", "asyncLoad", "callback", "args", "asyncCallback", "_fireAsyncLoad", "fc", "Logger", "color", "logger", "Base64", "t", "n", "r", "s", "o", "u", "a", "f", "c1", "c2", "c3", "waitUntil", "func", "exp", "_waitUntil", "maxWaitCycles", "_w", "_t", "localStorage", "name", "ComplexStorageCache", "params", "object", "load", "alternate", "cachedObjectID", "cachedResponse", "cachedNewResponse", "alternateResponse", "retrievedObject", "k", "c", "supportsPassive", "opts", "captureFalse", "tag", "_oo", "_tags", "_tt", "_Cast", "__instanceID", "_Object_Create", "hasOwn", "O", "QCObjects", "obj", "Properties", "prop", "target", "varArgs", "to", "index", "nextSource", "nextKey", "__is_raw_class__", "o_c", "_value_", "_QC_CLASSES", "_QC_PACKAGES", "_QC_PACKAGES_IMPORTED", "ObjectName", "ret", "obj_source", "obj_dest", "v", "_CastProps", "__is__forbidden_name__", "__getType__", "is_a", "typeName", "isQCObjects_Class", "isQCObjects_Object", "__make_global__", "__register_class__", "_class_", "__namespace", "RegisterClass", "Class", "_types_", "type", "definition", "_o_", "__publicField", "self", "m", "__class__", "__classType", "__hierarchy__proto__", "__hierarchy", "_css", "__instance__", "child", "tags", "j", "ClassFactory", "className", "_classFactory", "packageName", "_className", "_package", "Package", "packageClasses", "classFactory", "content", "_self", "_appendVDOM", "doc", "element", "_super_", "classMethodName", "New", "Export", "findPackageNodePath", "packagename", "sdkPath", "sdkPaths", "p", "string", "result", "char", "keychar", "crypt", "_CryptObject", "_DecryptObject", "shortCode", "length", "code1", "code2", "o1", "uniqueId", "_Processor", "_proc_", "component", "processorName", "processorHandler", "template", "funcName", "procesorMatch", "match0", "_k", "Processor", "arg", "_ConfigSettings", "_config_settings", "ConfigSettings", "_conf", "config", "_protectedEnc", "_protectedConf", "_default", "_value", "namespace", "classes", "_c1", "NamespaceRef", "b", "Import", "ready", "external", "_promise_import_", "resolve", "reject", "allPackagesImported", "cp", "readyImported", "_imported_", "s1", "standardNodePath", "packageAbsoluteName", "jsNodePath", "_o", "effectArguments", "effectClass", "Tag", "tagname", "innerHTML", "addedKeys", "_i", "_Ready", "_execReady", "_ready_listener_", "_r", "DDO", "instance", "fget", "fset", "ddoInstance", "val", "is_ddo", "DefaultTemplateHandler", "templateInstance", "parsedAssignmentText", "__routing_params__", "routing", "routingPath", "standardRoutingPath", "__valid_routings__", "routings", "__valid_routing_way__", "validRoutingWays", "routingWay", "_buildComponentFromElement_", "__parent__", "__shadowed_not_set", "__tplsource_attr_not_set", "shadowed", "__cached_not_set", "cached", "tplextension", "_componentName", "_componentClassName", "__componentClassName", "__classDefinition", "__tplsource_prop_set", "tplsource", "componentURI", "ComponentURI", "__create_component_instance_", "__shadowed", "__definition", "newComponent", "_buildComponentsFromElements_", "elements", "componentsBuiltWith", "templateURI", "url", "method", "reload", "_body", "__promise__", "__shadowRoot", "body", "shadowRoot", "splashScreenComponent", "controller", "view", "serviceResponse", "standardResponse", "__routing_path__", "accumulator", "colData", "__serviceClass", "_serviceClassName", "__enable_service_class__", "_response_to_data_", "_response_to_template_", "serviceInstance", "serviceLoader", "request", "service", "rejectedResponse", "_component_", "_Controller", "controllerName", "effectClassName", "applyEffectTo", "viewName", "_View", "componentDone", "tagFilter", "elementList", "rebuildObjects", "error", "_feedComponent_InBrowser", "container", "tmp_shadowContainer", "shadowContainer", "qs", "_feedComponent_InNode", "_component", "_promise", "componentLoader", "oClass", "componentClass", "_route_promise_", "isValidInstance", "__route__", "componentList", "_componentNames_", "_promises_", "rc", "_promise_", "_rc_", "err", "elem", "componentBody", "routingNode", "attributeNames", "attributeName", "_parsedAssignmentText", "templateHandlerName", "templateHandlerClass", "selfData", "_componentRoot", "_imgLazyLoaded", "_lazyLoadImages", "image", "observer", "items", "item", "img", "_Effect", "_applyEffect_", "lang1", "lang2", "i18n", "callback_i18n", "messages", "_innerHTML", "componentHelper", "__component_helpers__", "_component_helper_", "__c__", "popStateEvent", "dependencies", "attrName", "subelementSelector", "handler", "param", "_async", "_componentLoaderInBrowser", "_feedComponent_", "xhr", "_componentLoaded", "successStatus", "is_file", "cache", "text", "_directLoad", "cacheController", "_componentLoaderInNode", "responseText", "_serviceLoaderInBrowser", "xhrasync", "header", "_serviceLoaderInNode", "URL", "serviceURL", "req", "captureEvents", "dataXML", "client", "buffer", "responseHeaders", "flags", "chunk", "requestOptions", "http2", "http", "https", "_req_", "_serviceLoaderMockup", "_serviceLoaderLocal", "d", "_ComponentWidget_", "componentWidget", "componentName", "__enabled__atributes__", "data_attributenames", "_attribute_name_", "RegisterWidget", "widgetName", "RegisterWidgets", "widgetList", "domain", "basePath", "stream", "microservice", "requestMethod", "supportedMethods", "allow_origins", "allow_credentials", "allow_methods", "allow_headers", "formData", "context", "properties", "__to_number", "prev", "current", "propName", "sortAsc", "sort_function", "_length", "_fillValue", "x_func", "x", "y_func", "y", "start", "stop", "step", "__instance", "h", "w", "square", "source", "_index", "_pname", "timing", "draw", "duration", "animate", "time", "timeFraction", "progress", "alphaFrom", "alphaTo", "angleFrom", "angleTo", "radiusFrom", "radiusTo", "scaleFrom", "scaleTo", "_transition_", "componentRoot", "eff", "__effectClass__", "effectObj", "effectClassMethod", "intervalInterceptor", "timer", "thread", "elapsed", "positive", "negative", "toggle", "mapper", "componentInstance", "valueName", "globalValue", "componentValue", "dataValue", "list", "listItems", "dataItems", "layout", "layoutname", "cssfile", "layout_portrait", "layout_landscape", "layout_code", "k1", "k2", "quick_component", "repeat", "GlobalSettings", "__load__serviceWorker", "registration", "_buildComponents", "_get_packages_names", "_packages", "_keys", "_classesList", "_packageClass", "_package_element", "_class_element", "remoteImportsPath", "tryImportingSDK", "sdkName", "sdk", "lastKnownScrollPosition", "ticking", "scrollHeight", "scrollWidth", "scrollDispatcher", "event", "percentY", "percentX", "scrollPercentEventEvent", "secondaryEventName", "__valid_scrolls__", "pY", "secondaryCustomEvent", "__freeze__", "require_src", "__commonJSMin", "exports", "module", "QCObjects", "require_org_qcobjects_i18n_messages", "__commonJSMin", "exports", "module", "qcobjects_1", "global", "i18n_messages", "messages", "i18n_packagename", "__name", "require_org_qcobjects_models", "__commonJSMin", "exports", "qcobjects_1", "__name", "require_org_qcobjects_effects", "__commonJSMin", "exports", "module", "qcobjects_1", "_top", "Fade", "element", "alphaFrom", "alphaTo", "da", "timeFraction", "progress", "alpha", "__name", "Move", "xfrom", "yfrom", "xto", "yto", "dx", "dy", "y", "x", "MoveXInFromRight", "MoveXInFromLeft", "MoveYInFromBottom", "MoveYInFromTop", "RotateX", "angleFrom", "angleTo", "angle", "RotateY", "RotateZ", "Rotate", "Radius", "radiusFrom", "radiusTo", "dr", "radius", "Resize", "scaleFrom", "scaleTo", "ds", "scale", "WipeLeft", "WipeRight", "WipeUp", "WipeDown", "ModalFade", "ModalMoveDown", "ModalMoveUp", "require_org_qcobjects_components", "__commonJSMin", "exports", "module", "qcobjects_1", "org_qcobjects_effects_1", "_top", "global", "FormField", "o", "_objList", "_datak", "_obj", "_datamodel", "standardResponse", "_ret_", "__name", "ShadowedComponent", "ButtonField", "InputField", "TextField", "EmailField", "ModalEnclosureComponent", "ModalComponent", "submodal", "modalId", "modal", "modalcontent", "closebtn", "SwaggerUIComponent", "require_org_qcobjects_components_grid", "__commonJSMin", "exports", "module", "qcobjects_1", "_top", "global", "GridItemComponent", "__name", "GridComponent", "o", "subcomponentClass", "require_org_qcobjects_components_list", "__commonJSMin", "exports", "module", "qcobjects_1", "_top", "global", "ListItemComponent", "o", "__name", "ListComponent", "require_org_qcobjects_components_slider", "__commonJSMin", "exports", "qcobjects_1", "__name", "o", "subcomponentClass", "require_org_qcobjects_components_notifications", "__commonJSMin", "exports", "qcobjects_1", "org_qcobjects_effects_1", "NotificationComponent", "o", "element", "_display_", "__name", "appearEffect", "disappearEffect", "message", "c", "_componentRoot", "require_org_qcobjects_components_splashscreen", "__commonJSMin", "exports", "module", "qcobjects_1", "org_qcobjects_effects_1", "_top", "__name", "global", "SplashScreenComponent", "component", "isBrowser", "isStartURL", "_enabled_", "duration", "_helper_", "_componentRoot", "c", "mainComponent", "SplashScreenHandler", "mainElement", "slotlogo", "VideoSplashScreenComponent", "o", "CubeSplashScreenComponent", "require_org_qcobjects_controllers", "__commonJSMin", "exports", "qcobjects_1", "__name", "require_org_qcobjects_controllers_grid", "__commonJSMin", "exports", "qcobjects_1", "__name", "controller", "component", "_componentRoot", "s", "templateRows", "templateCols", "className", "page", "totalPage", "totalElements", "subcomponentClass", "offset", "limit", "pagesNumber", "list", "paginateIn", "record", "dataIndex", "_body", "subcomponent", "componentInstance", "serviceClass", "serverDataCount", "successfulResponse", "failedResponse", "e", "require_org_qcobjects_controllers_list", "__commonJSMin", "exports", "qcobjects_1", "__name", "component", "dependencies", "valueField", "labelField", "page", "totalPage", "totalElements", "layout", "basePath", "cssLayout", "subcomponentClass", "offset", "limit", "pagesNumber", "list", "paginateIn", "record", "dataIndex", "_body", "subcomponent", "ul", "_componentRoot", "s", "templateRows", "templateCols", "className", "componentInstance", "serviceClass", "serverDataCount", "successfulResponse", "failedResponse", "e", "require_org_qcobjects_controllers_slider", "__commonJSMin", "exports", "module", "qcobjects_1", "global", "__name", "component", "dependencies", "duration", "slideIndex", "interval", "sliderHandlerName", "n", "slides", "dots", "slide", "index", "dot", "e", "dotHTML", "dotContent", "require_org_qcobjects_controllers_form", "__commonJSMin", "exports", "qcobjects_1", "org_qcobjects_components_1", "__name", "fieldName", "dataValue", "element", "_regex", "_pattern_", "_hasValidation", "_isInvalid", "_execValidation", "successfulResponse", "failedResponse", "_componentRoot_", "fieldsToValidate", "f", "_labelledby", "parentElement", "e", "_e", "_ariatitle", "invalidFields", "validationMessage", "o", "modalBody", "require_org_qcobjects_controllers_swagger", "__commonJSMin", "exports", "qcobjects_1", "__name", "ui", "swaggerUIPackagePath", "require_org_qcobjects_modal_controllers", "__commonJSMin", "exports", "qcobjects_1", "__name", "component", "require_org_qcobjects_views", "__commonJSMin", "exports", "qcobjects_1", "__name", "require_org_qcobjects_tools_canvas", "__commonJSMin", "exports", "qcobjects_1", "__name", "img", "canvas", "zoom", "px", "py", "scale", "x", "y", "width", "height", "resizedImage", "require_org_qcobjects_tools_layouts", "__commonJSMin", "exports", "qcobjects_1", "org_qcobjects_effects_1", "__name", "component", "dependencies", "element", "require_org_qcobjects_cloud_auth_session_usertoken", "__commonJSMin", "exports", "module", "qcobjects_1", "_top", "global", "SessionUserToken", "o", "__instance__", "__token__", "cacheController", "s", "args", "username", "__index__", "password", "__name", "require_org_qcobjects_cloud_auth_session_data", "__commonJSMin", "exports", "qcobjects_1", "org_qcobjects_cloud_auth_session_usertoken_1", "__name", "args", "s", "sessionData", "name", "defaultValue", "value", "sessionContainer", "require_QCObjects_SDK", "__commonJSMin", "exports", "module", "qcobjects_1", "_top", "__name", "__qcobjects_sdk__", "__start__", "_imports_", "resolve"] -} diff --git a/public/browser/index.js b/public/browser/index.js new file mode 100644 index 0000000..5dbee2e --- /dev/null +++ b/public/browser/index.js @@ -0,0 +1,2984 @@ +"use strict"; +var global = (() => { + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); + var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { + get: (a, b) => (typeof require !== "undefined" ? require : a)[b] + }) : x)(function(x) { + if (typeof require !== "undefined") return require.apply(this, arguments); + throw Error('Dynamic require of "' + x + '" is not supported'); + }); + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + + // src/index.ts + var src_exports = {}; + __export(src_exports, { + default: () => src_default + }); + + // src/QCObjects-SDK.ts + var QCObjects_SDK_exports = {}; + __export(QCObjects_SDK_exports, { + BasicLayout: () => BasicLayout, + ButtonField: () => ButtonField, + CanvasTool: () => CanvasTool, + Contact: () => Contact, + CubeSplashScreenComponent: () => CubeSplashScreenComponent, + DataGridController: () => DataGridController, + EmailField: () => EmailField, + Fade: () => Fade, + FormController: () => FormController, + FormField: () => FormField, + FormValidations: () => FormValidations, + GenericController: () => GenericController, + GridComponent: () => GridComponent, + GridController: () => GridController, + GridItemComponent: () => GridItemComponent, + GridView: () => GridView, + InputField: () => InputField, + ListComponent: () => ListComponent, + ListController: () => ListController, + ListItemComponent: () => ListItemComponent, + ModalComponent: () => ModalComponent, + ModalController: () => ModalController, + ModalEnclosureComponent: () => ModalEnclosureComponent, + ModalFade: () => ModalFade, + ModalMoveDown: () => ModalMoveDown, + ModalMoveUp: () => ModalMoveUp, + Move: () => Move, + MoveXInFromLeft: () => MoveXInFromLeft, + MoveXInFromRight: () => MoveXInFromRight, + MoveYInFromBottom: () => MoveYInFromBottom, + MoveYInFromTop: () => MoveYInFromTop, + NotificationComponent: () => NotificationComponent, + Radius: () => Radius, + Resize: () => Resize, + Rotate: () => Rotate, + RotateX: () => RotateX, + RotateY: () => RotateY, + RotateZ: () => RotateZ, + SessionData: () => SessionData, + SessionUserToken: () => SessionUserToken, + ShadowedComponent: () => ShadowedComponent, + SlideItemComponent: () => SlideItemComponent, + SlideListComponent: () => SlideListComponent, + SliderComponent: () => SliderComponent, + SliderController: () => SliderController, + SplashScreenComponent: () => SplashScreenComponent, + SwaggerUIComponent: () => SwaggerUIComponent, + SwaggerUIController: () => SwaggerUIController, + TextField: () => TextField, + VideoSplashScreenComponent: () => VideoSplashScreenComponent, + WipeDown: () => WipeDown, + WipeLeft: () => WipeLeft, + WipeRight: () => WipeRight, + WipeUp: () => WipeUp, + default: () => QCObjects_SDK_default, + i18n_messages: () => i18n_messages + }); + var import_qcobjects25 = __require("qcobjects"); + + // src/js/org.qcobjects.i18n_messages.ts + var import_qcobjects = __require("qcobjects"); + var i18n_messages = class extends import_qcobjects.InheritClass { + static { + __name(this, "i18n_messages"); + } + constructor({ + messages = [] + }) { + super({ + messages + }); + if (import_qcobjects.CONFIG.get("use_i18n", false)) { + import_qcobjects.CONFIG.set("lang", "en"); + if (!import_qcobjects.global.get("i18n")) { + import_qcobjects.global.set("i18n", { + messages + }); + } else { + import_qcobjects.global.set("i18n", { + messages: import_qcobjects.global.get("i18n").messages.concat(messages) + }); + } + } + } + _load_i18n_packages_() { + return import_qcobjects.CONFIG.get("i18n_languages", []).map((i18n_packagename) => { + (0, import_qcobjects.Import)(`org.quickcorp.i18n_messages.${i18n_packagename}`); + }); + } + }; + (0, import_qcobjects.Package)("org.qcobjects.i18n_messages", [ + i18n_messages + ]); + new i18n_messages({})._load_i18n_packages_(); + + // src/js/org.qcobjects.models.ts + var import_qcobjects2 = __require("qcobjects"); + var Contact = class extends import_qcobjects2.VO { + static { + __name(this, "Contact"); + } + }; + (0, import_qcobjects2.Package)("org.qcobjects.models", [ + Contact + ]); + + // src/js/org.qcobjects.components.ts + var import_qcobjects7 = __require("qcobjects"); + + // src/js/org.qcobjects.effects.base.ts + var import_qcobjects3 = __require("qcobjects"); + var Fade = class extends import_qcobjects3.Effect { + static { + __name(this, "Fade"); + } + duration = 1e3; + static duration; + constructor(o) { + super(o); + this.duration = o?.duration; + } + apply(element, alphaFrom, alphaTo) { + const da = alphaTo - alphaFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects3.logger.debug("animation progress: " + progress.toString()); + const alpha = alphaFrom + progress * da / 100; + import_qcobjects3.logger.debug("alpha: " + alpha.toString()); + element.style.opacity = alpha.toString(); + } + }); + } + static apply(element, alphaFrom, alphaTo) { + const da = alphaTo - alphaFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects3.logger.debug("animation progress: " + progress.toString()); + const alpha = alphaFrom + progress * da / 100; + import_qcobjects3.logger.debug("alpha: " + alpha.toString()); + element.style.opacity = alpha.toString(); + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var Move = class extends import_qcobjects3.Effect { + static { + __name(this, "Move"); + } + duration = 1e3; + static duration; + static apply(element, xfrom, yfrom, xto, yto) { + const dx = xto - xfrom; + const dy = yto - yfrom; + element.style.transform = "translate(" + xfrom + "px," + yfrom + "px)"; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects3.logger.debug("animation progress: " + progress.toString()); + const y = yfrom + progress * dy / 100; + const x = xfrom + progress * dx / 100; + import_qcobjects3.logger.debug("x: " + x.toString() + " y:" + y.toString()); + element.style.transform = "translate(" + x + "px," + y + "px)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + (0, import_qcobjects3.Package)("org.qcobjects.effects.base", [ + Fade, + Move + ]); + + // src/js/org.qcobjects.effects.extended.ts + var import_qcobjects4 = __require("qcobjects"); + var MoveXInFromRight = class extends Move { + static { + __name(this, "MoveXInFromRight"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, element.width, 0, 0, 0); + } + }; + var MoveXInFromLeft = class extends Move { + static { + __name(this, "MoveXInFromLeft"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, -element.width, 0, 0, 0); + } + }; + var MoveYInFromBottom = class extends Move { + static { + __name(this, "MoveYInFromBottom"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, 0, element.height, 0, 0); + } + }; + var MoveYInFromTop = class extends Move { + static { + __name(this, "MoveYInFromTop"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, 0, -element.height, 0, 0); + } + }; + var RotateX = class extends import_qcobjects4.Effect { + static { + __name(this, "RotateX"); + } + duration = 1e3; + static duration; + static apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + import_qcobjects4.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(1,0,0," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var RotateY = class extends import_qcobjects4.Effect { + static { + __name(this, "RotateY"); + } + duration = 1e3; + static duration; + static apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + import_qcobjects4.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(0,1,0," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var RotateZ = class extends import_qcobjects4.Effect { + static { + __name(this, "RotateZ"); + } + duration = 1e3; + apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + import_qcobjects4.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(0,0,1," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var Rotate = class extends import_qcobjects4.Effect { + static { + __name(this, "Rotate"); + } + duration = 1e3; + apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + import_qcobjects4.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(1,1,1," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var Radius = class extends import_qcobjects4.Effect { + static { + __name(this, "Radius"); + } + duration = 1e3; + apply(element, radiusFrom, radiusTo) { + const dr = radiusTo - radiusFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const radius = radiusFrom + progress * dr / 100; + import_qcobjects4.logger.debug("radius: " + radius.toString()); + element.style.borderRadius = radius.toString() + "px"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var Resize = class extends import_qcobjects4.Effect { + static { + __name(this, "Resize"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("resize: " + scale.toString()); + element.style.transformOrigin = "center"; + element.style.transform = "scale(" + scale + "," + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var WipeLeft = class extends import_qcobjects4.Effect { + static { + __name(this, "WipeLeft"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "right"; + element.style.transform = "scaleX(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var WipeRight = class extends import_qcobjects4.Effect { + static { + __name(this, "WipeRight"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "left"; + element.style.transform = "scaleX(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var WipeUp = class extends import_qcobjects4.Effect { + static { + __name(this, "WipeUp"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "bottom"; + element.style.transform = "scaleY(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + var WipeDown = class extends import_qcobjects4.Effect { + static { + __name(this, "WipeDown"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "top"; + element.style.transform = "scaleY(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } + }; + (0, import_qcobjects4.Package)("org.qcobjects.effects.extended", [ + MoveXInFromRight, + MoveXInFromLeft, + MoveYInFromBottom, + MoveYInFromTop, + RotateX, + RotateY, + RotateZ, + Rotate, + Radius, + Resize, + WipeLeft, + WipeRight, + WipeUp, + WipeDown + ]); + + // src/js/org.qcobjects.modal.effects.ts + var import_qcobjects5 = __require("qcobjects"); + var ModalFade = class extends Fade { + static { + __name(this, "ModalFade"); + } + duration = 500; + }; + var ModalMoveUp = class extends Move { + static { + __name(this, "ModalMoveUp"); + } + duration = 800; + }; + var ModalMoveDown = class extends Move { + static { + __name(this, "ModalMoveDown"); + } + duration = 300; + }; + (0, import_qcobjects5.Package)("org.qcobjects.modal.effects", [ + ModalFade, + ModalMoveDown, + ModalMoveUp + ]); + + // src/js/org.qcobjects.base.components.ts + var import_qcobjects6 = __require("qcobjects"); + var FormField = class extends import_qcobjects6.Component { + static { + __name(this, "FormField"); + } + fieldType; + cached = false; + reload = true; + body; + name; + data; + constructor(o) { + o.name = typeof o.name !== "undefined" ? o.name : "form-field"; + super(o); + } + createBindingEvents() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); + } else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak]; + _obj.addEventListener("change", () => { + import_qcobjects6.logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("blur", () => { + import_qcobjects6.logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("focus", () => { + import_qcobjects6.logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("keydown", () => { + import_qcobjects6.logger.debug("Executing keydown event binding"); + this.executeBindings(); + }); + } + } + executeBinding(_obj) { + const _datamodel = _obj.getAttribute("data-field"); + import_qcobjects6.logger.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel] = _obj.value; + } + executeBindings() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); + } else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak]; + const _datamodel = _obj.getAttribute("data-field"); + import_qcobjects6.logger.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel] = _obj.value; + } + } + done(standardResponse) { + const _ret_ = super.done(standardResponse); + this.executeBindings(); + this.createBindingEvents(); + import_qcobjects6.logger.debug("Field loaded: " + this.fieldType + "[name=" + this.name + "]"); + return _ret_; + } + }; + (0, import_qcobjects6.Package)("org.qcobjects.base.components", [ + FormField + ]); + + // src/js/org.qcobjects.components.ts + var ShadowedComponent = class extends import_qcobjects7.Component { + static { + __name(this, "ShadowedComponent"); + } + container = null; + shadowed = true; + cached = false; + controller = null; + view = null; + data = {}; + constructor(o) { + o.body = (0, import_qcobjects7._DOMCreateElement)("div"); + super(o); + } + }; + var ButtonField = class extends FormField { + static { + __name(this, "ButtonField"); + } + constructor(o) { + o.fieldType = "button"; + super(o); + } + }; + var InputField = class extends FormField { + static { + __name(this, "InputField"); + } + constructor(o) { + o.fieldType = "input"; + super(o); + } + }; + var TextField = class extends FormField { + static { + __name(this, "TextField"); + } + constructor(o) { + o.fieldType = "textarea"; + super(o); + } + }; + var EmailField = class extends FormField { + static { + __name(this, "EmailField"); + } + constructor(o) { + o.fieldType = "input"; + super(o); + } + }; + var ModalEnclosureComponent = class extends import_qcobjects7.Component { + static { + __name(this, "ModalEnclosureComponent"); + } + name = "modalenclosure"; + tplsource = "inline"; + cached = false; + basePath = import_qcobjects7.CONFIG.get("modalBasePath", import_qcobjects7.CONFIG.get("remoteSDKPath", "")); + template = ` + + + +`; + data = {}; + constructor(o) { + o.body = (0, import_qcobjects7._DOMCreateElement)("div"); + super(o); + } + }; + var ModalComponent = class extends import_qcobjects7.Component { + static { + __name(this, "ModalComponent"); + } + name = "modal"; + cached = false; + modalEnclosureComponentClass = "ModalEnclosureComponent"; + controller = null; + view = null; + tplsource = "none"; + closeOnClickOutside = false; + data = { + content: "", + modalId: 0 + }; + submodal = null; + __instanceID; + basePath; + subcomponents; + body; + templateURI; + constructor(o) { + o.basePath = import_qcobjects7.CONFIG.get("modalBasePath", import_qcobjects7.CONFIG.get("remoteSDKPath", "")); + super(o); + this.data.modalId = this.__instanceID; + const submodal = (0, import_qcobjects7.New)((0, import_qcobjects7.ClassFactory)(this.modalEnclosureComponentClass), { + name: this.name, + basePath: this.basePath, + data: this.data + }); + this.subcomponents.push(submodal); + this.submodal = submodal; + if (submodal.tplsource === "none") { + this.body.innerHTML = submodal.parsedAssignmentText; + } else { + this.body.append(submodal.body); + } + } + modal() { + const modalId = this.data.modalId; + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal").map((modal) => { + modal.style.display = "block"; + return new ModalFade().apply(modal, 0, 1); + }); + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal .modal-content").map((modalcontent) => { + return ModalMoveDown.apply(modalcontent, 0, -document.body.clientHeight, 0, 0); + }); + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal .modal-content .close").map((closebtn) => { + return closebtn.addEventListener("click", () => { + this.close(); + }, false); + }); + if (this.closeOnClickOutside) { + window.addEventListener("click", () => { + this.close(); + }, false); + } + } + close() { + const modalId = this.data.modalId; + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal").map((modal) => { + modal.style.display = "block"; + return new ModalFade({ duration: 3e3 }).apply(modal, 1, 0); + }); + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal .modal-content").map(function(modalcontent) { + return ModalMoveUp.apply(modalcontent, 0, 0, 0, -document.body.clientHeight); + }); + setTimeout(function() { + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal").map((modal) => { + modal.style.display = "none"; + return true; + }); + }, 900); + } + rebuild() { + const _ret_ = super.rebuild(); + this.templateURI = (0, import_qcobjects7.ComponentURI)({ + "COMPONENTS_BASE_PATH": import_qcobjects7.CONFIG.get("componentsBasePath", ""), + "COMPONENT_NAME": "modal", + "TPLEXTENSION": import_qcobjects7.CONFIG.get("tplextension", ""), + "TPL_SOURCE": "default" + // here is always default in order to get the right uri + }); + return _ret_; + } + }; + var SwaggerUIComponent = class extends import_qcobjects7.Component { + static { + __name(this, "SwaggerUIComponent"); + } + cached = false; + basePath = import_qcobjects7.CONFIG.get("remoteSDKPath", ""); + tplextension = "tpl.html"; + name = "swagger-ui"; + }; + (0, import_qcobjects7.Package)("org.qcobjects.form.components", [ + ShadowedComponent, + ButtonField, + InputField, + TextField, + EmailField, + ModalEnclosureComponent, + ModalComponent, + SwaggerUIComponent + ]); + + // src/js/org.qcobjects.components.grid.ts + var import_qcobjects8 = __require("qcobjects"); + var GridItemComponent = class extends import_qcobjects8.Component { + static { + __name(this, "GridItemComponent"); + } + name = "grid-item"; + shadowed = true; + tplsource = "inline"; + template = ` + +

          {{description}}

          +`; + cached = false; + }; + var GridComponent = class extends import_qcobjects8.Component { + static { + __name(this, "GridComponent"); + } + name = "grid"; + cached = false; + view = null; + shadowed = true; + rows = 3; + cols = 3; + templateURI = ""; + data = {}; + tplsource = "inline"; + template = "

          Loading...

          "; + body; + constructor(o) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = this.body.getAttribute("subcomponentClass") !== null ? this.body.getAttribute("subcomponentClass") : "GridItemComponent"; + this.body.setAttribute("subcomponentClass", subcomponentClass); + } + }; + (0, import_qcobjects8.Package)("org.qcobjects.components.grid", [ + GridComponent, + GridItemComponent + ]); + + // src/js/org.qcobjects.components.list.ts + var import_qcobjects9 = __require("qcobjects"); + var ListItemComponent = class extends import_qcobjects9.Component { + static { + __name(this, "ListItemComponent"); + } + shadowed = false; + tplsource = "inline"; + template = '{{label}}'; + cached = false; + constructor(o) { + o.name = "list-item"; + super(o); + } + }; + var ListComponent = class extends import_qcobjects9.Component { + static { + __name(this, "ListComponent"); + } + data; + shadowed = true; + tplsource = "inline"; + template = "

          Loading...

          "; + body; + shadowRoot; + rows; + subcomponents; + done; + serviceData; + constructor(o) { + o.name = "list"; + super(o); + this.body.setAttribute("controllerClass", "ListController"); + this.body.setAttribute("subcomponentClass", "ListItemComponent"); + } + }; + (0, import_qcobjects9.Package)("org.qcobjects.components.list", [ + ListItemComponent, + ListComponent + ]); + + // src/js/org.qcobjects.components.slider.ts + var import_qcobjects10 = __require("qcobjects"); + var SlideListComponent = class extends import_qcobjects10.Component { + static { + __name(this, "SlideListComponent"); + } + tplsource = "inline"; + template = "

          Loading...

          "; + name = "slidelist"; + body; + constructor(o) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = this.body.getAttribute("subcomponentClass") !== null ? this.body.getAttribute("subcomponentClass") : "GridItemComponent"; + this.body.setAttribute("subcomponentClass", subcomponentClass); + } + }; + var SlideItemComponent = class extends import_qcobjects10.Component { + static { + __name(this, "SlideItemComponent"); + } + effectClass = "Fade"; + name = "slider_item"; + data; + template; + tplsource; + constructor(o) { + super(o); + this.data.slideNumber = this.data.__dataIndex + 1; + this.template = ` + + `; + this.tplsource = "inline"; + } + }; + var SliderComponent = class extends import_qcobjects10.Component { + static { + __name(this, "SliderComponent"); + } + name = "slider"; + template; + tplsource; + shadowed; + data; + body; + __instanceID; + constructor(o) { + super(o); + this.template = ` + + +
          + + + + +
          +
          + +
          +
          + + `; + this.tplsource = "inline"; + this.shadowed = true; + this.data.SERVICE_CLASS = this.body.getAttribute("serviceClass"); + this.data.sliderHandler = "slider_" + this.__instanceID.toString(); + this.body.setAttribute("controllerClass", "SliderController"); + } + }; + (0, import_qcobjects10.Package)("org.qcobjects.components.slider", [ + SlideListComponent, + SlideItemComponent, + SliderComponent + ]); + + // src/js/org.qcobjects.components.notifications.ts + var import_qcobjects11 = __require("qcobjects"); + var NotificationComponent = class _NotificationComponent extends import_qcobjects11.Component { + static { + __name(this, "NotificationComponent"); + } + cached = false; + tplsource = "inline"; + shadowed = false; + kinds; + template; + constructor(o) { + o.name = "notification"; + o.body = (0, import_qcobjects11._DOMCreateElement)("div"); + super(o); + this.template = ` + +
          +
          +

          {{title}} {{message}}

          +
          +
          + `; + this.kinds = ["danger", "success", "info", "warning"]; + } + display(element) { + const _display_ = /* @__PURE__ */ __name(function(element2) { + element2.style.display = "block"; + const appearEffect = (0, import_qcobjects11.New)(Move, { + duration: 900, + apply(element3) { + (0, import_qcobjects11._super_)("Fade", "apply").call(this, element3, 0, 1); + (0, import_qcobjects11._super_)("Move", "apply").call(this, element3, 0, -document.body.clientHeight, 0, 0); + } + }); + const disappearEffect = (0, import_qcobjects11.New)(Move, { + duration: 650, + apply(element3) { + (0, import_qcobjects11._super_)("Fade", "apply").call(this, element3, 1, 0); + (0, import_qcobjects11._super_)("Move", "apply").call(this, element3, 0, 0, 0, -document.body.clientHeight); + } + }); + appearEffect.apply(element2); + setTimeout(function() { + disappearEffect.apply(element2); + }, 2e3); + }, "_display_"); + element.subelements("div.notification_background").map((element2) => { + return new Fade({ duration: 500 }).apply(element2, 0, 1); + }); + element.subelements("div.notification").map((element2) => _display_(element2)); + setTimeout(function() { + element.remove(); + }, 2200); + } + static success(message) { + const c = (0, import_qcobjects11.New)(_NotificationComponent, { + name: "notification", + shadowed: true, + body: (0, import_qcobjects11._DOMCreateElement)("div"), + data: { + kind: "success", + title: "Success!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + static danger(message) { + const c = (0, import_qcobjects11.New)(_NotificationComponent, { + name: "notification", + shadowed: true, + body: (0, import_qcobjects11._DOMCreateElement)("div"), + data: { + kind: "danger", + title: "Danger!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + static info(message) { + const c = (0, import_qcobjects11.New)(_NotificationComponent, { + name: "notification", + shadowed: true, + body: (0, import_qcobjects11._DOMCreateElement)("div"), + data: { + kind: "info", + title: "Info!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + static warning(message) { + const c = (0, import_qcobjects11.New)(_NotificationComponent, { + name: "notification", + shadowed: true, + body: (0, import_qcobjects11._DOMCreateElement)("div"), + data: { + kind: "warning", + title: "Warning!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + }; + (0, import_qcobjects11.Package)("org.quickcorp.components.notifications", [ + NotificationComponent + ]); + + // src/js/org.qcobjects.components.splashscreen.ts + var import_qcobjects12 = __require("qcobjects"); + var SplashScreenComponent = class extends import_qcobjects12.Component { + static { + __name(this, "SplashScreenComponent"); + } + _enabled_; + _bgcolor; + cached = false; + shadowed = true; + body; + shadowRoot; + constructor(component) { + component.name = typeof component.name === "undefined" ? "splashscreen" : component.name; + const isBrowser = typeof window !== "undefined" && typeof window.self !== "undefined" && window === window.self; + const isStartURL = location.hash === "" && location.pathname === "/" && location.search === "" || import_qcobjects12.CONFIG.get("routingWay", "pathname") === "hash" && import_qcobjects12.CONFIG.get("start_url", "/") === location.hash || import_qcobjects12.CONFIG.get("routingWay", "pathname") === "pathname" && import_qcobjects12.CONFIG.get("start_url", "/") === location.pathname || import_qcobjects12.CONFIG.get("routingWay", "pathname") === "search" && import_qcobjects12.CONFIG.get("start_url", "/") === location.search; + const _enabled_ = isBrowser && isStartURL; + if (_enabled_) { + component.basePath = import_qcobjects12.CONFIG.get("splashscreenBasePath", import_qcobjects12.CONFIG.get("remoteSDKPath", "")); + if (typeof component.data === "undefined") { + component.data = {}; + } + component.data.basePath = component.basePath; + } else { + if (typeof component !== "undefined" && typeof component.body !== "undefined") { + component.body.style.display = "none"; + } + } + super(component); + this._bgcolor = ""; + this._enabled_ = _enabled_; + if (this._enabled_) { + const displayEffectDuration = 1e3; + let duration = this.body.getAttribute("duration"); + if (duration === null) { + duration = displayEffectDuration; + } else { + duration = parseInt(duration.toString()); + } + this._bgcolor = this.body.style.backgroundColor; + const _helper_ = /* @__PURE__ */ __name(() => { + setTimeout(() => { + if (!_helper_.executed) { + const _componentRoot = this.shadowed ? this.shadowRoot?.host : this.body; + if (typeof import_qcobjects12.global.componentsStack !== "undefined") { + import_qcobjects12.global.componentsStack.filter((c) => c.body.hasAttribute("splashscreen")).map( + (mainComponent) => { + import_qcobjects12.logger.debug(`Splash Screen of Main Component: ${mainComponent.name}`); + mainComponent.splashScreenComponent = this; + const SplashScreenHandler = /* @__PURE__ */ __name(() => { + if (!SplashScreenHandler.executed) { + const component2 = mainComponent.splashScreenComponent; + const mainElement = mainComponent.shadowed ? mainComponent.shadowRoot?.host : mainComponent.body; + mainComponent._mainPosition = mainElement.style.position; + if (typeof mainElement !== "undefined") { + mainElement.style.position = "fixed"; + } + mainComponent._mainOpacity = mainElement.style.opacity; + _componentRoot.style.width = "100%"; + _componentRoot.style.height = "100%"; + document.body.style.backgroundColor = "#111111"; + mainElement.style.opacity = "0"; + setTimeout(function() { + if (typeof _componentRoot !== "undefined") { + document.body.style.backgroundColor = component2?._bgcolor; + _componentRoot.subelements("#slot-logo").map((slotlogo) => { + slotlogo.style.display = "block"; + slotlogo.style.transformOrigin = "center"; + return new Resize().apply(slotlogo, 1, 0); + }); + new Fade().apply(_componentRoot, 1, 0); + } + }, duration - displayEffectDuration); + setTimeout(function() { + new Fade().apply(mainElement, 0, 1); + mainElement.style.position = mainComponent._mainPosition; + document.body.style.backgroundColor = component2._bgcolor; + if (_componentRoot.parentElement !== null) { + _componentRoot.parentElement.remove(); + } + }, duration); + } + SplashScreenHandler.executed = true; + }, "SplashScreenHandler"); + return mainComponent.addComponentHelper(SplashScreenHandler.bind(mainComponent)); + } + ); + } + _helper_.executed = true; + } + }); + }, "_helper_"); + _helper_.executed = false; + this.addComponentHelper(_helper_.bind(component)); + } + } + // eslint-disable-next-line no-unused-vars + addComponentHelper(arg0) { + throw new Error("Method not implemented."); + } + }; + (0, import_qcobjects12.Package)("org.qcobjects.components.base", [ + SplashScreenComponent + ]); + var VideoSplashScreenComponent = class extends SplashScreenComponent { + static { + __name(this, "VideoSplashScreenComponent"); + } + cached = false; + shadowed = true; + tplsource = "inline"; + template = ` + +
          +
          + + +
          +
          + + `; + constructor(o) { + o.name = "videosplashscreen"; + super(o); + } + }; + var CubeSplashScreenComponent = class extends SplashScreenComponent { + static { + __name(this, "CubeSplashScreenComponent"); + } + cached = false; + shadowed = true; + tplsource = "inline"; + template = ` + + +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + + `; + constructor(o) { + o.name = "cubesplashscreen"; + super(o); + } + }; + (0, import_qcobjects12.Package)("org.qcobjects.components.splashscreen", [ + SplashScreenComponent, + VideoSplashScreenComponent, + CubeSplashScreenComponent + ]); + + // src/js/org.qcobjects.controllers.ts + var import_qcobjects13 = __require("qcobjects"); + var GenericController = class extends import_qcobjects13.Controller { + static { + __name(this, "GenericController"); + } + }; + (0, import_qcobjects13.Package)("org.qcobjects.controllers", [ + GenericController + ]); + + // src/js/org.qcobjects.controllers.list.ts + var import_qcobjects14 = __require("qcobjects"); + var ListController = class extends import_qcobjects14.Controller { + static { + __name(this, "ListController"); + } + __instanceID; + component; + valueField; + labelField; + rows; + cols; + _componentRoot; + constructor({ component, dependencies = [], valueField = void 0, labelField = void 0 }) { + super({ component, dependencies, valueField, labelField }); + this.component = component; + this._componentRoot = this.component.shadowed ? this.component.shadowRoot : this.component.body; + this.labelField = this.component.body.getAttribute("label-field"); + this.valueField = this.component.body.getAttribute("value-field"); + this.rows = this.component.body.getAttribute("rows"); + this.rows = this.rows !== null ? this.rows : this.component.rows; + this.cols = 1; + import_qcobjects14.logger.debug("ListController INIT"); + } + getPageIndex(page, totalPage, totalElements) { + page = page > 0 ? page - 1 : 0; + return [totalElements * page / totalPage, totalElements * page / totalPage + totalElements / totalPage]; + } + addSubcomponents() { + this.component.subcomponents = []; + const layout = this.component.body.getAttribute("layout"); + const basePath = import_qcobjects14.CONFIG.get("listBasePath", import_qcobjects14.CONFIG.get("remoteSDKPath", "")); + let cssLayout = ""; + this.labelField = this.component.body.getAttribute("label-field"); + this.valueField = this.component.body.getAttribute("value-field"); + if (layout === "horizontal") { + cssLayout = `@import url("${basePath}css/components/horizontal-list.css");`; + } else { + cssLayout = `@import url("${basePath}css/components/list.css");`; + } + if (typeof this._componentRoot !== "undefined") { + this._componentRoot.innerHTML = `
            `; + } + import_qcobjects14.logger.debug((0, import_qcobjects14._DataStringify)(this.component.data)); + try { + const subcomponentClass = this.component.body.getAttribute("subcomponentClass"); + if (subcomponentClass != null) { + let offset; + let limit; + let pagesNumber; + let list = [...this.component.data]; + let paginateIn = this.component.body.getAttribute("paginate-in"); + paginateIn = paginateIn !== null ? paginateIn : "client"; + let page; + if (paginateIn === "client") { + page = this.component.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + if (page !== -1) { + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, list.length)[0]; + limit = this.getPageIndex(page, pagesNumber, list.length)[1]; + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list = list.slice(offset, limit); + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list.map( + (record, dataIndex) => { + const _ret_ = void 0; + try { + const _body = (0, import_qcobjects14._DOMCreateElement)("li"); + record.label = record[this.labelField]; + record.value = record[this.valueField]; + const subcomponent = (0, import_qcobjects14.New)((0, import_qcobjects14.ClassFactory)(subcomponentClass), { + name: "list-item", + data: { + label: record[this.labelField], + value: record[this.valueField], + __dataIndex: dataIndex, + __page: page, + __totalPages: pagesNumber, + __limit: limit, + __offset: offset + }, + templateURI: (0, import_qcobjects14.ComponentURI)({ + "COMPONENTS_BASE_PATH": import_qcobjects14.CONFIG.get("componentsBasePath", ""), + "COMPONENT_NAME": (0, import_qcobjects14.ClassFactory)(subcomponentClass).name, + "TPLEXTENSION": import_qcobjects14.CONFIG.get("tplextension", ""), + "TPL_SOURCE": (0, import_qcobjects14.ClassFactory)(subcomponentClass).tplsource + }), + body: _body, + template: (0, import_qcobjects14.ClassFactory)(subcomponentClass).template + }); + subcomponent.done = this.component.done.bind(subcomponent); + try { + if (subcomponent) { + subcomponent.data.__dataIndex = dataIndex; + if (Object.hasOwnProperty.call(this.component.data, "length")) { + subcomponent.data.__dataLength = this.component.data.length; + } + import_qcobjects14.logger.debug("adding subcomponent to body"); + this._componentRoot.subelements("ul").map((ul) => ul.append(subcomponent)); + try { + this.component.subcomponents.push(subcomponent); + } catch (e) { + import_qcobjects14.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } else { + import_qcobjects14.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); + } + } catch (e) { + import_qcobjects14.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } catch (e) { + import_qcobjects14.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + return _ret_; + } + ); + } else { + import_qcobjects14.logger.debug("NO SUBCOMPONENT CLASS IN COMPONENT"); + } + } catch (e) { + import_qcobjects14.logger.debug(`No data for component: ${e}`); + } + } + cssGrid() { + const component = this.component; + const _componentRoot = component.shadowed ? component.shadowRoot : component.body; + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = (0, import_qcobjects14._DOMCreateElement)("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; grid-template-rows: ${templateRows}; grid-template-columns: ${templateCols}; margin:0 auto; }`; + _componentRoot.append(s); + _componentRoot.classList.add(className); + } + } + done() { + this.cssGrid(); + const componentInstance = this.component; + import_qcobjects14.logger.debug("ListController DONE"); + const serviceClass = this.component.body.getAttribute("serviceClass"); + if (serviceClass != null) { + let offset; + let limit; + let paginateIn = componentInstance.body.getAttribute("paginate-in"); + paginateIn = paginateIn !== null ? paginateIn : "client"; + if (paginateIn === "server") { + let page = componentInstance.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + let pagesNumber; + if (page !== -1) { + const serverDataCount = this.component.body.getAttribute("server-data-count") !== null ? this.component.body.getAttribute("server-data-count") : 1; + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0]; + limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1]; + componentInstance.serviceData = typeof componentInstance.serviceData !== "undefined" ? componentInstance.serviceData : {}; + componentInstance.serviceData.params = typeof componentInstance.serviceData.params !== "undefined" ? componentInstance.serviceData.params : {}; + componentInstance.serviceData.params.offset = offset; + componentInstance.serviceData.params.limit = limit; + } + } + (0, import_qcobjects14.serviceLoader)((0, import_qcobjects14.New)((0, import_qcobjects14.ClassFactory)(serviceClass), { + data: componentInstance.serviceData + }), false).then( + (successfulResponse) => { + import_qcobjects14.logger.debug("DONE SERVICE COMPONENT"); + successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template); + if (typeof successfulResponse.service.JSONresponse.result !== "undefined") { + import_qcobjects14.logger.debug((0, import_qcobjects14._DataStringify)(successfulResponse.service.JSONresponse.result)); + componentInstance.data = successfulResponse.service.JSONresponse.result; + } else { + componentInstance.data = successfulResponse.service.JSONresponse; + } + this.addSubcomponents(); + }, + (failedResponse) => { + import_qcobjects14.logger.debug(failedResponse); + } + ).catch((e) => { + import_qcobjects14.logger.debug("Something went wrong when calling the service from: " + serviceClass); + import_qcobjects14.logger.debug(e.message); + }); + } + } + }; + (0, import_qcobjects14.Package)("org.qcobjects.controllers.list", [ + ListController + ]); + + // src/js/org.qcobjects.controllers.grid.ts + var import_qcobjects15 = __require("qcobjects"); + var GridController = class extends import_qcobjects15.Controller { + static { + __name(this, "GridController"); + } + __instanceID; + rows; + cols; + component; + constructor(controller) { + super(controller); + this.rows = this.component.body.getAttribute("rows"); + this.rows = this.rows !== null ? this.rows : this.component.rows; + this.cols = this.component.body.getAttribute("cols"); + this.cols = this.cols !== null ? this.cols : this.component.cols; + } + cssGrid() { + const component = this.component; + const _componentRoot = component.shadowed ? component.shadowRoot : component.body; + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = (0, import_qcobjects15._DOMCreateElement)("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; grid-template-rows: ${templateRows}; grid-template-columns: ${templateCols}; margin:0 auto; }`; + _componentRoot?.append(s); + if (component.shadowed) { + _componentRoot?.host.classList.add(className); + } else { + _componentRoot.classList.add(className); + } + } + } + done() { + this.cssGrid(); + import_qcobjects15.logger.debug("GridComponent built"); + } + }; + var DataGridController = class extends import_qcobjects15.Controller { + static { + __name(this, "DataGridController"); + } + __instanceID; + rows; + cols; + _componentRoot; + component; + constructor(controller) { + super(controller); + this._componentRoot = controller.component.shadowed ? controller.component.shadowRoot : controller.component.body; + this.rows = controller.component.body.getAttribute("rows"); + this.rows = controller.rows !== null ? controller.rows : controller.component.rows; + this.cols = controller.component.body.getAttribute("cols"); + this.cols = controller.cols !== null ? controller.cols : controller.component.cols; + import_qcobjects15.logger.debug("DataGridController INIT"); + } + getPageIndex(page, totalPage, totalElements) { + page = page > 0 ? page - 1 : 0; + return [totalElements * page / totalPage, totalElements * page / totalPage + totalElements / totalPage]; + } + addSubcomponents() { + this.component.subcomponents = []; + if (typeof this._componentRoot !== "undefined") { + this._componentRoot.innerHTML = ""; + } + this.cssGrid(); + import_qcobjects15.logger.debug((0, import_qcobjects15._DataStringify)(this.component.data)); + try { + const subcomponentClass = this.component.body.getAttribute("subcomponentClass"); + if (subcomponentClass != null) { + let offset; + let limit; + let pagesNumber; + let list = [...this.component.data]; + let paginateIn = this.component.body.getAttribute("paginate-in"); + let page; + paginateIn = paginateIn !== null ? paginateIn : "client"; + if (paginateIn === "client") { + page = this.component.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + if (page !== -1) { + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, list.length)[0]; + limit = this.getPageIndex(page, pagesNumber, list.length)[1]; + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list = list.slice(offset, limit); + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list.map( + (record, dataIndex, list2) => { + const _ret_ = void 0; + try { + const _body = (0, import_qcobjects15._DOMCreateElement)("component"); + _body.setAttribute("name", (0, import_qcobjects15.ClassFactory)(subcomponentClass).name); + _body.setAttribute("shadowed", (0, import_qcobjects15.ClassFactory)(subcomponentClass).shadowed); + _body.setAttribute("cached", (0, import_qcobjects15.ClassFactory)(subcomponentClass).cached); + record = Object.assign(record, { + __dataIndex: dataIndex, + __dataLength: list2.length, + __page: page, + __totalPages: pagesNumber, + __limit: limit, + __offset: offset + }); + const subcomponent = (0, import_qcobjects15.New)((0, import_qcobjects15.ClassFactory)(subcomponentClass), { + name: "item", + data: record, + templateURI: (0, import_qcobjects15.ComponentURI)({ + "COMPONENTS_BASE_PATH": import_qcobjects15.CONFIG.get("componentsBasePath", ""), + "COMPONENT_NAME": (0, import_qcobjects15.ClassFactory)(subcomponentClass).name, + "TPLEXTENSION": import_qcobjects15.CONFIG.get("tplextension", ""), + "TPL_SOURCE": (0, import_qcobjects15.ClassFactory)(subcomponentClass).tplsource + }), + body: _body, + template: (0, import_qcobjects15.ClassFactory)(subcomponentClass).template + }); + subcomponent.done = this.component.done.bind(subcomponent); + try { + if (subcomponent) { + subcomponent.data.__dataIndex = dataIndex; + if (Object.hasOwnProperty.call(this.component.data, "length")) { + subcomponent.data.__dataLength = this.component.data.length; + } + import_qcobjects15.logger.debug("adding subcomponent to body"); + this._componentRoot?.append(subcomponent.body); + try { + this.component.subcomponents.push(subcomponent); + } catch (e) { + import_qcobjects15.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } else { + import_qcobjects15.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); + } + } catch (e) { + import_qcobjects15.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } catch (e) { + import_qcobjects15.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + return _ret_; + } + ); + } else { + import_qcobjects15.logger.debug("NO SUBCOMPONENT CLASS IN COMPONENT"); + } + } catch (e) { + import_qcobjects15.logger.debug(`No data for component: ${e}`); + } + } + cssGrid() { + const component = this.component; + const _componentRoot = component.shadowed ? component.shadowRoot : component.body; + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = (0, import_qcobjects15._DOMCreateElement)("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; grid-template-rows: ${templateRows}; grid-template-columns: ${templateCols}; margin:0 auto; }`; + if (component.shadowed) { + component.body.append(s); + _componentRoot.host.classList.add(className); + } else { + _componentRoot?.append(s); + _componentRoot.classList.add(className); + } + } + } + done() { + const componentInstance = this.component; + import_qcobjects15.logger.debug("DataGridController DONE"); + const serviceClass = this.component.body.getAttribute("serviceClass"); + if (serviceClass != null) { + let offset; + let limit; + let paginateIn = componentInstance.body.getAttribute("paginate-in"); + paginateIn = paginateIn !== null ? paginateIn : "client"; + if (paginateIn === "server") { + let page = componentInstance.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + let pagesNumber; + if (page !== -1) { + const serverDataCount = this.component.body.getAttribute("server-data-count") !== null ? this.component.body.getAttribute("server-data-count") : 1; + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0]; + limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1]; + componentInstance.serviceData = typeof componentInstance.serviceData !== "undefined" ? componentInstance.serviceData : {}; + componentInstance.serviceData.params = typeof componentInstance.serviceData.params !== "undefined" ? componentInstance.serviceData.params : {}; + componentInstance.serviceData.params.offset = offset; + componentInstance.serviceData.params.limit = limit; + } + } + (0, import_qcobjects15.serviceLoader)((0, import_qcobjects15.New)((0, import_qcobjects15.ClassFactory)(serviceClass), { + data: componentInstance.serviceData + }), false).then( + (successfulResponse) => { + import_qcobjects15.logger.debug("DONE SERVICE COMPONENT"); + successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template); + if (typeof successfulResponse.service.JSONresponse.result !== "undefined") { + import_qcobjects15.logger.debug((0, import_qcobjects15._DataStringify)(successfulResponse.service.JSONresponse.result)); + componentInstance.data = successfulResponse.service.JSONresponse.result; + } else { + componentInstance.data = successfulResponse.service.JSONresponse; + } + this.addSubcomponents(); + }, + (failedResponse) => { + import_qcobjects15.logger.debug(failedResponse); + } + ).catch((e) => { + import_qcobjects15.logger.debug("Something went wrong when calling the service from: " + serviceClass); + import_qcobjects15.logger.debug(e.message); + }); + } + } + }; + (0, import_qcobjects15.Package)("org.qcobjects.controllers.grid", [ + GridController, + DataGridController + ]); + + // src/js/org.qcobjects.controllers.slider.ts + var import_qcobjects16 = __require("qcobjects"); + var SliderController = class extends import_qcobjects16.Controller { + static { + __name(this, "SliderController"); + } + slideIndex = 0; + duration = 7100; + interval = null; + sliderHandlerName = ""; + _componentRoot; + component; + constructor({ component, dependencies = [], duration = 7100, slideIndex = 0, interval = null, sliderHandlerName = null }) { + super({ component, dependencies, duration, slideIndex, interval, sliderHandlerName }); + this.component = component; + this._componentRoot = component.shadowed ? component.shadowRoot : component.body; + this.sliderHandlerName = "slider_" + this.component.__instanceID.toString(); + global.set(this.sliderHandlerName, this); + } + stop() { + if (this.interval != null) { + clearInterval(this.interval); + } + } + plusSlidesAndStop(n) { + this.stop(); + this.plusSlides(n); + } + plusSlides(n) { + this.showSlides(this.slideIndex += n); + } + currentSlide(n) { + this.stop(); + this.showSlides(this.slideIndex = n); + } + automate() { + this.interval = setInterval(() => { + this.plusSlides(1); + }, this.duration); + } + showSlides(n) { + const slides = this._componentRoot?.subelements(".qcoSlides"); + const dots = this._componentRoot?.subelements(".qcoSlider__dots--dot"); + if (n > slides.length - 1) { + this.slideIndex = 0; + } + if (n < 0) { + this.slideIndex = 0; + } + slides.filter((slide, index) => { + return index !== this.slideIndex; + }).map((slide) => { + return (0, import_qcobjects16.New)((0, import_qcobjects16.ClassFactory)("Fade"), {}).apply(slide, 1, 0); + }); + dots.filter((dot, index) => { + return index !== this.slideIndex; + }).map((dot) => { + return dot.classList.remove("active"); + }); + try { + dots[this.slideIndex].classList.add("active"); + } catch (e) { + import_qcobjects16.logger.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${e.message}`); + } + setTimeout(() => { + slides.filter((slide, index) => { + return index !== this.slideIndex; + }).map((slide) => { + slide.style.display = "none"; + return slide.style.display; + }); + try { + slides[this.slideIndex].style.display = "block"; + (0, import_qcobjects16.New)((0, import_qcobjects16.ClassFactory)("Fade"), {}).apply(slides[this.slideIndex], 0, 1); + } catch (e) { + import_qcobjects16.logger.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${e.message}`); + } + }, 700); + } + fillDots() { + const slides = this._componentRoot?.subelements(".qcoSlides"); + slides.map((slide, index) => { + const dotHTML = document.createElement("span"); + const dotContent = ``; + dotHTML.innerHTML = dotContent; + return this._componentRoot?.subelements(".qcoSlider__dots")[0].append(dotHTML); + }); + } + done() { + const slides = this._componentRoot?.subelements(".qcoSlides"); + slides.filter((slide, index) => { + return index !== this.slideIndex; + }).map((slide) => { + slide.style.display = "none"; + return slide.style.display; + }); + setTimeout(() => { + this.fillDots(); + this.slideIndex = 0; + this.showSlides(this.slideIndex); + this.automate(); + }, 3e3); + } + }; + (0, import_qcobjects16.Package)("org.qcobjects.controllers.slider", [ + SliderController + ]); + + // src/js/org.qcobjects.controllers.form.ts + var import_qcobjects17 = __require("qcobjects"); + var FormValidations = class extends import_qcobjects17.Controller { + static { + __name(this, "FormValidations"); + } + getDefault() { + return function(fieldName, dataValue, element) { + const _regex = { + name: "^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$", + email: "^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$" + }; + const _pattern_ = element.getAttribute("pattern") || _regex[fieldName]; + const pattern = new RegExp(_pattern_); + return pattern.test(dataValue); + }; + } + }; + var FormController = class extends import_qcobjects17.Controller { + static { + __name(this, "FormController"); + } + validations = []; + formValidatorModal; + serviceClass = ""; + formSettings = { + backRouting: "#", + loadingRouting: "#loading", + nextRouting: "#signupsuccessful" + }; + component; + hasValidation(element) { + const fieldName = element.getAttribute("data-field"); + let _hasValidation = false; + if (typeof this.validations !== "undefined" && Object.hasOwnProperty.call(this.validations, fieldName)) { + _hasValidation = true; + } + return _hasValidation; + } + isInvalid(element) { + let _isInvalid = false; + const fieldName = element.getAttribute("data-field"); + const dataValue = this.component.data[fieldName]; + const _execValidation = /* @__PURE__ */ __name((fieldName2, dataValue2, element2) => { + return typeof this.validations !== "undefined" && Object.hasOwnProperty.call(this.validations, fieldName2) && this.validations[fieldName2].call(null, fieldName2, dataValue2, element2); + }, "_execValidation"); + if (typeof this.validations !== "undefined" && !_execValidation(fieldName, dataValue, element)) { + _isInvalid = true; + } + return _isInvalid; + } + isValid(element) { + return !this.isInvalid(element); + } + save() { + if (this.serviceClass !== "") { + location.href = this.formSettings.loadingRouting; + (0, import_qcobjects17.serviceLoader)((0, import_qcobjects17.New)((0, import_qcobjects17.ClassFactory)(this.serviceClass), { + data: this.component.data + }), false).then( + () => { + console.log("DONE SERVICE COMPONENT"); + location.href = this.formSettings.nextRouting; + }, + (failedResponse) => { + import_qcobjects17.logger.debug(failedResponse); + location.href = this.formSettings.backRouting; + } + ); + } else { + import_qcobjects17.logger.debug("No service name declared on serviceClass property"); + } + } + formSaveTouchHandler() { + import_qcobjects17.logger.debug("Saving data..."); + const _componentRoot_ = this.component.shadowed ? (this.component?.shadowRoot).host : this.component.body; + this.component.executeBindings(); + if (this.formValidatorModal != null) { + const componentElementFields = _componentRoot_.subelements("*[data-field]"); + const fieldsToValidate = componentElementFields.filter( + (f) => this.hasValidation(f) + ); + const _labelledby = /* @__PURE__ */ __name(function(parentElement, element) { + const _arialabelledby = /* @__PURE__ */ __name((parentElement2, element2) => { + return element2.getAttribute("aria-labelledby") !== null ? (element2.getAttribute("aria-labelledby") || "").split(" ").map( + (e) => parentElement2.subelements(`#${e}`).map((_e) => _e.innerHTML) + ).join(" ") : null; + }, "_arialabelledby"); + return _arialabelledby(parentElement, element) || element.getAttribute("aria-label") || element.getAttribute("placeholder") || element.getAttribute("name") || element.getAttribute("data-field"); + }, "_labelledby"); + const _ariatitle = /* @__PURE__ */ __name(function(element) { + return element.getAttribute("title") || element.getAttribute("aria-title") || ""; + }, "_ariatitle"); + const invalidFields = fieldsToValidate.filter((f) => this.isInvalid(f)); + if (invalidFields.length > 0) { + const validationMessage = ` +
            + Please verify the following incorrect fields: +
              +
              + ${invalidFields.map((element) => "
            • " + _labelledby(_componentRoot_, element) + "
              " + _ariatitle(element) + "
            • ").join("")} +
              +
            +
            +`; + this.formValidatorModal.body.subelements(".validationMessage")[0].innerHTML = validationMessage; + this.formValidatorModal.modal(); + } else { + this.save(); + } + } else { + import_qcobjects17.logger.debug("Unable to find the modal validator..."); + import_qcobjects17.logger.debug("Saving data..."); + this.save(); + } + } + constructor(o) { + super(o); + this.component = o.component; + this.component = this.component.Cast(FormField); + } + done() { + import_qcobjects17.logger.debugEnabled = true; + try { + this.component.createBindingEvents(); + const modalBody = (0, import_qcobjects17._DOMCreateElement)("div"); + modalBody.className = "modal_body"; + this.formValidatorModal = (0, import_qcobjects17.New)(ModalComponent, { + body: modalBody, + subcomponents: [], + data: { + content: '
            ' + } + }); + (0, import_qcobjects17.Tag)(".modal_body").map((e) => document.body.removeChild(e)); + document.body.append(this.formValidatorModal.body); + } catch (e) { + import_qcobjects17.logger.debug(`Unable to create the modal: ${e}`); + } + this.onpress(".submit", () => { + this.formSaveTouchHandler(); + }); + } + // eslint-disable-next-line no-unused-vars + onpress(arg0, arg1) { + throw new Error("Method not implemented."); + } + }; + (0, import_qcobjects17.Package)("org.qcobjects.controllers.form", [ + FormController, + FormValidations + ]); + + // src/js/org.qcobjects.controllers.swagger.ts + var import_qcobjects18 = __require("qcobjects"); + var SwaggerUIController = class extends import_qcobjects18.Controller { + static { + __name(this, "SwaggerUIController"); + } + component; + dependencies; + startSwaggerUI() { + if (typeof SwaggerUIBundle !== "undefined") { + const ui = SwaggerUIBundle({ + url: import_qcobjects18.CONFIG.get("swagger-ui-url", "https://petstore.swagger.io/v2/swagger.json"), + dom_id: "#" + import_qcobjects18.CONFIG.get("swagger-ui-dom_id", "swagger-ui"), + deepLinking: true, + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + }); + window.ui = ui; + } + } + done() { + this.component.body.innerHTML = '
            '; + const swaggerUIPackagePath = import_qcobjects18.CONFIG.get("swagger-ui-package-path", "node_modules/swagger-ui-dist/"); + this.dependencies?.push((0, import_qcobjects18.New)(import_qcobjects18.SourceJS, { + url: swaggerUIPackagePath + "swagger-ui-standalone-preset.js", + external: import_qcobjects18.CONFIG.get("swagger-ui-external", false) + })); + this.dependencies?.push((0, import_qcobjects18.New)(import_qcobjects18.SourceCSS, { + url: swaggerUIPackagePath + "swagger-ui.css", + external: import_qcobjects18.CONFIG.get("swagger-ui-external", false) + })); + this.dependencies?.push((0, import_qcobjects18.New)(import_qcobjects18.SourceJS, { + url: swaggerUIPackagePath + "swagger-ui-bundle.js", + external: import_qcobjects18.CONFIG.get("swagger-ui-external", false), + done: /* @__PURE__ */ __name(() => { + this.startSwaggerUI(); + }, "done") + })); + } + }; + (0, import_qcobjects18.Package)("org.qcobjects.controllers.swagger", [ + SwaggerUIController + ]); + + // src/js/org.qcobjects.modal.controllers.ts + var import_qcobjects19 = __require("qcobjects"); + var ModalController = class extends import_qcobjects19.Controller { + static { + __name(this, "ModalController"); + } + component; + done() { + const component = this.component; + component.body.innerHTML = component.body.innerHTML.replace("/{{content}}/g", component.submodal.template); + } + }; + (0, import_qcobjects19.Package)("org.qcobjects.modal.controllers", [ + ModalController + ]); + + // src/js/org.qcobjects.views.ts + var import_qcobjects20 = __require("qcobjects"); + var GridView = class extends import_qcobjects20.View { + static { + __name(this, "GridView"); + } + }; + (0, import_qcobjects20.Package)("org.qcobjects.views", [ + GridView + ]); + + // src/js/org.qcobjects.tools.canvas.ts + var import_qcobjects21 = __require("qcobjects"); + var CanvasTool = class extends import_qcobjects21.InheritClass { + static { + __name(this, "CanvasTool"); + } + drawImageFilled(img, canvas, zoom = 1, px = 0, py = 0) { + let scale = Math.max(canvas.width / img.width, canvas.height / img.height); + scale = scale * zoom; + const x = canvas.width / 2 - img.width / 2 * scale; + const y = canvas.height / 2 - img.height / 2 * scale; + const ctx = canvas.getContext("2d"); + ctx?.drawImage(img, px + x, py + y, img.width * scale, img.height * scale); + } + getImageResized(img, width, height, resizedImage, zoom = 1, px = 0, py = 0) { + const canvas = document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + canvas.style.width = width.toString(); + canvas.style.height = height.toString(); + this.drawImageFilled(img, canvas, zoom, px, py); + resizedImage.src = canvas.toDataURL("image/png"); + return canvas; + } + }; + (0, import_qcobjects21.Package)("org.qcobjects.tools.canvas", [ + CanvasTool + ]); + + // src/js/org.qcobjects.tools.layouts.ts + var import_qcobjects22 = __require("qcobjects"); + var BasicLayout = class extends import_qcobjects22.InheritClass { + static { + __name(this, "BasicLayout"); + } + dependencies = []; + constructor({ component = null, dependencies = [] }) { + super({ component, dependencies }); + } + load() { + this.dependencies.push((0, import_qcobjects22.New)(import_qcobjects22.SourceCSS, { + external: !import_qcobjects22.CONFIG.get("useLocalSDK", false), + url: import_qcobjects22.CONFIG.get("useLocalSDK", false) ? "css/basic-layout.css" : import_qcobjects22.CONFIG.get("remoteSDKPath", false) + "css/basic-layout.css" + })); + } + coloredBorder() { + setTimeout(function() { + (0, import_qcobjects22.Tag)("nav").map((element) => { + element.style.border = "20px solid #3333"; + }); + (0, import_qcobjects22.Tag)("nav").map((element) => { + element.style.backgroundColor = "#129999"; + }); + (0, import_qcobjects22.Tag)("component>footer").map((element) => { + element.style.background = "#876"; + }); + (0, import_qcobjects22.Tag)("component>div").map((element) => { + element.style.border = "3px dashed #fff"; + }); + (0, import_qcobjects22.Tag)("component>section").map((element) => { + element.style.border = "3px solid #000"; + }); + (0, import_qcobjects22.Tag)("component>section").map((element) => { + element.style.backgroundColor = "#fffaaa"; + }); + (0, import_qcobjects22.Tag)("component>article").map((element) => { + element.style.border = "3px dotted #000"; + }); + (0, import_qcobjects22.Tag)("component>header").map((element) => { + element.style.background = "#789"; + }); + (0, import_qcobjects22.Tag)("component>footer").map((element) => { + element.style.background = "#876"; + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(1)").map((element) => { + element.style.border = "1px solid #444"; + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(1)").map((element) => { + element.style.backgroundColor = "#555aaa"; + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(2)").map((element) => { + element.style.backgroundColor = "#aaa333"; + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(3)").map((element) => { + element.style.backgroundColor = "#54da82"; + }); + (0, import_qcobjects22.Tag)("*").map((element) => { + element.style.color = "#fff"; + }); + (0, import_qcobjects22.Tag)("component>article").map((element) => Fade.apply(element, 0, 1)); + (0, import_qcobjects22.Tag)("component>footer").map((element) => Fade.apply(element, 0, 1)); + (0, import_qcobjects22.Tag)("component>header").map((element) => Fade.apply(element, 0, 1)); + (0, import_qcobjects22.Tag)("nav").map((element) => { + element.style.display = "block"; + element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); + MoveXInFromLeft.apply(element); + }); + (0, import_qcobjects22.Tag)("component>article").map((element) => { + element.style.display = "block"; + element.style.height = element.offsetParent?.scrollHeight.toString() || element.clientHeight.toString(); + MoveYInFromBottom.apply(element); + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(2)").map((element) => { + element.style.display = "block"; + element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); + MoveXInFromRight.apply(element); + }); + }, 300); + } + }; + (0, import_qcobjects22.Package)("org.qcobjects.tools.layouts", [ + BasicLayout + ]); + + // src/js/org.qcobjects.cloud.auth.session.usertoken.ts + var import_qcobjects23 = __require("qcobjects"); + var SessionUserToken = class _SessionUserToken extends import_qcobjects23.InheritClass { + static { + __name(this, "SessionUserToken"); + } + static user = {}; + __cache__; + __instanceID; + constructor(o) { + super(o); + const __instance__ = this; + this.__cache__ = new import_qcobjects23.ComplexStorageCache({ + index: __instance__.__instanceID.toString(), + load() { + let __token__; + if (typeof navigator !== "undefined" && typeof origin !== "undefined") { + __token__ = import_qcobjects23._Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+/* @__PURE__ */ new Date()).toString()}`, origin); + } else { + __token__ = import_qcobjects23._Crypt.encrypt(`${o.username}|${(+/* @__PURE__ */ new Date()).toString()}`, import_qcobjects23.CONFIG.get("domain", "localhost")); + } + _SessionUserToken.user = { + priority: __instance__.__instanceID.toString(), + token: __token__ + }; + return _SessionUserToken.user; + }, + alternate(cacheController) { + _SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); + } + }); + } + static generateIndex(s) { + return typeof Buffer !== "undefined" ? Buffer.from(s, "ascii").toString("base64") : btoa(s); + } + static getGlobalUser(...args) { + const username = [args].join("|"); + const __index__ = "userToken_" + _SessionUserToken.generateIndex(username); + if (typeof import_qcobjects23.global.get(__index__) === "undefined" || import_qcobjects23.global.get(__index__) === null) { + import_qcobjects23.global.set(__index__, (0, import_qcobjects23.New)(_SessionUserToken, { + username + })); + } + _SessionUserToken.user = import_qcobjects23.global.get(__index__).user; + return import_qcobjects23.global.get(__index__).user; + } + static getGlobalUserToken(...args) { + return _SessionUserToken.getGlobalUser(args).token; + } + static getGlobalUserId(...args) { + return _SessionUserToken.getGlobalUser(args).id; + } + static getGlobalUserPriority(...args) { + return _SessionUserToken.getGlobalUser(args).priority; + } + static getLoginCredentialsToken(username, password) { + return import_qcobjects23._Crypt.encrypt(`${username}${password}`, _SessionUserToken.getGlobalUserToken(username)); + } + static closeGlobalSession(...args) { + _SessionUserToken.getGlobalUser(args); + const username = [args].join("|"); + const __index__ = "userToken_" + _SessionUserToken.generateIndex(username); + if (typeof import_qcobjects23.global.get(__index__) !== "undefined") { + import_qcobjects23.global.get(__index__).__cache__.clear(); + import_qcobjects23.global.set(__index__, null); + _SessionUserToken.user = {}; + } + } + }; + (0, import_qcobjects23.Package)("org.qcobjects.cloud.auth.session.usertoken", [ + SessionUserToken + ]); + + // src/js/org.qcobjects.cloud.auth.session.data.ts + var import_qcobjects24 = __require("qcobjects"); + var SessionData = class extends import_qcobjects24.InheritClass { + static { + __name(this, "SessionData"); + } + __session_container__ = null; + sessionData; + /** + * Sets the session container + * + * @param {*} sessionContainer1, sessionContainer2, ... + * + */ + setSessionContainer() { + this.__session_container__ = [...arguments]; + } + /** + * Gets the session container + * + * @return {*} sessionContainer + */ + getSessionContainer() { + if (typeof this.__session_container__ === "undefined" || this.__session_container__ === null) { + throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)"); + } + return this.__session_container__; + } + /** + * Gets the session data + * + * @return {*} sessionData + */ + getSessionData(...args) { + const s = sessionStorage.getItem(`${this.index(args)}`); + let sessionData; + if (s !== null) { + sessionData = JSON.parse(s); + } + if (typeof sessionData === "undefined" || sessionData === null) { + sessionData = {}; + } + return sessionData; + } + /** + * Returns an index of the session + * + * @param {string} valueForIndex + * @return {string} index + * @example sessionInstance.index("me@email.com", "myusername") + * + */ + index(...args) { + if (typeof SessionUserToken === "undefined") { + throw new Error('You need to import SessionUserToken first: Import ("org.qcobjects.cloud.auth.session.usertoken")'); + } + return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`; + } + /** + * Saves the session instance + * + */ + save(...args) { + const s = (0, import_qcobjects24._DataStringify)(this.sessionData); + sessionStorage.setItem(`${this.index(args)}`, s); + } + /** + * + * Gets the session value + * + * @param {*} name + * @param {*} defaultValue + * @return {*} + */ + get(name, defaultValue) { + const sessionData = this.getSessionData(this.getSessionContainer()); + return typeof sessionData[name] !== "undefined" ? sessionData[name] : defaultValue; + } + /** + * + * Sets the session value + * + * @param {*} name + * @param {*} value + */ + set(name, value) { + const sessionContainer = this.getSessionContainer(); + const sessionData = this.getSessionData(sessionContainer); + this.sessionData = sessionData; + this.sessionData[name] = value; + this.save(sessionContainer); + } + }; + (0, import_qcobjects24.Package)("org.qcobjects.cloud.auth.session.data", [ + SessionData + ]); + + // src/QCObjects-SDK.ts + (/* @__PURE__ */ __name(function __qcobjects_sdk__(_top2) { + "use strict"; + if (typeof Object.defineProperty !== "undefined" && typeof _top2 !== "undefined") { + try { + Object.defineProperty(_top2, "__qcobjects_sdk__", { + enumerable: true, + configurable: false, + writable: false, + // eslint-disable-next-line camelcase + value: __qcobjects_sdk__ + }); + } catch (e) { + if (typeof _top2.__qcobjects_sdk__ !== "undefined") { + _top2.__qcobjects_sdk__.__loaded__ = true; + } + } + } + if (typeof _top2.__qcobjects_sdk__.__loaded__ === "undefined") { + _top2.__qcobjects_sdk__.__loaded__ = true; + if (typeof _top2 === "undefined") { + throw Error("Top context empty: It should either global, module or window"); + } + const __start__ = import_qcobjects25.GlobalSettings.__start__.bind(_top2); + _top2._sdk_ = Promise.resolve().then(() => { + import_qcobjects25.CONFIG.set("useSDK", true); + __start__(); + }); + } + }, "__qcobjects_sdk__"))(import_qcobjects25._top); + var QCObjects_SDK_default = import_qcobjects25._top; + + // src/index.ts + var src_default = QCObjects_SDK_exports; + return __toCommonJS(src_exports); +})(); +//# sourceMappingURL=index.js.map diff --git a/public/browser/index.js.map b/public/browser/index.js.map new file mode 100644 index 0000000..b740576 --- /dev/null +++ b/public/browser/index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/index.ts", "../../src/QCObjects-SDK.ts", "../../src/js/org.qcobjects.i18n_messages.ts", "../../src/js/org.qcobjects.models.ts", "../../src/js/org.qcobjects.components.ts", "../../src/js/org.qcobjects.effects.base.ts", "../../src/js/org.qcobjects.effects.extended.ts", "../../src/js/org.qcobjects.modal.effects.ts", "../../src/js/org.qcobjects.base.components.ts", "../../src/js/org.qcobjects.components.grid.ts", "../../src/js/org.qcobjects.components.list.ts", "../../src/js/org.qcobjects.components.slider.ts", "../../src/js/org.qcobjects.components.notifications.ts", "../../src/js/org.qcobjects.components.splashscreen.ts", "../../src/js/org.qcobjects.controllers.ts", "../../src/js/org.qcobjects.controllers.list.ts", "../../src/js/org.qcobjects.controllers.grid.ts", "../../src/js/org.qcobjects.controllers.slider.ts", "../../src/js/org.qcobjects.controllers.form.ts", "../../src/js/org.qcobjects.controllers.swagger.ts", "../../src/js/org.qcobjects.modal.controllers.ts", "../../src/js/org.qcobjects.views.ts", "../../src/js/org.qcobjects.tools.canvas.ts", "../../src/js/org.qcobjects.tools.layouts.ts", "../../src/js/org.qcobjects.cloud.auth.session.usertoken.ts", "../../src/js/org.qcobjects.cloud.auth.session.data.ts"], + "sourcesContent": ["import * as sdk from \"./QCObjects-SDK\";\nexport default sdk;", "/* eslint-disable @typescript-eslint/no-empty-function */\n/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\nimport { CONFIG, GlobalSettings, _top } from \"qcobjects\";\nexport {i18n_messages} from \"./js/org.qcobjects.i18n_messages\";\nexport {Contact} from \"./js/org.qcobjects.models\";\nexport {\n ShadowedComponent,\n ButtonField,\n InputField,\n TextField,\n EmailField,\n ModalEnclosureComponent,\n ModalComponent,\n SwaggerUIComponent\n} from \"./js/org.qcobjects.components\";\nexport {FormField, FieldComponentParams} from \"./js/org.qcobjects.base.components\";\nexport {\n GridComponent,\n GridItemComponent\n} from \"./js/org.qcobjects.components.grid\";\nexport {\n ListItemComponent,\n ListComponent\n} from \"./js/org.qcobjects.components.list\";\nexport {\n SlideListComponent,\n SlideItemComponent,\n SliderComponent\n} from \"./js/org.qcobjects.components.slider\";\nexport { NotificationComponent } from \"./js/org.qcobjects.components.notifications\";\nexport {\n SplashScreenComponent,\n VideoSplashScreenComponent,\n CubeSplashScreenComponent\n} from \"./js/org.qcobjects.components.splashscreen\";\nexport { GenericController } from \"./js/org.qcobjects.controllers\";\nexport { ListController, ListControllerParams } from \"./js/org.qcobjects.controllers.list\";\nexport { GridController, DataGridController } from \"./js/org.qcobjects.controllers.grid\";\nexport { SliderController } from \"./js/org.qcobjects.controllers.slider\";\nexport { FormController, FormValidations } from \"./js/org.qcobjects.controllers.form\";\nexport { SwaggerUIController } from \"./js/org.qcobjects.controllers.swagger\";\nexport {\n Fade, Move, MoveXInFromRight,\n MoveXInFromLeft,\n MoveYInFromBottom,\n MoveYInFromTop,\n RotateX,\n RotateY,\n RotateZ,\n Rotate,\n Radius,\n Resize,\n WipeLeft,\n WipeRight,\n WipeUp,\n WipeDown,\n ModalFade, ModalMoveUp, ModalMoveDown\n} from \"./js/org.qcobjects.effects\";\nexport { ModalController } from \"./js/org.qcobjects.modal.controllers\";\nexport { GridView } from \"./js/org.qcobjects.views\";\nexport { CanvasTool } from \"./js/org.qcobjects.tools.canvas\";\nexport { BasicLayout } from \"./js/org.qcobjects.tools.layouts\";\nexport { SessionUserToken } from \"./js/org.qcobjects.cloud.auth.session.usertoken\";\nexport { SessionData } from \"./js/org.qcobjects.cloud.auth.session.data\";\n\n// eslint-disable-next-line camelcase\n(function __qcobjects_sdk__(_top: any) {\n \"use strict\";\n if (typeof Object.defineProperty !== \"undefined\" && typeof _top !== \"undefined\") {\n try {\n Object.defineProperty(_top, \"__qcobjects_sdk__\", {\n enumerable: true,\n configurable: false,\n writable: false,\n // eslint-disable-next-line camelcase\n value: __qcobjects_sdk__,\n });\n } catch (e) {\n if (typeof _top.__qcobjects_sdk__ !== \"undefined\") {\n _top.__qcobjects_sdk__.__loaded__ = true;\n }\n }\n }\n\n if (typeof _top.__qcobjects_sdk__.__loaded__ === \"undefined\") {\n _top.__qcobjects_sdk__.__loaded__ = true;\n if (typeof _top === \"undefined\") {\n throw Error(\"Top context empty: It should either global, module or window\");\n }\n\n const __start__ = GlobalSettings.__start__.bind(_top);\n\n\n _top._sdk_ = Promise.resolve().then(() => {\n CONFIG.set(\"useSDK\", true);\n __start__();\n });\n\n }\n\n})(_top);\n\nexport default _top;", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, InheritClass, CONFIG, Import, global } from \"qcobjects\";\n\n\n\nexport class i18n_messages extends InheritClass {\n\n constructor({\n messages = []\n }) {\n super({\n messages\n });\n if (CONFIG.get(\"use_i18n\", false)) {\n CONFIG.set(\"lang\", \"en\");\n if (!global.get(\"i18n\")) {\n global.set(\"i18n\", {\n messages\n });\n } else {\n global.set(\"i18n\", {\n messages: global.get(\"i18n\").messages.concat(messages)\n });\n }\n }\n\n }\n\n _load_i18n_packages_() {\n // eslint-disable-next-line array-callback-return\n return CONFIG.get(\"i18n_languages\", []).map((i18n_packagename: any) => {\n\n Import(`org.quickcorp.i18n_messages.${i18n_packagename}`);\n });\n }\n\n}\n\nPackage(\"org.qcobjects.i18n_messages\", [\n\n i18n_messages\n]);\n\n(new i18n_messages({}))._load_i18n_packages_();\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, VO } from \"qcobjects\";\nexport class Contact extends VO {\n\n}\n\nPackage(\"org.qcobjects.models\", [\n Contact\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\n\nimport { Package, Component, _DOMCreateElement, CONFIG, New, ClassFactory, Tag, ComponentURI } from \"qcobjects\";\nimport { ModalFade, ModalMoveDown, ModalMoveUp } from \"./org.qcobjects.effects\";\nimport {FormField, FieldComponentParams} from \"./org.qcobjects.base.components\";\nexport {FormField};\n\nexport class ShadowedComponent extends Component {\n container = null;\n shadowed = true;\n cached = false;\n controller = null;\n view = null;\n data = {};\n\n constructor(o: FieldComponentParams) {\n o.body = _DOMCreateElement(\"div\");\n super(o);\n }\n\n\n}\n\nexport class ButtonField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"button\";\n super(o);\n }\n}\n\nexport class InputField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"input\";\n super(o);\n }\n\n}\n\nexport class TextField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"textarea\";\n super(o);\n }\n\n}\n\nexport class EmailField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"input\";\n super(o);\n }\n\n}\n\nexport class ModalEnclosureComponent extends Component {\n name = \"modalenclosure\";\n tplsource = \"inline\";\n cached = false;\n basePath = CONFIG.get(\"modalBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n template = `\n\n\n
            \n\n\n
            \n×\n{{content}}\n
            \n\n
            \n`;\n\n data = {};\n constructor(o: FieldComponentParams) {\n o.body = _DOMCreateElement(\"div\");\n super(o);\n }\n\n}\n\nexport class ModalComponent extends Component {\n name = \"modal\";\n cached = false;\n modalEnclosureComponentClass = \"ModalEnclosureComponent\";\n controller = null;\n view = null;\n tplsource = \"none\";\n closeOnClickOutside = false;\n data = {\n content: \"\",\n modalId: 0\n };\n\n submodal = null;\n __instanceID!: number;\n basePath: any;\n subcomponents: any;\n body: any;\n templateURI: any;\n\n constructor(o: FieldComponentParams) {\n o.basePath = CONFIG.get(\"modalBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n super(o);\n this.data.modalId = this.__instanceID;\n const submodal = New(ClassFactory(this.modalEnclosureComponentClass), {\n name: this.name,\n basePath: this.basePath,\n data: this.data\n });\n this.subcomponents.push(submodal);\n this.submodal = submodal;\n if (submodal.tplsource === \"none\") {\n this.body.innerHTML = submodal.parsedAssignmentText;\n } else {\n this.body.append(submodal.body);\n }\n\n }\n\n modal() {\n const modalId = this.data.modalId;\n\n Tag(\"#modalInstance_\" + modalId + \".modal\").map((modal: any) => {\n modal.style.display = \"block\";\n\n return (new ModalFade()).apply(modal, 0, 1);\n });\n Tag(\"#modalInstance_\" + modalId + \".modal .modal-content\").map((modalcontent: any) => {\n\n return ModalMoveDown.apply(modalcontent, 0, -document.body.clientHeight, 0, 0);\n });\n Tag(\"#modalInstance_\" + modalId + \".modal .modal-content .close\").map((closebtn: any) => {\n\n return closebtn.addEventListener(\"click\", () => {\n this.close();\n }, false);\n });\n if (this.closeOnClickOutside) {\n window.addEventListener(\"click\", () => {\n this.close();\n }, false);\n }\n }\n\n close() {\n const modalId = this.data.modalId;\n Tag(\"#modalInstance_\" + modalId + \".modal\").map((modal: any) => {\n modal.style.display = \"block\";\n\n return (new ModalFade({ duration: 3000 })).apply(modal, 1, 0);\n });\n Tag(\"#modalInstance_\" + modalId + \".modal .modal-content\").map(function (modalcontent: any) {\n\n return ModalMoveUp.apply(modalcontent, 0, 0, 0, -document.body.clientHeight);\n });\n setTimeout(function () {\n Tag(\"#modalInstance_\" + modalId + \".modal\").map((modal: any) => {\n modal.style.display = \"none\";\n return true;\n });\n }, 900);\n }\n\n rebuild() {\n const _ret_ = super.rebuild();\n this.templateURI = ComponentURI({\n \"COMPONENTS_BASE_PATH\": CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": \"modal\",\n \"TPLEXTENSION\": CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": \"default\" // here is always default in order to get the right uri\n });\n\n return _ret_; // parent call\n }\n\n\n}\n\nexport class SwaggerUIComponent extends Component {\n cached = false;\n basePath = CONFIG.get(\"remoteSDKPath\", \"\");\n tplextension = \"tpl.html\";\n name = \"swagger-ui\";\n\n}\n\n\nPackage(\"org.qcobjects.form.components\", [\n ShadowedComponent,\n ButtonField,\n InputField,\n TextField,\n EmailField,\n ModalEnclosureComponent,\n ModalComponent,\n SwaggerUIComponent\n]);\n\n\n", "import { Package, Effect, logger } from \"qcobjects\";\n\nexport type MoveElement = HTMLElement & {\n width?:number;\n height?:number;\n };\n\n export class Fade extends Effect {\n duration = 1000;\n static duration: any;\n\n constructor(o?:{duration:number}){\n super(o);\n this.duration = o?.duration as number;\n }\n apply(element:HTMLElement, alphaFrom:number, alphaTo:number) {\n const da = alphaTo - alphaFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const alpha = alphaFrom + (progress * da / 100);\n logger.debug(\"alpha: \" + alpha.toString());\n element.style.opacity = alpha.toString();\n }\n });\n\n }\n\n static apply(element:HTMLElement, alphaFrom:number, alphaTo:number) {\n const da = alphaTo - alphaFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const alpha = alphaFrom + (progress * da / 100);\n logger.debug(\"alpha: \" + alpha.toString());\n element.style.opacity = alpha.toString();\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n\n export class Move extends Effect {\n duration = 1000;\n static duration: any;\n\n static apply(element:MoveElement, xfrom:number, yfrom:number, xto:number, yto:number) {\n const dx = xto - xfrom;\n const dy = yto - yfrom;\n element.style.transform = \"translate(\" + xfrom + \"px,\" + yfrom + \"px)\";\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const y = yfrom + (progress * dy / 100);\n const x = xfrom + (progress * dx / 100);\n logger.debug(\"x: \" + x.toString() + \" y:\" + y.toString());\n element.style.transform = \"translate(\" + x + \"px,\" + y + \"px)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n Package(\"org.qcobjects.effects.base\", [\n Fade,\n Move\n ]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport {Effect, logger, Package} from \"qcobjects\";\nimport {Move, MoveElement} from \"./org.qcobjects.effects.base\";\n\nexport class MoveXInFromRight extends Move {\n duration = 1000;\n\n static apply(element:MoveElement) {\n Move.apply.call(this, element, element.width as number, 0, 0, 0);\n }\n }\n\n export class MoveXInFromLeft extends Move {\n duration = 1000;\n\n static apply(element:MoveElement) {\n Move.apply.call(this, element, -(element.width as number), 0, 0, 0);\n }\n }\n\n export class MoveYInFromBottom extends Move {\n duration = 1000;\n\n static apply(element:MoveElement) {\n Move.apply.call(this, element, 0, element.height as number, 0, 0);\n }\n\n }\n\n export class MoveYInFromTop extends Move {\n duration = 1000;\n\n static apply(element:MoveElement ) {\n Move.apply.call(this, element, 0, -(element.height as number), 0, 0);\n }\n }\n\n export class RotateX extends Effect {\n duration = 1000;\n static duration: any;\n\n static apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(1,0,0,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class RotateY extends Effect {\n duration = 1000;\n static duration: any;\n\n static apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(0,1,0,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n\n export class RotateZ extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(0,0,1,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class Rotate extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(1,1,1,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n\n export class Radius extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, radiusFrom:number, radiusTo:number) {\n const dr = radiusTo - radiusFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const radius = radiusFrom + (progress * dr / 100);\n logger.debug(\"radius: \" + radius.toString());\n element.style.borderRadius = radius.toString() + \"px\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class Resize extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"resize: \" + scale.toString());\n element.style.transformOrigin = \"center\";\n element.style.transform = \"scale(\" + scale + \",\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeLeft extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"right\";\n element.style.transform = \"scaleX(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeRight extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"left\";\n element.style.transform = \"scaleX(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeUp extends Effect {\n\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"bottom\";\n element.style.transform = \"scaleY(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeDown extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"top\";\n element.style.transform = \"scaleY(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n Package(\"org.qcobjects.effects.extended\", [\n MoveXInFromRight,\n MoveXInFromLeft,\n MoveYInFromBottom,\n MoveYInFromTop,\n RotateX,\n RotateY,\n RotateZ,\n Rotate,\n Radius,\n Resize,\n WipeLeft,\n WipeRight,\n WipeUp,\n WipeDown\n\n ]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package } from \"qcobjects\";\nimport { Fade, Move } from \"./org.qcobjects.effects\";\n\nexport class ModalFade extends Fade {\n duration = 500;\n\n}\n\n\nexport class ModalMoveUp extends Move {\n\n duration = 800;\n\n}\n\n\nexport class ModalMoveDown extends Move {\n\n duration = 300;\n\n}\n\n\nPackage(\"org.qcobjects.modal.effects\", [\n ModalFade,\n ModalMoveDown,\n ModalMoveUp\n]);\n\n\n", "import {Package, Component, logger} from \"qcobjects\";\nexport type FieldComponentParams = {\n name: string;\n body: any;\n data: any;\n basePath?: string;\n fieldType: string;\n}\nexport class FormField extends Component {\n fieldType!: string;\n cached = false;\n reload = true;\n body: any;\n name!: string;\n data: any;\n constructor(o: FieldComponentParams) {\n o.name = (typeof o.name !== \"undefined\") ? (o.name) : (\"form-field\");\n super(o);\n }\n\n createBindingEvents() {\n let _objList;\n if (typeof this.fieldType === \"undefined\" || this.fieldType == null) {\n _objList = this.body.subelements(\"*[data-field]\"); // every child with data-field set\n } else {\n _objList = this.body.subelements(this.fieldType + \"[data-field]\"); // every child with data-field set and tagname is equal to fieldType property\n }\n for (let _datak = 0; _datak < _objList.length; _datak++) {\n const _obj = _objList[_datak];\n _obj.addEventListener(\"change\", () => {\n logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"blur\", () => {\n logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"focus\", () => {\n logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"keydown\", () => {\n logger.debug(\"Executing keydown event binding\");\n this.executeBindings();\n });\n }\n }\n\n executeBinding(_obj: HTMLElement & { value: any }) {\n const _datamodel = _obj.getAttribute(\"data-field\");\n logger.debug(\"Binding \" + _datamodel + \" for \" + this.name);\n this.data[_datamodel as keyof typeof this.data] = _obj.value;\n }\n\n executeBindings() {\n let _objList;\n if (typeof this.fieldType === \"undefined\" || this.fieldType == null) {\n _objList = this.body.subelements(\"*[data-field]\"); // every child with data-field set\n } else {\n _objList = this.body.subelements(this.fieldType + \"[data-field]\"); // every child with data-field set and tagname is equal to fieldType property\n }\n for (let _datak = 0; _datak < _objList.length; _datak++) {\n const _obj = _objList[_datak] as HTMLElement & { value: any };\n const _datamodel = _obj.getAttribute(\"data-field\");\n logger.debug(\"Binding \" + _datamodel + \" for \" + this.name);\n this.data[_datamodel as keyof typeof this.data] = _obj.value;\n }\n }\n\n done(standardResponse: any): Promise {\n const _ret_ = super.done(standardResponse);\n this.executeBindings();\n this.createBindingEvents();\n logger.debug(\"Field loaded: \" + this.fieldType + \"[name=\" + this.name + \"]\");\n return _ret_ as Promise;\n }\n\n\n}\n\nPackage(\"org.qcobjects.base.components\", [\n FormField\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, Component } from \"qcobjects\";\n\nexport class GridItemComponent extends Component {\n name = \"grid-item\";\n shadowed = true;\n tplsource = \"inline\";\n template = `\n\n

            {{description}}

            \n`;\n\n cached = false;\n\n}\n\nexport class GridComponent extends Component {\n name = \"grid\";\n cached = false;\n view = null;\n shadowed = true;\n rows = 3;\n cols = 3;\n templateURI = \"\";\n data = {};\n tplsource = \"inline\";\n template = \"

            Loading...

            \";\n body: any;\n\n constructor(o: any) {\n super(o);\n this.body.setAttribute(\"controllerClass\", \"DataGridController\");\n const subcomponentClass = (this.body.getAttribute(\"subcomponentClass\") !== null) ? (this.body.getAttribute(\"subcomponentClass\")) : (\"GridItemComponent\");\n this.body.setAttribute(\"subcomponentClass\", subcomponentClass as string);\n\n }\n\n\n}\n\nPackage(\"org.qcobjects.components.grid\", [\n GridComponent,\n GridItemComponent\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Component, Package } from \"qcobjects\";\n\n\nexport class ListItemComponent extends Component {\n shadowed= false;\n tplsource= \"inline\";\n template=\"{{label}}\";\n cached= false;\n\n constructor (o:any){\n o.name=\"list-item\";\n super(o);\n }\n\n}\n\nexport class ListComponent extends Component {\n data!:any;\n shadowed= true;\n tplsource= \"inline\";\n template= \"

            Loading...

            \";\n body: any;\n shadowRoot: HTMLElement | undefined;\n rows!: string | number | null;\n subcomponents!: never[];\n done: any;\n serviceData: any;\n\n constructor (o:any){\n o.name = \"list\";\n super(o);\n this.body.setAttribute(\"controllerClass\",\"ListController\");\n this.body.setAttribute(\"subcomponentClass\",\"ListItemComponent\");\n\n }\n\n}\n\nPackage(\"org.qcobjects.components.list\",[\n ListItemComponent,\n ListComponent\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Component } from \"qcobjects\";\n\nexport class SlideListComponent extends Component {\n tplsource = \"inline\";\n template = \"

            Loading...

            \";\n name = \"slidelist\";\n body: any;\n\n constructor(o: any) {\n super(o);\n this.body.setAttribute(\"controllerClass\", \"DataGridController\");\n const subcomponentClass = (this.body.getAttribute(\"subcomponentClass\") !== null) ? (this.body.getAttribute(\"subcomponentClass\")) : (\"GridItemComponent\");\n this.body.setAttribute(\"subcomponentClass\", subcomponentClass as string);\n }\n\n}\n\nexport class SlideItemComponent extends Component {\n effectClass = \"Fade\";\n name = \"slider_item\";\n data: any;\n template: string;\n tplsource: string;\n\n constructor(o: any) {\n super(o);\n this.data.slideNumber = this.data.__dataIndex + 1;\n this.template = `\n
            \n
            {{slideNumber}} / {{__dataLength}}
            \n \"{{title}}\"/\n
            \n

            {{label}} {{category}}

            \n
            \n
            \n `;\n this.tplsource = \"inline\";\n\n }\n\n}\n\nexport class SliderComponent extends Component {\n name = \"slider\";\n template: string;\n tplsource: string;\n shadowed: boolean;\n data: any;\n body: any;\n __instanceID: any;\n\n constructor(o: any) {\n super(o);\n this.template = `\n \n\n
            \n \n\n \n \n
            \n
            \n\n
            \n
            \n\n `;\n this.tplsource = \"inline\";\n this.shadowed = true;\n this.data.SERVICE_CLASS = this.body.getAttribute(\"serviceClass\");\n this.data.sliderHandler = \"slider_\" + this.__instanceID.toString();\n this.body.setAttribute(\"controllerClass\", \"SliderController\");\n\n }\n\n}\n\n\nPackage(\"org.qcobjects.components.slider\", [\n SlideListComponent,\n SlideItemComponent,\n SliderComponent\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Component, _DOMCreateElement, New, _super_ } from \"qcobjects\";\nimport { Fade, Move } from \"./org.qcobjects.effects\";\n\n\nexport class NotificationComponent extends Component {\n cached= false;\n tplsource= \"inline\";\n shadowed= false;\n kinds:string[];\n template: string;\n\n constructor (o:any){\n o.name= \"notification\";\n o.body = _DOMCreateElement(\"div\") as HTMLElement;\n super(o);\n\n this.template= `\n \n
            \n
            \n

            {{title}} {{message}}

            \n
            \n
            \n `;\n this.kinds=[\"danger\", \"success\", \"info\", \"warning\"];\n\n }\n\n display(element:HTMLElement) {\n const _display_ = function (element:HTMLElement){\n element.style.display=\"block\";\n const appearEffect = New(Move,{\n duration:900,\n apply (element:HTMLElement){\n _super_(\"Fade\",\"apply\").call(this,element,0,1);\n _super_(\"Move\",\"apply\").call(this,element,0,-document.body.clientHeight,0,0);\n }\n });\n const disappearEffect = New(Move,{\n duration:650,\n apply (element:HTMLElement){\n _super_(\"Fade\",\"apply\").call(this,element,1,0);\n _super_(\"Move\",\"apply\").call(this,element,0,0,0,-document.body.clientHeight);\n }\n });\n appearEffect.apply(element);\n setTimeout(function (){\n disappearEffect.apply(element);\n },2000);\n };\n \n (element as any).subelements(\"div.notification_background\").map((element:HTMLElement):any=> {return (new Fade ({duration:500})).apply(element,0,1);} );\n (element as any).subelements(\"div.notification\").map((element:any)=>_display_(element));\n setTimeout(function (){\n element.remove();\n },2200);\n }\n\n static success(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"success\",\n title: \"Success!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n\n static danger(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"danger\",\n title: \"Danger!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n\n static info(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"info\",\n title: \"Info!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n\n static warning(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"warning\",\n title: \"Warning!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n \n\n}\n\nPackage(\"org.quickcorp.components.notifications\", [\n NotificationComponent\n]);\n", "/**\n * QCObjects SDK 2.5.0\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\n\"use strict\";\nimport { Package, Component, CONFIG, logger, global } from \"qcobjects\";\nimport { Resize, Fade } from \"./org.qcobjects.effects\";\n\n type SplashScreenParams = {\n name:string;\n basePath: string;\n data:any;\n body:any;\n }\n type MainSplashComponent = {\n body: any;\n splashScreenComponent: any;\n shadowed: any;\n shadowRoot: any;\n // eslint-disable-next-line no-unused-vars\n addComponentHelper(arg0: () => void): unknown;\n name:string;\n _mainPosition: string;\n _mainOpacity: string;\n }\n\nexport class SplashScreenComponent extends Component {\n _enabled_: boolean;\n _bgcolor: string;\n cached = false;\n shadowed = true;\n body: any;\n shadowRoot: any;\n\n constructor(component: SplashScreenParams) {\n component.name = (typeof component.name === \"undefined\") ? (\"splashscreen\") : (component.name);\n\n const isBrowser = typeof window !== \"undefined\" && typeof window.self !== \"undefined\" && window === window.self;\n const isStartURL = (location.hash === \"\"\n && location.pathname === \"/\" && location.search === \"\")\n || CONFIG.get(\"routingWay\", \"pathname\") === \"hash\" && CONFIG.get(\"start_url\", \"/\") === location.hash\n || CONFIG.get(\"routingWay\", \"pathname\") === \"pathname\" && CONFIG.get(\"start_url\", \"/\") === location.pathname\n || CONFIG.get(\"routingWay\", \"pathname\") === \"search\" && CONFIG.get(\"start_url\", \"/\") === location.search;\n const _enabled_ = isBrowser && isStartURL;\n\n if (_enabled_) {\n component.basePath = CONFIG.get(\"splashscreenBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n if (typeof component.data === \"undefined\") {\n component.data = {};\n }\n component.data.basePath = component.basePath;\n } else {\n if (typeof component !== \"undefined\" && typeof component.body !== \"undefined\") {\n component.body.style.display = \"none\";\n }\n }\n super(component);\n this._bgcolor = \"\";\n this._enabled_ = _enabled_;\n\n if (this._enabled_) {\n const displayEffectDuration = 1000;\n let duration = this.body.getAttribute(\"duration\") as unknown as number;\n if (duration === null) {\n duration = displayEffectDuration;\n } else {\n duration = parseInt(duration.toString());\n }\n this._bgcolor = this.body.style.backgroundColor;\n\n const _helper_ = () => {\n setTimeout(() => {\n if (!_helper_.executed) {\n const _componentRoot = (this.shadowed) ? (this.shadowRoot?.host as HTMLElement) : (this.body as HTMLElement);\n if (typeof global.componentsStack !== \"undefined\") {\n \n global.componentsStack.filter((c: MainSplashComponent) => c.body.hasAttribute(\"splashscreen\")).map(\n (mainComponent: MainSplashComponent) => {\n logger.debug(`Splash Screen of Main Component: ${mainComponent.name}`);\n mainComponent.splashScreenComponent = this;\n const SplashScreenHandler = () => {\n if (!(SplashScreenHandler as any).executed) {\n const component = mainComponent.splashScreenComponent as SplashScreenComponent;\n const mainElement = (mainComponent.shadowed) ? (mainComponent.shadowRoot?.host as HTMLElement) : (mainComponent.body as HTMLElement);\n mainComponent._mainPosition = mainElement.style.position;\n if (typeof mainElement !== \"undefined\") {\n mainElement.style.position = \"fixed\";\n }\n mainComponent._mainOpacity = mainElement.style.opacity;\n _componentRoot.style.width = \"100%\";\n _componentRoot.style.height = \"100%\";\n document.body.style.backgroundColor = \"#111111\";\n mainElement.style.opacity = \"0\";\n setTimeout(function () {\n if (typeof _componentRoot !== \"undefined\") {\n document.body.style.backgroundColor = component?._bgcolor;\n (_componentRoot as any).subelements(\"#slot-logo\").map((slotlogo:any) => {\n slotlogo.style.display = \"block\";\n slotlogo.style.transformOrigin = \"center\";\n \n return (new Resize()).apply(slotlogo, 1, 0);\n });\n (new Fade()).apply(_componentRoot, 1, 0);\n }\n }, (duration - displayEffectDuration));\n setTimeout(function () {\n (new Fade()).apply(mainElement, 0, 1);\n mainElement.style.position = mainComponent._mainPosition;\n document.body.style.backgroundColor = component._bgcolor;\n if (_componentRoot.parentElement !== null) {\n _componentRoot.parentElement.remove();\n }\n }, duration);\n }\n (SplashScreenHandler as any).executed = true;\n };\n return mainComponent.addComponentHelper(SplashScreenHandler.bind(mainComponent));\n }\n );\n }\n _helper_.executed = true;\n }\n\n });\n };\n _helper_.executed = false;\n this.addComponentHelper(_helper_.bind(component));\n }\n\n }\n // eslint-disable-next-line no-unused-vars\n addComponentHelper(arg0: { (): void; executed: boolean; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n\n }\n\n\n Package(\"org.qcobjects.components.base\", [\n SplashScreenComponent\n ]);\n\n export class VideoSplashScreenComponent extends SplashScreenComponent {\n cached = false;\n shadowed = true;\n tplsource = \"inline\";\n template = `\n \n
            \n
            \n \n \n
            \n
            \n\n `;\n\n\n constructor(o: SplashScreenParams) {\n o.name = \"videosplashscreen\";\n super(o);\n }\n }\n\n export class CubeSplashScreenComponent extends SplashScreenComponent {\n cached = false;\n shadowed = true;\n tplsource = \"inline\";\n template = `\n \n\n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n
            \n\n `;\n\n constructor(o: SplashScreenParams) {\n o.name = \"cubesplashscreen\";\n super(o);\n }\n\n }\n\n\n Package(\"org.qcobjects.components.splashscreen\", [\n SplashScreenComponent,\n VideoSplashScreenComponent,\n CubeSplashScreenComponent\n ]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Controller, Package } from \"qcobjects\";\n\nexport class GenericController extends Controller {\n\n}\n\nPackage(\"org.qcobjects.controllers\", [\n GenericController\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, Controller, logger, CONFIG, _DataStringify, _DOMCreateElement, New, ClassFactory, ComponentURI, serviceLoader } from \"qcobjects\";\nimport { ListComponent } from \"./org.qcobjects.components.list\";\nexport type ListControllerParams = {\n component: ListComponent;\n valueField: string | undefined;\n labelField: string | undefined;\n dependencies: any[];\n};\n\nexport class ListController extends Controller {\n __instanceID!: number;\n component: ListComponent;\n valueField: string | undefined;\n labelField: string | undefined;\n rows: number | string | null;\n cols: number;\n _componentRoot: HTMLElement | undefined;\n\n constructor({ component, dependencies = [], valueField = undefined, labelField = undefined }: ListControllerParams) {\n super({ component, dependencies, valueField, labelField } as ListControllerParams);\n this.component = component;\n this._componentRoot = (this.component.shadowed) ? (this.component.shadowRoot) : (this.component.body);\n\n this.labelField = this.component.body.getAttribute(\"label-field\") as string;\n this.valueField = this.component.body.getAttribute(\"value-field\") as string;\n this.rows = this.component.body.getAttribute(\"rows\");\n this.rows = (this.rows !== null) ? (this.rows) : (this.component.rows);\n this.cols = 1;\n logger.debug(\"ListController INIT\");\n\n }\n\n getPageIndex(page: number, totalPage: number, totalElements: number) {\n page = (page > 0) ? (page - 1) : (0);\n return [totalElements * page / totalPage, (totalElements * page / totalPage) + totalElements / totalPage];\n }\n\n addSubcomponents() {\n this.component.subcomponents = [];\n const layout = this.component.body.getAttribute(\"layout\");\n const basePath = CONFIG.get(\"listBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n let cssLayout = \"\";\n this.labelField = this.component.body.getAttribute(\"label-field\");\n this.valueField = this.component.body.getAttribute(\"value-field\");\n\n if (layout === \"horizontal\") {\n cssLayout = `@import url(\"${basePath}css/components/horizontal-list.css\");`;\n } else {\n cssLayout = `@import url(\"${basePath}css/components/list.css\");`;\n }\n if (typeof this._componentRoot !== \"undefined\") {\n this._componentRoot.innerHTML = `
              `;\n }\n logger.debug(_DataStringify(this.component.data));\n try {\n const subcomponentClass = this.component.body.getAttribute(\"subcomponentClass\");\n if (subcomponentClass != null) {\n let offset: number;\n let limit: number;\n let pagesNumber: number;\n let list = [...this.component.data];\n let paginateIn = this.component.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n let page: number;\n if (paginateIn === \"client\") {\n page = this.component.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n if (page !== -1) {\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, list.length)[0];\n limit = this.getPageIndex(page, pagesNumber, list.length)[1];\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list = list.slice(offset, limit);\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list.map(\n (record, dataIndex) => {\n const _ret_ = undefined;\n try {\n const _body = _DOMCreateElement(\"li\");\n record.label = record[this.labelField as string];\n record.value = record[this.valueField as string];\n const subcomponent = New(ClassFactory(subcomponentClass), {\n name: \"list-item\",\n data: {\n label: record[this.labelField as string],\n value: record[this.valueField as string],\n __dataIndex: dataIndex,\n __page: page,\n __totalPages: pagesNumber,\n __limit: limit,\n __offset: offset\n },\n templateURI: ComponentURI({\n \"COMPONENTS_BASE_PATH\": CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": ClassFactory(subcomponentClass).name,\n \"TPLEXTENSION\": CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": ClassFactory(subcomponentClass).tplsource\n }),\n body: _body,\n template: ClassFactory(subcomponentClass).template\n });\n subcomponent.done = this.component.done.bind(subcomponent);\n try {\n if (subcomponent) {\n subcomponent.data.__dataIndex = dataIndex;\n if (Object.hasOwnProperty.call(this.component.data, \"length\")) {\n subcomponent.data.__dataLength = this.component.data.length;\n }\n logger.debug(\"adding subcomponent to body\");\n\n (this._componentRoot as any).subelements(\"ul\").map((ul: HTMLElement) => ul.append(subcomponent));\n try {\n this.component.subcomponents.push(subcomponent as never);\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n } else {\n logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n return _ret_;\n }\n );\n } else {\n logger.debug(\"NO SUBCOMPONENT CLASS IN COMPONENT\");\n }\n\n } catch (e: any) {\n logger.debug(`No data for component: ${e}`);\n }\n }\n\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = _DOMCreateElement(\"style\");\n const templateRows = \"auto \".repeat(this.rows as number);\n const templateCols = \"auto \".repeat(this.cols);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n _componentRoot.append(s);\n _componentRoot.classList.add(className);\n }\n }\n\n done() {\n this.cssGrid();\n\n const componentInstance = this.component;\n logger.debug(\"ListController DONE\");\n const serviceClass = this.component.body.getAttribute(\"serviceClass\");\n if (serviceClass != null) {\n let offset;\n let limit;\n let paginateIn = componentInstance.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"server\") {\n let page = componentInstance.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n let pagesNumber;\n if (page !== -1) {\n const serverDataCount = (this.component.body.getAttribute(\"server-data-count\") !== null) ? (this.component.body.getAttribute(\"server-data-count\")) : (1);\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0];\n limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1];\n // send params in jsonrpc 2.0 style\n componentInstance.serviceData = (typeof componentInstance.serviceData !== \"undefined\") ? (componentInstance.serviceData) : ({});\n componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== \"undefined\") ? (componentInstance.serviceData.params) : ({});\n componentInstance.serviceData.params.offset = offset;\n componentInstance.serviceData.params.limit = limit;\n }\n }\n\n serviceLoader(New(ClassFactory(serviceClass), {\n data: componentInstance.serviceData\n }), false).then(\n (successfulResponse: { service: any }) => {\n // This will show the service response as a plain text\n logger.debug(\"DONE SERVICE COMPONENT\");\n successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template);\n if (typeof successfulResponse.service.JSONresponse.result !== \"undefined\") {\n logger.debug(_DataStringify(successfulResponse.service.JSONresponse.result));\n componentInstance.data = successfulResponse.service.JSONresponse.result;\n } else {\n componentInstance.data = successfulResponse.service.JSONresponse;\n }\n this.addSubcomponents();\n\n },\n (failedResponse: string) => {\n logger.debug(failedResponse);\n }).catch((e: any) => {\n logger.debug(\"Something went wrong when calling the service from: \" + serviceClass);\n logger.debug(e.message);\n });\n\n }\n\n }\n\n\n}\n\n\nPackage(\"org.qcobjects.controllers.list\", [\n ListController\n\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\n\"use strict\";\nimport { Package, Controller, _DOMCreateElement, logger, _DataStringify, ClassFactory, New, ComponentURI, CONFIG, serviceLoader, Component } from \"qcobjects\";\nimport { GridComponent } from \"./org.qcobjects.components.grid\";\n\ntype DataGridControllerParams = {\n component: Component;\n rows: number | string | null;\n cols: number | string | null;\n}\n\nexport class GridController extends Controller {\n __instanceID!: number;\n rows: number | string | null;\n cols: number | string | null;\n component: any;\n\n constructor(controller: any) {\n super(controller);\n this.rows = this.component.body.getAttribute(\"rows\");\n this.rows = (this.rows !== null) ? (this.rows) : ((this.component).rows);\n this.cols = this.component.body.getAttribute(\"cols\");\n this.cols = (this.cols !== null) ? (this.cols) : ((this.component).cols);\n\n }\n\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = _DOMCreateElement(\"style\");\n const templateRows = \"auto \".repeat(this.rows as number);\n const templateCols = \"auto \".repeat(this.cols as number);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n _componentRoot?.append(s);\n if (component.shadowed) {\n (_componentRoot as ShadowRoot)?.host.classList.add(className);\n } else {\n ((_componentRoot as HTMLDivElement).classList).add(className);\n }\n }\n }\n\n done() {\n this.cssGrid();\n\n logger.debug(\"GridComponent built\");\n\n }\n\n}\n\nexport class DataGridController extends Controller {\n __instanceID!: number;\n rows: number | string | null;\n cols: number | string | null;\n _componentRoot: HTMLElement | ShadowRoot | undefined;\n component: any;\n\n constructor(controller: DataGridControllerParams) {\n super(controller);\n this._componentRoot = (controller.component.shadowed) ? (controller.component.shadowRoot) : (controller.component.body);\n this.rows = controller.component.body.getAttribute(\"rows\");\n this.rows = (controller.rows !== null) ? (controller.rows) : ((controller.component as GridComponent).rows);\n this.cols = controller.component.body.getAttribute(\"cols\");\n this.cols = (controller.cols !== null) ? (controller.cols) : ((controller.component as GridComponent).cols);\n logger.debug(\"DataGridController INIT\");\n\n }\n\n getPageIndex(page: number, totalPage: number, totalElements: number) {\n page = (page > 0) ? (page - 1) : (0);\n return [totalElements * page / totalPage, (totalElements * page / totalPage) + totalElements / totalPage];\n }\n\n addSubcomponents() {\n this.component.subcomponents = [];\n if (typeof this._componentRoot !== \"undefined\") {\n this._componentRoot.innerHTML = \"\";\n }\n this.cssGrid();\n logger.debug(_DataStringify(this.component.data));\n try {\n const subcomponentClass = this.component.body.getAttribute(\"subcomponentClass\");\n if (subcomponentClass != null) {\n let offset: number;\n let limit: number;\n let pagesNumber: number;\n let list = [...this.component.data];\n let paginateIn = this.component.body.getAttribute(\"paginate-in\");\n let page: number | string | null | undefined;\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"client\") {\n page = this.component.body.getAttribute(\"page-number\") as unknown as number;\n page = (isNaN(page) || page === null) ? (-1) : (page);\n if (page !== -1) {\n pagesNumber = this.component.body.getAttribute(\"total-pages\") as unknown as number;\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, list.length)[0];\n limit = this.getPageIndex(page, pagesNumber, list.length)[1];\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list = list.slice(offset, limit);\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list.map(\n (record, dataIndex, list) => {\n const _ret_ = undefined;\n try {\n const _body = _DOMCreateElement(\"component\");\n _body.setAttribute(\"name\", ClassFactory(subcomponentClass).name);\n _body.setAttribute(\"shadowed\", ClassFactory(subcomponentClass).shadowed);\n _body.setAttribute(\"cached\", ClassFactory(subcomponentClass).cached);\n record = Object.assign(record, {\n __dataIndex: dataIndex,\n __dataLength: list.length,\n __page: page,\n __totalPages: pagesNumber,\n __limit: limit,\n __offset: offset\n });\n const subcomponent = New(ClassFactory(subcomponentClass), {\n name: \"item\",\n data: record,\n templateURI: ComponentURI({\n \"COMPONENTS_BASE_PATH\": CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": ClassFactory(subcomponentClass).name,\n \"TPLEXTENSION\": CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": ClassFactory(subcomponentClass).tplsource\n }),\n body: _body,\n template: ClassFactory(subcomponentClass).template\n });\n subcomponent.done = this.component.done.bind(subcomponent);\n try {\n if (subcomponent) {\n subcomponent.data.__dataIndex = dataIndex;\n if (Object.hasOwnProperty.call(this.component.data, \"length\")) {\n subcomponent.data.__dataLength = this.component.data.length;\n }\n logger.debug(\"adding subcomponent to body\");\n this._componentRoot?.append(subcomponent.body);\n try {\n this.component.subcomponents.push(subcomponent);\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n } else {\n logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n return _ret_;\n }\n );\n } else {\n logger.debug(\"NO SUBCOMPONENT CLASS IN COMPONENT\");\n }\n\n } catch (e: any) {\n logger.debug(`No data for component: ${e}`);\n }\n }\n\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = _DOMCreateElement(\"style\");\n const templateRows = \"auto \".repeat(this.rows as number);\n const templateCols = \"auto \".repeat(this.cols as number);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n if (component.shadowed) {\n component.body.append(s);\n (_componentRoot as ShadowRoot).host.classList.add(className);\n } else {\n _componentRoot?.append(s);\n (_componentRoot as HTMLElement).classList.add(className);\n }\n }\n }\n\n done() {\n const componentInstance = this.component;\n logger.debug(\"DataGridController DONE\");\n const serviceClass = this.component.body.getAttribute(\"serviceClass\");\n if (serviceClass != null) {\n let offset;\n let limit;\n let paginateIn = componentInstance.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"server\") {\n let page = componentInstance.body.getAttribute(\"page-number\") as unknown as number;\n page = (isNaN(page) || page === null) ? (-1) : (page);\n let pagesNumber;\n if (page !== -1) {\n const serverDataCount = (this.component.body.getAttribute(\"server-data-count\") !== null) ? (this.component.body.getAttribute(\"server-data-count\") as unknown as number) : (1);\n pagesNumber = this.component.body.getAttribute(\"total-pages\") as unknown as number;\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0];\n limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1];\n // send params in jsonrpc 2.0 style\n componentInstance.serviceData = (typeof componentInstance.serviceData !== \"undefined\") ? (componentInstance.serviceData) : ({});\n componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== \"undefined\") ? (componentInstance.serviceData.params) : ({});\n componentInstance.serviceData.params.offset = offset;\n componentInstance.serviceData.params.limit = limit;\n }\n }\n\n serviceLoader(New(ClassFactory(serviceClass), {\n data: componentInstance.serviceData\n }), false).then(\n (successfulResponse: { service: any }) => {\n // This will show the service response as a plain text\n logger.debug(\"DONE SERVICE COMPONENT\");\n successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template);\n if (typeof successfulResponse.service.JSONresponse.result !== \"undefined\") {\n logger.debug(_DataStringify(successfulResponse.service.JSONresponse.result));\n componentInstance.data = successfulResponse.service.JSONresponse.result;\n } else {\n componentInstance.data = successfulResponse.service.JSONresponse;\n }\n this.addSubcomponents();\n\n },\n (failedResponse: string) => {\n logger.debug(failedResponse);\n }).catch((e: any) => {\n logger.debug(\"Something went wrong when calling the service from: \" + serviceClass);\n logger.debug(e.message);\n });\n\n }\n\n }\n\n\n}\n\nPackage(\"org.qcobjects.controllers.grid\", [\n GridController,\n DataGridController\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { ClassFactory, Controller, New, Package, logger, Component } from \"qcobjects\";\n\ntype SliderParams = {\n dependencies: any[];\n component: Component;\n duration: number;\n slideIndex: number;\n interval: number | null;\n sliderHandlerName: string | null;\n};\n\nexport class SliderController extends Controller {\n slideIndex = 0;\n duration = 7100;\n interval: any = null;\n sliderHandlerName = \"\";\n _componentRoot: HTMLElement | ShadowRoot | undefined;\n component: Component;\n\n constructor({ component, dependencies = [], duration = 7100, slideIndex = 0, interval = null, sliderHandlerName = null }: SliderParams) {\n super({ component, dependencies, duration, slideIndex, interval, sliderHandlerName } as SliderParams);\n this.component = component;\n this._componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n this.sliderHandlerName = \"slider_\" + this.component.__instanceID.toString();\n (global as any).set(this.sliderHandlerName, this);\n\n }\n\n\n stop() {\n if (this.interval != null) {\n clearInterval(this.interval);\n }\n }\n\n plusSlidesAndStop(n: number) {\n this.stop();\n this.plusSlides(n);\n }\n\n plusSlides(n: number) {\n this.showSlides(this.slideIndex += n);\n }\n\n currentSlide(n: number) {\n this.stop();\n this.showSlides(this.slideIndex = n);\n }\n\n automate() {\n this.interval = setInterval(() => {\n this.plusSlides(1);\n }, this.duration);\n }\n\n showSlides(n: number) {\n const slides = (this._componentRoot as any)?.subelements(\".qcoSlides\");\n const dots = (this._componentRoot as any)?.subelements(\".qcoSlider__dots--dot\");\n\n if (n > (slides.length - 1)) {\n this.slideIndex = 0;\n }\n if (n < 0) {\n this.slideIndex = 0;\n }\n slides.filter((slide: any, index: number) => { return index !== this.slideIndex; }).map((slide: any) => {\n\n return (New(ClassFactory(\"Fade\"), {})).apply(slide, 1, 0);\n });\n // eslint-disable-next-line no-unused-vars\n dots.filter((dot: any, index: number) => { return index !== this.slideIndex; }).map((dot: { classList: { remove: (arg0: string) => any; }; }) => {\n\n return dot.classList.remove(\"active\");\n });\n try {\n dots[this.slideIndex].classList.add(\"active\");\n } catch (e: any) {\n logger.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${e.message}`);\n }\n setTimeout(() => {\n slides.filter((slide: any, index: number) => { return index !== this.slideIndex; }).map((slide: { style: { display: string; }; }) => {\n slide.style.display = \"none\";\n return slide.style.display;\n });\n try {\n slides[this.slideIndex].style.display = \"block\";\n (New(ClassFactory(\"Fade\"), {})).apply(slides[this.slideIndex], 0, 1);\n\n } catch (e: any) {\n logger.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${e.message}`);\n }\n }, 700);\n }\n\n fillDots() {\n const slides = (this._componentRoot as any)?.subelements(\".qcoSlides\");\n slides.map((slide: HTMLElement, index: number) => {\n const dotHTML = document.createElement(\"span\");\n const dotContent = ``;\n dotHTML.innerHTML = dotContent;\n\n return (this._componentRoot as any)?.subelements(\".qcoSlider__dots\")[0].append(dotHTML);\n });\n\n }\n\n done() {\n const slides = (this._componentRoot as any)?.subelements(\".qcoSlides\");\n slides.filter((slide: HTMLElement, index: number) => { return index !== this.slideIndex; }).map((slide: { style: { display: string; }; }) => {\n slide.style.display = \"none\";\n return slide.style.display;\n });\n setTimeout(() => {\n this.fillDots();\n this.slideIndex = 0;\n this.showSlides(this.slideIndex);\n this.automate();\n }, 3000);\n\n }\n\n}\n\n\nPackage(\"org.qcobjects.controllers.slider\", [\n\n SliderController\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Controller, serviceLoader, New, ClassFactory, logger, _DOMCreateElement, Tag } from \"qcobjects\";\nimport { FormField, ModalComponent } from \"./org.qcobjects.components\";\n\nexport class FormValidations extends Controller {\n getDefault() {\n return function (fieldName: string, dataValue: any, element: HTMLElement) {\n const _regex = {\n name: \"^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$\",\n email: \"^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$\"\n };\n const _pattern_ = (element.getAttribute(\"pattern\") || _regex[fieldName as keyof typeof _regex]);\n const pattern = new RegExp(_pattern_);\n return pattern.test(dataValue);\n };\n }\n\n}\n\nexport class FormController extends Controller {\n validations: any[] = [];\n formValidatorModal!: ModalComponent;\n serviceClass = \"\";\n formSettings = {\n backRouting: \"#\",\n loadingRouting: \"#loading\",\n nextRouting: \"#signupsuccessful\"\n };\n component: any;\n\n hasValidation(element: HTMLElement) {\n const fieldName = element.getAttribute(\"data-field\") as string;\n let _hasValidation = false;\n if (typeof this.validations !== \"undefined\"\n && Object.hasOwnProperty.call(this.validations, fieldName)) {\n _hasValidation = true;\n }\n return _hasValidation;\n }\n\n isInvalid(element: HTMLElement) {\n let _isInvalid = false;\n const fieldName = element.getAttribute(\"data-field\");\n const dataValue = this.component.data[fieldName as string];\n\n const _execValidation = (fieldName: string, dataValue: any, element: HTMLElement) => {\n\n return (typeof this.validations !== \"undefined\"\n && Object.hasOwnProperty.call(this.validations, fieldName)\n && this.validations[fieldName as keyof typeof this.validations].call(null, fieldName, dataValue, element));\n };\n\n if (typeof this.validations !== \"undefined\" && (\n !_execValidation(fieldName as string, dataValue, element)\n )) {\n _isInvalid = true;\n }\n return _isInvalid;\n }\n\n isValid(element: HTMLElement) {\n return !this.isInvalid(element);\n }\n\n save() {\n if (this.serviceClass !== \"\") {\n location.href = this.formSettings.loadingRouting;\n serviceLoader(New(ClassFactory(this.serviceClass), {\n data: this.component.data\n }), false).then(\n () => {\n // This will show the service response as a plain text\n console.log(\"DONE SERVICE COMPONENT\");\n location.href = this.formSettings.nextRouting;\n\n },\n (failedResponse: string) => {\n logger.debug(failedResponse);\n location.href = this.formSettings.backRouting;\n });\n } else {\n logger.debug(\"No service name declared on serviceClass property\");\n }\n\n }\n\n formSaveTouchHandler() {\n logger.debug(\"Saving data...\");\n const _componentRoot_ = (this.component.shadowed) ? ((this.component?.shadowRoot as ShadowRoot).host) : (this.component.body);\n (this.component).executeBindings();\n if (this.formValidatorModal != null) {\n const componentElementFields = _componentRoot_.subelements(\"*[data-field]\");\n const fieldsToValidate = componentElementFields.filter(\n (f: any) => this.hasValidation(f)\n );\n\n const _labelledby = function (parentElement: HTMLElement, element: HTMLElement) {\n const _arialabelledby = (parentElement: HTMLElement, element: HTMLElement) => {\n return (element.getAttribute(\"aria-labelledby\") !== null) ? ((element.getAttribute(\"aria-labelledby\") || \"\").split(\" \").map(\n\n e => (parentElement as any).subelements(`#${e}`).map((_e: any) => _e.innerHTML)\n ).join(\" \")) : (null);\n };\n\n return (_arialabelledby(parentElement, element)\n || element.getAttribute(\"aria-label\")\n || element.getAttribute(\"placeholder\")\n || element.getAttribute(\"name\")\n || element.getAttribute(\"data-field\"));\n };\n\n const _ariatitle = function (element: HTMLElement) {\n return (element.getAttribute(\"title\") || element.getAttribute(\"aria-title\") || \"\");\n };\n\n const invalidFields = fieldsToValidate.filter((f: any) => this.isInvalid(f));\n if (invalidFields.length > 0) {\n const validationMessage = `\n
              \n Please verify the following incorrect fields:\n
                \n
                \n ${invalidFields.map((element: any) => \"
              • \" + _labelledby(_componentRoot_ as HTMLElement, element) + \"
                \" + _ariatitle(element) + \"
              • \").join(\"\")}\n
                \n
              \n
              \n`;\n this.formValidatorModal.body.subelements(\".validationMessage\")[0].innerHTML = validationMessage;\n this.formValidatorModal.modal();\n } else {\n this.save();\n }\n } else {\n logger.debug(\"Unable to find the modal validator...\");\n logger.debug(\"Saving data...\");\n this.save();\n }\n }\n\n constructor(o: any) {\n super(o);\n this.component = o.component;\n this.component = this.component.Cast(FormField);\n }\n\n done() {\n logger.debugEnabled = true;\n try {\n (this.component).createBindingEvents();\n const modalBody = _DOMCreateElement(\"div\");\n modalBody.className = \"modal_body\";\n this.formValidatorModal = New(ModalComponent, {\n body: modalBody,\n subcomponents: [],\n data: {\n content: \"
              \"\n }\n });\n\n\n Tag(\".modal_body\").map((e: any) => document.body.removeChild(e));\n document.body.append(this.formValidatorModal.body);\n\n } catch (e: any) {\n logger.debug(`Unable to create the modal: ${e}`);\n }\n this.onpress(\".submit\", () => {\n this.formSaveTouchHandler();\n });\n\n }\n // eslint-disable-next-line no-unused-vars\n onpress(arg0: string, arg1: () => void) {\n throw new Error(\"Method not implemented.\");\n }\n\n\n}\n\nPackage(\"org.qcobjects.controllers.form\", [\n FormController,\n FormValidations\n\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { CONFIG, Controller, New, Package, SourceCSS, SourceJS } from \"qcobjects\";\ndeclare let SwaggerUIBundle: any;\ndeclare let SwaggerUIStandalonePreset: any;\nexport class SwaggerUIController extends Controller {\n component: any;\n dependencies: any;\n\n startSwaggerUI() {\n // Begin Swagger UI call region\n if (typeof SwaggerUIBundle !== \"undefined\") {\n\n const ui = SwaggerUIBundle({\n url: CONFIG.get(\"swagger-ui-url\", \"https://petstore.swagger.io/v2/swagger.json\"),\n dom_id: \"#\" + CONFIG.get(\"swagger-ui-dom_id\", \"swagger-ui\"),\n deepLinking: true,\n presets: [\n SwaggerUIBundle.presets.apis,\n SwaggerUIStandalonePreset\n ],\n plugins: [\n SwaggerUIBundle.plugins.DownloadUrl\n ],\n layout: \"StandaloneLayout\"\n });\n // End Swagger UI call region\n (window as any).ui = ui;\n }\n\n }\n\n done() {\n this.component.body.innerHTML = \"
              \";\n const swaggerUIPackagePath = CONFIG.get(\"swagger-ui-package-path\", \"node_modules/swagger-ui-dist/\");\n\n this.dependencies?.push(New(SourceJS, {\n url: swaggerUIPackagePath + \"swagger-ui-standalone-preset.js\",\n external: CONFIG.get(\"swagger-ui-external\", false)\n }));\n this.dependencies?.push(New(SourceCSS, {\n url: swaggerUIPackagePath + \"swagger-ui.css\",\n external: CONFIG.get(\"swagger-ui-external\", false)\n }));\n this.dependencies?.push(New(SourceJS, {\n url: swaggerUIPackagePath + \"swagger-ui-bundle.js\",\n external: CONFIG.get(\"swagger-ui-external\", false),\n done: () => {\n this.startSwaggerUI();\n }\n }));\n }\n\n}\n\nPackage(\"org.qcobjects.controllers.swagger\", [\n SwaggerUIController\n\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Controller } from \"qcobjects\";\n\nexport class ModalController extends Controller {\n component: any;\n\n done() {\n const component = this.component;\n component.body.innerHTML = component.body.innerHTML.replace(\"/{{content}}/g\", component.submodal.template);\n\n }\n\n}\n\nPackage(\"org.qcobjects.modal.controllers\", [\n ModalController\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, View } from \"qcobjects\";\n\n\nexport class GridView extends View {\n\n\n}\n\n\nPackage(\"org.qcobjects.views\", [\n\n GridView\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\n\nimport { Package, InheritClass } from \"qcobjects\";\n\nexport class CanvasTool extends InheritClass {\n\n drawImageFilled(img: HTMLImageElement, canvas: HTMLCanvasElement, zoom = 1, px = 0, py = 0) {\n // get the scale\n let scale = Math.max(canvas.width / img.width, canvas.height / img.height);\n scale = scale * zoom;\n // get the top left position of the image\n const x = (canvas.width / 2) - (img.width / 2) * scale;\n const y = (canvas.height / 2) - (img.height / 2) * scale;\n const ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(img, (px + x), (py + y), img.width * scale, img.height * scale);\n }\n\n getImageResized(img: HTMLImageElement, width: number, height: number, resizedImage: HTMLImageElement, zoom = 1, px = 0, py = 0) {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n canvas.style.width = width.toString();\n canvas.style.height = height.toString();\n this.drawImageFilled(img, canvas, zoom, px, py);\n resizedImage.src = canvas.toDataURL(\"image/png\");\n return canvas;\n }\n\n}\n\nPackage(\"org.qcobjects.tools.canvas\", [\n CanvasTool\n]);", "/* eslint-disable array-callback-return */\n/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\n\nimport { CONFIG, InheritClass, New, Package, SourceCSS, Tag } from \"qcobjects\";\nimport { Fade, MoveXInFromLeft, MoveXInFromRight, MoveYInFromBottom } from \"./org.qcobjects.effects\";\nexport class BasicLayout extends InheritClass {\n dependencies: any[] = [];\n\n constructor({ component = null, dependencies = [] }) {\n super({ component, dependencies });\n }\n\n load() {\n this.dependencies.push(New(SourceCSS, {\n external: !(CONFIG.get(\"useLocalSDK\", false)),\n url: (CONFIG.get(\"useLocalSDK\", false)) ? (\"css/basic-layout.css\") : (CONFIG.get(\"remoteSDKPath\", false) + \"css/basic-layout.css\")\n }));\n }\n\n coloredBorder() {\n /*\n * A helper function to visualize the layout borders\n * Usage: BasicLayout.coloredBorder()\n */\n setTimeout(function () {\n Tag(\"nav\").map((element: HTMLElement) => { element.style.border = \"20px solid #3333\"; });\n Tag(\"nav\").map((element: HTMLElement) => { element.style.backgroundColor = \"#129999\"; });\n Tag(\"component>footer\").map((element: HTMLElement) => { element.style.background = \"#876\"; });\n Tag(\"component>div\").map((element: HTMLElement) => { element.style.border = \"3px dashed #fff\"; });\n Tag(\"component>section\").map((element: HTMLElement) => { element.style.border = \"3px solid #000\"; });\n Tag(\"component>section\").map((element: HTMLElement) => { element.style.backgroundColor = \"#fffaaa\"; });\n\n Tag(\"component>article\").map((element: HTMLElement) => { element.style.border = \"3px dotted #000\"; });\n Tag(\"component>header\").map((element: HTMLElement) => { element.style.background = \"#789\"; });\n Tag(\"component>footer\").map((element: HTMLElement) => { element.style.background = \"#876\"; });\n Tag(\"component>article:nth-child(1)\").map((element: HTMLElement) => { element.style.border = \"1px solid #444\"; });\n Tag(\"component>article:nth-child(1)\").map((element: HTMLElement) => { element.style.backgroundColor = \"#555aaa\"; });\n Tag(\"component>article:nth-child(2)\").map((element: HTMLElement) => { element.style.backgroundColor = \"#aaa333\"; });\n Tag(\"component>article:nth-child(3)\").map((element: HTMLElement) => { element.style.backgroundColor = \"#54da82\"; });\n Tag(\"*\").map((element: HTMLElement) => { element.style.color = \"#fff\"; });\n\n\n Tag(\"component>article\").map((element: HTMLElement) => Fade.apply(element, 0, 1));\n Tag(\"component>footer\").map((element: HTMLElement) => Fade.apply(element, 0, 1));\n Tag(\"component>header\").map((element: HTMLElement) => Fade.apply(element, 0, 1));\n Tag(\"nav\").map((element: HTMLElement) => { element.style.display = \"block\"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); MoveXInFromLeft.apply(element); });\n Tag(\"component>article\").map((element: HTMLElement) => { element.style.display = \"block\"; element.style.height = element.offsetParent?.scrollHeight.toString() || element.clientHeight.toString(); MoveYInFromBottom.apply(element); });\n Tag(\"component>article:nth-child(2)\").map((element: HTMLElement) => { element.style.display = \"block\"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); MoveXInFromRight.apply(element); });\n }, 300);\n }\n\n\n}\n\nPackage(\"org.qcobjects.tools.layouts\", [\n BasicLayout\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { CONFIG, ComplexStorageCache, InheritClass, New, Package, _Crypt, global } from \"qcobjects\";\n\n\ntype TGlobalUser = { username: string, token: string, id: string, priority: number };\n\nexport class SessionUserToken extends InheritClass {\n static user = {};\n __cache__: ComplexStorageCache;\n __instanceID: any;\n\n constructor(o: any) {\n super(o);\n\n const __instance__ = this;\n this.__cache__ = new ComplexStorageCache({\n index: __instance__.__instanceID.toString(),\n load() {\n let __token__;\n if (typeof navigator !== \"undefined\" && typeof origin !== \"undefined\") {\n __token__ = _Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin);\n } else {\n __token__ = _Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, CONFIG.get(\"domain\", \"localhost\"));\n }\n SessionUserToken.user = {\n priority: __instance__.__instanceID.toString(),\n token: __token__\n };\n return SessionUserToken.user;\n },\n alternate(cacheController: any) {\n SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); // setting dataObject with the cached value \n }\n });\n\n }\n\n static generateIndex(s: any) {\n return (typeof Buffer !== \"undefined\") ? (Buffer.from(s, \"ascii\").toString(\"base64\")) : (btoa(s));\n }\n\n static getGlobalUser(...args: any[]): TGlobalUser {\n const username = [args].join(\"|\");\n const __index__ = \"userToken_\" + SessionUserToken.generateIndex(username);\n if (typeof (global as any).get(__index__) === \"undefined\" || (global as any).get(__index__) === null) {\n (global as any).set(__index__, New(SessionUserToken, {\n username\n }));\n }\n SessionUserToken.user = (global as any).get(__index__).user;\n return global.get(__index__).user as TGlobalUser;\n }\n\n static getGlobalUserToken(...args: any[]): string {\n return SessionUserToken.getGlobalUser(args).token;\n }\n\n static getGlobalUserId(...args: any[]) {\n return SessionUserToken.getGlobalUser(args).id;\n }\n\n static getGlobalUserPriority(...args: any[]) {\n return SessionUserToken.getGlobalUser(args).priority;\n }\n\n static getLoginCredentialsToken(username: string, password: string): string {\n return _Crypt.encrypt(`${username}${password}`, SessionUserToken.getGlobalUserToken(username)) as string;\n }\n\n static closeGlobalSession(...args: any[]) {\n SessionUserToken.getGlobalUser(args);\n const username = [args].join(\"|\");\n const __index__ = \"userToken_\" + SessionUserToken.generateIndex(username);\n if (typeof (global as any).get(__index__) !== \"undefined\") {\n (global as any).get(__index__).__cache__.clear();\n (global as any).set(__index__, null);\n SessionUserToken.user = {};\n }\n }\n}\n\nPackage(\"org.qcobjects.cloud.auth.session.usertoken\", [\n SessionUserToken\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, InheritClass, _DataStringify } from \"qcobjects\";\nimport { SessionUserToken } from \"./org.qcobjects.cloud.auth.session.usertoken\";\n\nexport class SessionData extends InheritClass {\n\n __session_container__: any = null;\n sessionData: any;\n\n /**\n * Sets the session container\n * \n * @param {*} sessionContainer1, sessionContainer2, ...\n *\n */\n setSessionContainer() {\n // eslint-disable-next-line prefer-rest-params\n this.__session_container__ = [...arguments];\n }\n\n /**\n * Gets the session container\n *\n * @return {*} sessionContainer\n */\n getSessionContainer() {\n if (typeof this.__session_container__ === \"undefined\" || this.__session_container__ === null) {\n throw new Error(\"You need to set a session container first: sessionData.setSessionContainer(...arguments)\");\n }\n return this.__session_container__;\n }\n\n /**\n * Gets the session data\n *\n * @return {*} sessionData\n */\n getSessionData(...args: any[]) {\n\n const s = sessionStorage.getItem(`${this.index(args)}`);\n let sessionData;\n if (s !== null) {\n sessionData = JSON.parse(s);\n }\n if (typeof sessionData === \"undefined\" || sessionData === null) {\n sessionData = {};\n }\n return sessionData;\n }\n\n /**\n * Returns an index of the session\n * \n * @param {string} valueForIndex\n * @return {string} index\n * @example sessionInstance.index(\"me@email.com\", \"myusername\")\n * \n */\n index(...args: any[]) {\n if (typeof SessionUserToken === \"undefined\") {\n throw new Error(\"You need to import SessionUserToken first: Import (\\\"org.qcobjects.cloud.auth.session.usertoken\\\")\");\n }\n return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`;\n }\n\n /**\n * Saves the session instance\n *\n */\n save(...args: any[]) {\n const s = _DataStringify(this.sessionData);\n sessionStorage.setItem(`${this.index(args)}`, s);\n }\n\n\n /**\n *\n * Gets the session value\n *\n * @param {*} name\n * @param {*} defaultValue\n * @return {*} \n */\n get(name: string, defaultValue: any) {\n const sessionData = this.getSessionData(this.getSessionContainer());\n return (typeof sessionData[name] !== \"undefined\") ? (sessionData[name]) : (defaultValue);\n }\n\n /**\n *\n * Sets the session value\n * \n * @param {*} name\n * @param {*} value\n */\n set(name: string, value: any) {\n const sessionContainer = this.getSessionContainer();\n const sessionData = this.getSessionData(sessionContainer);\n this.sessionData = sessionData;\n this.sessionData[name] = value;\n this.save(sessionContainer);\n }\n\n}\n\nPackage(\"org.qcobjects.cloud.auth.session.data\", [\n SessionData\n\n]);\n\n"], + "mappings": "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", + "names": ["import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "element", "import_qcobjects", "component", "import_qcobjects", "import_qcobjects", "import_qcobjects", "list", "import_qcobjects", "import_qcobjects", "fieldName", "dataValue", "element", "parentElement", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "_top"] +} diff --git a/public/cjs/index.cjs b/public/cjs/index.cjs new file mode 100644 index 0000000..e8aa2b2 --- /dev/null +++ b/public/cjs/index.cjs @@ -0,0 +1,2976 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + default: () => src_default +}); +module.exports = __toCommonJS(src_exports); + +// src/QCObjects-SDK.ts +var QCObjects_SDK_exports = {}; +__export(QCObjects_SDK_exports, { + BasicLayout: () => BasicLayout, + ButtonField: () => ButtonField, + CanvasTool: () => CanvasTool, + Contact: () => Contact, + CubeSplashScreenComponent: () => CubeSplashScreenComponent, + DataGridController: () => DataGridController, + EmailField: () => EmailField, + Fade: () => Fade, + FormController: () => FormController, + FormField: () => FormField, + FormValidations: () => FormValidations, + GenericController: () => GenericController, + GridComponent: () => GridComponent, + GridController: () => GridController, + GridItemComponent: () => GridItemComponent, + GridView: () => GridView, + InputField: () => InputField, + ListComponent: () => ListComponent, + ListController: () => ListController, + ListItemComponent: () => ListItemComponent, + ModalComponent: () => ModalComponent, + ModalController: () => ModalController, + ModalEnclosureComponent: () => ModalEnclosureComponent, + ModalFade: () => ModalFade, + ModalMoveDown: () => ModalMoveDown, + ModalMoveUp: () => ModalMoveUp, + Move: () => Move, + MoveXInFromLeft: () => MoveXInFromLeft, + MoveXInFromRight: () => MoveXInFromRight, + MoveYInFromBottom: () => MoveYInFromBottom, + MoveYInFromTop: () => MoveYInFromTop, + NotificationComponent: () => NotificationComponent, + Radius: () => Radius, + Resize: () => Resize, + Rotate: () => Rotate, + RotateX: () => RotateX, + RotateY: () => RotateY, + RotateZ: () => RotateZ, + SessionData: () => SessionData, + SessionUserToken: () => SessionUserToken, + ShadowedComponent: () => ShadowedComponent, + SlideItemComponent: () => SlideItemComponent, + SlideListComponent: () => SlideListComponent, + SliderComponent: () => SliderComponent, + SliderController: () => SliderController, + SplashScreenComponent: () => SplashScreenComponent, + SwaggerUIComponent: () => SwaggerUIComponent, + SwaggerUIController: () => SwaggerUIController, + TextField: () => TextField, + VideoSplashScreenComponent: () => VideoSplashScreenComponent, + WipeDown: () => WipeDown, + WipeLeft: () => WipeLeft, + WipeRight: () => WipeRight, + WipeUp: () => WipeUp, + default: () => QCObjects_SDK_default, + i18n_messages: () => i18n_messages +}); +var import_qcobjects25 = require("qcobjects"); + +// src/js/org.qcobjects.i18n_messages.ts +var import_qcobjects = require("qcobjects"); +var i18n_messages = class extends import_qcobjects.InheritClass { + static { + __name(this, "i18n_messages"); + } + constructor({ + messages = [] + }) { + super({ + messages + }); + if (import_qcobjects.CONFIG.get("use_i18n", false)) { + import_qcobjects.CONFIG.set("lang", "en"); + if (!import_qcobjects.global.get("i18n")) { + import_qcobjects.global.set("i18n", { + messages + }); + } else { + import_qcobjects.global.set("i18n", { + messages: import_qcobjects.global.get("i18n").messages.concat(messages) + }); + } + } + } + _load_i18n_packages_() { + return import_qcobjects.CONFIG.get("i18n_languages", []).map((i18n_packagename) => { + (0, import_qcobjects.Import)(`org.quickcorp.i18n_messages.${i18n_packagename}`); + }); + } +}; +(0, import_qcobjects.Package)("org.qcobjects.i18n_messages", [ + i18n_messages +]); +new i18n_messages({})._load_i18n_packages_(); + +// src/js/org.qcobjects.models.ts +var import_qcobjects2 = require("qcobjects"); +var Contact = class extends import_qcobjects2.VO { + static { + __name(this, "Contact"); + } +}; +(0, import_qcobjects2.Package)("org.qcobjects.models", [ + Contact +]); + +// src/js/org.qcobjects.components.ts +var import_qcobjects7 = require("qcobjects"); + +// src/js/org.qcobjects.effects.base.ts +var import_qcobjects3 = require("qcobjects"); +var Fade = class extends import_qcobjects3.Effect { + static { + __name(this, "Fade"); + } + duration = 1e3; + static duration; + constructor(o) { + super(o); + this.duration = o?.duration; + } + apply(element, alphaFrom, alphaTo) { + const da = alphaTo - alphaFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects3.logger.debug("animation progress: " + progress.toString()); + const alpha = alphaFrom + progress * da / 100; + import_qcobjects3.logger.debug("alpha: " + alpha.toString()); + element.style.opacity = alpha.toString(); + } + }); + } + static apply(element, alphaFrom, alphaTo) { + const da = alphaTo - alphaFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects3.logger.debug("animation progress: " + progress.toString()); + const alpha = alphaFrom + progress * da / 100; + import_qcobjects3.logger.debug("alpha: " + alpha.toString()); + element.style.opacity = alpha.toString(); + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var Move = class extends import_qcobjects3.Effect { + static { + __name(this, "Move"); + } + duration = 1e3; + static duration; + static apply(element, xfrom, yfrom, xto, yto) { + const dx = xto - xfrom; + const dy = yto - yfrom; + element.style.transform = "translate(" + xfrom + "px," + yfrom + "px)"; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects3.logger.debug("animation progress: " + progress.toString()); + const y = yfrom + progress * dy / 100; + const x = xfrom + progress * dx / 100; + import_qcobjects3.logger.debug("x: " + x.toString() + " y:" + y.toString()); + element.style.transform = "translate(" + x + "px," + y + "px)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +(0, import_qcobjects3.Package)("org.qcobjects.effects.base", [ + Fade, + Move +]); + +// src/js/org.qcobjects.effects.extended.ts +var import_qcobjects4 = require("qcobjects"); +var MoveXInFromRight = class extends Move { + static { + __name(this, "MoveXInFromRight"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, element.width, 0, 0, 0); + } +}; +var MoveXInFromLeft = class extends Move { + static { + __name(this, "MoveXInFromLeft"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, -element.width, 0, 0, 0); + } +}; +var MoveYInFromBottom = class extends Move { + static { + __name(this, "MoveYInFromBottom"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, 0, element.height, 0, 0); + } +}; +var MoveYInFromTop = class extends Move { + static { + __name(this, "MoveYInFromTop"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, 0, -element.height, 0, 0); + } +}; +var RotateX = class extends import_qcobjects4.Effect { + static { + __name(this, "RotateX"); + } + duration = 1e3; + static duration; + static apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + import_qcobjects4.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(1,0,0," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var RotateY = class extends import_qcobjects4.Effect { + static { + __name(this, "RotateY"); + } + duration = 1e3; + static duration; + static apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + import_qcobjects4.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(0,1,0," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var RotateZ = class extends import_qcobjects4.Effect { + static { + __name(this, "RotateZ"); + } + duration = 1e3; + apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + import_qcobjects4.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(0,0,1," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var Rotate = class extends import_qcobjects4.Effect { + static { + __name(this, "Rotate"); + } + duration = 1e3; + apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + import_qcobjects4.logger.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(1,1,1," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var Radius = class extends import_qcobjects4.Effect { + static { + __name(this, "Radius"); + } + duration = 1e3; + apply(element, radiusFrom, radiusTo) { + const dr = radiusTo - radiusFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const radius = radiusFrom + progress * dr / 100; + import_qcobjects4.logger.debug("radius: " + radius.toString()); + element.style.borderRadius = radius.toString() + "px"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var Resize = class extends import_qcobjects4.Effect { + static { + __name(this, "Resize"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("resize: " + scale.toString()); + element.style.transformOrigin = "center"; + element.style.transform = "scale(" + scale + "," + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var WipeLeft = class extends import_qcobjects4.Effect { + static { + __name(this, "WipeLeft"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "right"; + element.style.transform = "scaleX(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var WipeRight = class extends import_qcobjects4.Effect { + static { + __name(this, "WipeRight"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "left"; + element.style.transform = "scaleX(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var WipeUp = class extends import_qcobjects4.Effect { + static { + __name(this, "WipeUp"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "bottom"; + element.style.transform = "scaleY(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var WipeDown = class extends import_qcobjects4.Effect { + static { + __name(this, "WipeDown"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + import_qcobjects4.logger.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + import_qcobjects4.logger.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "top"; + element.style.transform = "scaleY(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +(0, import_qcobjects4.Package)("org.qcobjects.effects.extended", [ + MoveXInFromRight, + MoveXInFromLeft, + MoveYInFromBottom, + MoveYInFromTop, + RotateX, + RotateY, + RotateZ, + Rotate, + Radius, + Resize, + WipeLeft, + WipeRight, + WipeUp, + WipeDown +]); + +// src/js/org.qcobjects.modal.effects.ts +var import_qcobjects5 = require("qcobjects"); +var ModalFade = class extends Fade { + static { + __name(this, "ModalFade"); + } + duration = 500; +}; +var ModalMoveUp = class extends Move { + static { + __name(this, "ModalMoveUp"); + } + duration = 800; +}; +var ModalMoveDown = class extends Move { + static { + __name(this, "ModalMoveDown"); + } + duration = 300; +}; +(0, import_qcobjects5.Package)("org.qcobjects.modal.effects", [ + ModalFade, + ModalMoveDown, + ModalMoveUp +]); + +// src/js/org.qcobjects.base.components.ts +var import_qcobjects6 = require("qcobjects"); +var FormField = class extends import_qcobjects6.Component { + static { + __name(this, "FormField"); + } + fieldType; + cached = false; + reload = true; + body; + name; + data; + constructor(o) { + o.name = typeof o.name !== "undefined" ? o.name : "form-field"; + super(o); + } + createBindingEvents() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); + } else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak]; + _obj.addEventListener("change", () => { + import_qcobjects6.logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("blur", () => { + import_qcobjects6.logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("focus", () => { + import_qcobjects6.logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("keydown", () => { + import_qcobjects6.logger.debug("Executing keydown event binding"); + this.executeBindings(); + }); + } + } + executeBinding(_obj) { + const _datamodel = _obj.getAttribute("data-field"); + import_qcobjects6.logger.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel] = _obj.value; + } + executeBindings() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); + } else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak]; + const _datamodel = _obj.getAttribute("data-field"); + import_qcobjects6.logger.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel] = _obj.value; + } + } + done(standardResponse) { + const _ret_ = super.done(standardResponse); + this.executeBindings(); + this.createBindingEvents(); + import_qcobjects6.logger.debug("Field loaded: " + this.fieldType + "[name=" + this.name + "]"); + return _ret_; + } +}; +(0, import_qcobjects6.Package)("org.qcobjects.base.components", [ + FormField +]); + +// src/js/org.qcobjects.components.ts +var ShadowedComponent = class extends import_qcobjects7.Component { + static { + __name(this, "ShadowedComponent"); + } + container = null; + shadowed = true; + cached = false; + controller = null; + view = null; + data = {}; + constructor(o) { + o.body = (0, import_qcobjects7._DOMCreateElement)("div"); + super(o); + } +}; +var ButtonField = class extends FormField { + static { + __name(this, "ButtonField"); + } + constructor(o) { + o.fieldType = "button"; + super(o); + } +}; +var InputField = class extends FormField { + static { + __name(this, "InputField"); + } + constructor(o) { + o.fieldType = "input"; + super(o); + } +}; +var TextField = class extends FormField { + static { + __name(this, "TextField"); + } + constructor(o) { + o.fieldType = "textarea"; + super(o); + } +}; +var EmailField = class extends FormField { + static { + __name(this, "EmailField"); + } + constructor(o) { + o.fieldType = "input"; + super(o); + } +}; +var ModalEnclosureComponent = class extends import_qcobjects7.Component { + static { + __name(this, "ModalEnclosureComponent"); + } + name = "modalenclosure"; + tplsource = "inline"; + cached = false; + basePath = import_qcobjects7.CONFIG.get("modalBasePath", import_qcobjects7.CONFIG.get("remoteSDKPath", "")); + template = ` + + + +`; + data = {}; + constructor(o) { + o.body = (0, import_qcobjects7._DOMCreateElement)("div"); + super(o); + } +}; +var ModalComponent = class extends import_qcobjects7.Component { + static { + __name(this, "ModalComponent"); + } + name = "modal"; + cached = false; + modalEnclosureComponentClass = "ModalEnclosureComponent"; + controller = null; + view = null; + tplsource = "none"; + closeOnClickOutside = false; + data = { + content: "", + modalId: 0 + }; + submodal = null; + __instanceID; + basePath; + subcomponents; + body; + templateURI; + constructor(o) { + o.basePath = import_qcobjects7.CONFIG.get("modalBasePath", import_qcobjects7.CONFIG.get("remoteSDKPath", "")); + super(o); + this.data.modalId = this.__instanceID; + const submodal = (0, import_qcobjects7.New)((0, import_qcobjects7.ClassFactory)(this.modalEnclosureComponentClass), { + name: this.name, + basePath: this.basePath, + data: this.data + }); + this.subcomponents.push(submodal); + this.submodal = submodal; + if (submodal.tplsource === "none") { + this.body.innerHTML = submodal.parsedAssignmentText; + } else { + this.body.append(submodal.body); + } + } + modal() { + const modalId = this.data.modalId; + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal").map((modal) => { + modal.style.display = "block"; + return new ModalFade().apply(modal, 0, 1); + }); + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal .modal-content").map((modalcontent) => { + return ModalMoveDown.apply(modalcontent, 0, -document.body.clientHeight, 0, 0); + }); + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal .modal-content .close").map((closebtn) => { + return closebtn.addEventListener("click", () => { + this.close(); + }, false); + }); + if (this.closeOnClickOutside) { + window.addEventListener("click", () => { + this.close(); + }, false); + } + } + close() { + const modalId = this.data.modalId; + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal").map((modal) => { + modal.style.display = "block"; + return new ModalFade({ duration: 3e3 }).apply(modal, 1, 0); + }); + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal .modal-content").map(function(modalcontent) { + return ModalMoveUp.apply(modalcontent, 0, 0, 0, -document.body.clientHeight); + }); + setTimeout(function() { + (0, import_qcobjects7.Tag)("#modalInstance_" + modalId + ".modal").map((modal) => { + modal.style.display = "none"; + return true; + }); + }, 900); + } + rebuild() { + const _ret_ = super.rebuild(); + this.templateURI = (0, import_qcobjects7.ComponentURI)({ + "COMPONENTS_BASE_PATH": import_qcobjects7.CONFIG.get("componentsBasePath", ""), + "COMPONENT_NAME": "modal", + "TPLEXTENSION": import_qcobjects7.CONFIG.get("tplextension", ""), + "TPL_SOURCE": "default" + // here is always default in order to get the right uri + }); + return _ret_; + } +}; +var SwaggerUIComponent = class extends import_qcobjects7.Component { + static { + __name(this, "SwaggerUIComponent"); + } + cached = false; + basePath = import_qcobjects7.CONFIG.get("remoteSDKPath", ""); + tplextension = "tpl.html"; + name = "swagger-ui"; +}; +(0, import_qcobjects7.Package)("org.qcobjects.form.components", [ + ShadowedComponent, + ButtonField, + InputField, + TextField, + EmailField, + ModalEnclosureComponent, + ModalComponent, + SwaggerUIComponent +]); + +// src/js/org.qcobjects.components.grid.ts +var import_qcobjects8 = require("qcobjects"); +var GridItemComponent = class extends import_qcobjects8.Component { + static { + __name(this, "GridItemComponent"); + } + name = "grid-item"; + shadowed = true; + tplsource = "inline"; + template = ` + +

              {{description}}

              +`; + cached = false; +}; +var GridComponent = class extends import_qcobjects8.Component { + static { + __name(this, "GridComponent"); + } + name = "grid"; + cached = false; + view = null; + shadowed = true; + rows = 3; + cols = 3; + templateURI = ""; + data = {}; + tplsource = "inline"; + template = "

              Loading...

              "; + body; + constructor(o) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = this.body.getAttribute("subcomponentClass") !== null ? this.body.getAttribute("subcomponentClass") : "GridItemComponent"; + this.body.setAttribute("subcomponentClass", subcomponentClass); + } +}; +(0, import_qcobjects8.Package)("org.qcobjects.components.grid", [ + GridComponent, + GridItemComponent +]); + +// src/js/org.qcobjects.components.list.ts +var import_qcobjects9 = require("qcobjects"); +var ListItemComponent = class extends import_qcobjects9.Component { + static { + __name(this, "ListItemComponent"); + } + shadowed = false; + tplsource = "inline"; + template = '{{label}}'; + cached = false; + constructor(o) { + o.name = "list-item"; + super(o); + } +}; +var ListComponent = class extends import_qcobjects9.Component { + static { + __name(this, "ListComponent"); + } + data; + shadowed = true; + tplsource = "inline"; + template = "

              Loading...

              "; + body; + shadowRoot; + rows; + subcomponents; + done; + serviceData; + constructor(o) { + o.name = "list"; + super(o); + this.body.setAttribute("controllerClass", "ListController"); + this.body.setAttribute("subcomponentClass", "ListItemComponent"); + } +}; +(0, import_qcobjects9.Package)("org.qcobjects.components.list", [ + ListItemComponent, + ListComponent +]); + +// src/js/org.qcobjects.components.slider.ts +var import_qcobjects10 = require("qcobjects"); +var SlideListComponent = class extends import_qcobjects10.Component { + static { + __name(this, "SlideListComponent"); + } + tplsource = "inline"; + template = "

              Loading...

              "; + name = "slidelist"; + body; + constructor(o) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = this.body.getAttribute("subcomponentClass") !== null ? this.body.getAttribute("subcomponentClass") : "GridItemComponent"; + this.body.setAttribute("subcomponentClass", subcomponentClass); + } +}; +var SlideItemComponent = class extends import_qcobjects10.Component { + static { + __name(this, "SlideItemComponent"); + } + effectClass = "Fade"; + name = "slider_item"; + data; + template; + tplsource; + constructor(o) { + super(o); + this.data.slideNumber = this.data.__dataIndex + 1; + this.template = ` + + `; + this.tplsource = "inline"; + } +}; +var SliderComponent = class extends import_qcobjects10.Component { + static { + __name(this, "SliderComponent"); + } + name = "slider"; + template; + tplsource; + shadowed; + data; + body; + __instanceID; + constructor(o) { + super(o); + this.template = ` + + +
              + + + + +
              +
              + +
              +
              + + `; + this.tplsource = "inline"; + this.shadowed = true; + this.data.SERVICE_CLASS = this.body.getAttribute("serviceClass"); + this.data.sliderHandler = "slider_" + this.__instanceID.toString(); + this.body.setAttribute("controllerClass", "SliderController"); + } +}; +(0, import_qcobjects10.Package)("org.qcobjects.components.slider", [ + SlideListComponent, + SlideItemComponent, + SliderComponent +]); + +// src/js/org.qcobjects.components.notifications.ts +var import_qcobjects11 = require("qcobjects"); +var NotificationComponent = class _NotificationComponent extends import_qcobjects11.Component { + static { + __name(this, "NotificationComponent"); + } + cached = false; + tplsource = "inline"; + shadowed = false; + kinds; + template; + constructor(o) { + o.name = "notification"; + o.body = (0, import_qcobjects11._DOMCreateElement)("div"); + super(o); + this.template = ` + +
              +
              +

              {{title}} {{message}}

              +
              +
              + `; + this.kinds = ["danger", "success", "info", "warning"]; + } + display(element) { + const _display_ = /* @__PURE__ */ __name(function(element2) { + element2.style.display = "block"; + const appearEffect = (0, import_qcobjects11.New)(Move, { + duration: 900, + apply(element3) { + (0, import_qcobjects11._super_)("Fade", "apply").call(this, element3, 0, 1); + (0, import_qcobjects11._super_)("Move", "apply").call(this, element3, 0, -document.body.clientHeight, 0, 0); + } + }); + const disappearEffect = (0, import_qcobjects11.New)(Move, { + duration: 650, + apply(element3) { + (0, import_qcobjects11._super_)("Fade", "apply").call(this, element3, 1, 0); + (0, import_qcobjects11._super_)("Move", "apply").call(this, element3, 0, 0, 0, -document.body.clientHeight); + } + }); + appearEffect.apply(element2); + setTimeout(function() { + disappearEffect.apply(element2); + }, 2e3); + }, "_display_"); + element.subelements("div.notification_background").map((element2) => { + return new Fade({ duration: 500 }).apply(element2, 0, 1); + }); + element.subelements("div.notification").map((element2) => _display_(element2)); + setTimeout(function() { + element.remove(); + }, 2200); + } + static success(message) { + const c = (0, import_qcobjects11.New)(_NotificationComponent, { + name: "notification", + shadowed: true, + body: (0, import_qcobjects11._DOMCreateElement)("div"), + data: { + kind: "success", + title: "Success!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + static danger(message) { + const c = (0, import_qcobjects11.New)(_NotificationComponent, { + name: "notification", + shadowed: true, + body: (0, import_qcobjects11._DOMCreateElement)("div"), + data: { + kind: "danger", + title: "Danger!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + static info(message) { + const c = (0, import_qcobjects11.New)(_NotificationComponent, { + name: "notification", + shadowed: true, + body: (0, import_qcobjects11._DOMCreateElement)("div"), + data: { + kind: "info", + title: "Info!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + static warning(message) { + const c = (0, import_qcobjects11.New)(_NotificationComponent, { + name: "notification", + shadowed: true, + body: (0, import_qcobjects11._DOMCreateElement)("div"), + data: { + kind: "warning", + title: "Warning!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } +}; +(0, import_qcobjects11.Package)("org.quickcorp.components.notifications", [ + NotificationComponent +]); + +// src/js/org.qcobjects.components.splashscreen.ts +var import_qcobjects12 = require("qcobjects"); +var SplashScreenComponent = class extends import_qcobjects12.Component { + static { + __name(this, "SplashScreenComponent"); + } + _enabled_; + _bgcolor; + cached = false; + shadowed = true; + body; + shadowRoot; + constructor(component) { + component.name = typeof component.name === "undefined" ? "splashscreen" : component.name; + const isBrowser = typeof window !== "undefined" && typeof window.self !== "undefined" && window === window.self; + const isStartURL = location.hash === "" && location.pathname === "/" && location.search === "" || import_qcobjects12.CONFIG.get("routingWay", "pathname") === "hash" && import_qcobjects12.CONFIG.get("start_url", "/") === location.hash || import_qcobjects12.CONFIG.get("routingWay", "pathname") === "pathname" && import_qcobjects12.CONFIG.get("start_url", "/") === location.pathname || import_qcobjects12.CONFIG.get("routingWay", "pathname") === "search" && import_qcobjects12.CONFIG.get("start_url", "/") === location.search; + const _enabled_ = isBrowser && isStartURL; + if (_enabled_) { + component.basePath = import_qcobjects12.CONFIG.get("splashscreenBasePath", import_qcobjects12.CONFIG.get("remoteSDKPath", "")); + if (typeof component.data === "undefined") { + component.data = {}; + } + component.data.basePath = component.basePath; + } else { + if (typeof component !== "undefined" && typeof component.body !== "undefined") { + component.body.style.display = "none"; + } + } + super(component); + this._bgcolor = ""; + this._enabled_ = _enabled_; + if (this._enabled_) { + const displayEffectDuration = 1e3; + let duration = this.body.getAttribute("duration"); + if (duration === null) { + duration = displayEffectDuration; + } else { + duration = parseInt(duration.toString()); + } + this._bgcolor = this.body.style.backgroundColor; + const _helper_ = /* @__PURE__ */ __name(() => { + setTimeout(() => { + if (!_helper_.executed) { + const _componentRoot = this.shadowed ? this.shadowRoot?.host : this.body; + if (typeof import_qcobjects12.global.componentsStack !== "undefined") { + import_qcobjects12.global.componentsStack.filter((c) => c.body.hasAttribute("splashscreen")).map( + (mainComponent) => { + import_qcobjects12.logger.debug(`Splash Screen of Main Component: ${mainComponent.name}`); + mainComponent.splashScreenComponent = this; + const SplashScreenHandler = /* @__PURE__ */ __name(() => { + if (!SplashScreenHandler.executed) { + const component2 = mainComponent.splashScreenComponent; + const mainElement = mainComponent.shadowed ? mainComponent.shadowRoot?.host : mainComponent.body; + mainComponent._mainPosition = mainElement.style.position; + if (typeof mainElement !== "undefined") { + mainElement.style.position = "fixed"; + } + mainComponent._mainOpacity = mainElement.style.opacity; + _componentRoot.style.width = "100%"; + _componentRoot.style.height = "100%"; + document.body.style.backgroundColor = "#111111"; + mainElement.style.opacity = "0"; + setTimeout(function() { + if (typeof _componentRoot !== "undefined") { + document.body.style.backgroundColor = component2?._bgcolor; + _componentRoot.subelements("#slot-logo").map((slotlogo) => { + slotlogo.style.display = "block"; + slotlogo.style.transformOrigin = "center"; + return new Resize().apply(slotlogo, 1, 0); + }); + new Fade().apply(_componentRoot, 1, 0); + } + }, duration - displayEffectDuration); + setTimeout(function() { + new Fade().apply(mainElement, 0, 1); + mainElement.style.position = mainComponent._mainPosition; + document.body.style.backgroundColor = component2._bgcolor; + if (_componentRoot.parentElement !== null) { + _componentRoot.parentElement.remove(); + } + }, duration); + } + SplashScreenHandler.executed = true; + }, "SplashScreenHandler"); + return mainComponent.addComponentHelper(SplashScreenHandler.bind(mainComponent)); + } + ); + } + _helper_.executed = true; + } + }); + }, "_helper_"); + _helper_.executed = false; + this.addComponentHelper(_helper_.bind(component)); + } + } + // eslint-disable-next-line no-unused-vars + addComponentHelper(arg0) { + throw new Error("Method not implemented."); + } +}; +(0, import_qcobjects12.Package)("org.qcobjects.components.base", [ + SplashScreenComponent +]); +var VideoSplashScreenComponent = class extends SplashScreenComponent { + static { + __name(this, "VideoSplashScreenComponent"); + } + cached = false; + shadowed = true; + tplsource = "inline"; + template = ` + +
              +
              + + +
              +
              + + `; + constructor(o) { + o.name = "videosplashscreen"; + super(o); + } +}; +var CubeSplashScreenComponent = class extends SplashScreenComponent { + static { + __name(this, "CubeSplashScreenComponent"); + } + cached = false; + shadowed = true; + tplsource = "inline"; + template = ` + + +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              +
              + + `; + constructor(o) { + o.name = "cubesplashscreen"; + super(o); + } +}; +(0, import_qcobjects12.Package)("org.qcobjects.components.splashscreen", [ + SplashScreenComponent, + VideoSplashScreenComponent, + CubeSplashScreenComponent +]); + +// src/js/org.qcobjects.controllers.ts +var import_qcobjects13 = require("qcobjects"); +var GenericController = class extends import_qcobjects13.Controller { + static { + __name(this, "GenericController"); + } +}; +(0, import_qcobjects13.Package)("org.qcobjects.controllers", [ + GenericController +]); + +// src/js/org.qcobjects.controllers.list.ts +var import_qcobjects14 = require("qcobjects"); +var ListController = class extends import_qcobjects14.Controller { + static { + __name(this, "ListController"); + } + __instanceID; + component; + valueField; + labelField; + rows; + cols; + _componentRoot; + constructor({ component, dependencies = [], valueField = void 0, labelField = void 0 }) { + super({ component, dependencies, valueField, labelField }); + this.component = component; + this._componentRoot = this.component.shadowed ? this.component.shadowRoot : this.component.body; + this.labelField = this.component.body.getAttribute("label-field"); + this.valueField = this.component.body.getAttribute("value-field"); + this.rows = this.component.body.getAttribute("rows"); + this.rows = this.rows !== null ? this.rows : this.component.rows; + this.cols = 1; + import_qcobjects14.logger.debug("ListController INIT"); + } + getPageIndex(page, totalPage, totalElements) { + page = page > 0 ? page - 1 : 0; + return [totalElements * page / totalPage, totalElements * page / totalPage + totalElements / totalPage]; + } + addSubcomponents() { + this.component.subcomponents = []; + const layout = this.component.body.getAttribute("layout"); + const basePath = import_qcobjects14.CONFIG.get("listBasePath", import_qcobjects14.CONFIG.get("remoteSDKPath", "")); + let cssLayout = ""; + this.labelField = this.component.body.getAttribute("label-field"); + this.valueField = this.component.body.getAttribute("value-field"); + if (layout === "horizontal") { + cssLayout = `@import url("${basePath}css/components/horizontal-list.css");`; + } else { + cssLayout = `@import url("${basePath}css/components/list.css");`; + } + if (typeof this._componentRoot !== "undefined") { + this._componentRoot.innerHTML = `
                `; + } + import_qcobjects14.logger.debug((0, import_qcobjects14._DataStringify)(this.component.data)); + try { + const subcomponentClass = this.component.body.getAttribute("subcomponentClass"); + if (subcomponentClass != null) { + let offset; + let limit; + let pagesNumber; + let list = [...this.component.data]; + let paginateIn = this.component.body.getAttribute("paginate-in"); + paginateIn = paginateIn !== null ? paginateIn : "client"; + let page; + if (paginateIn === "client") { + page = this.component.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + if (page !== -1) { + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, list.length)[0]; + limit = this.getPageIndex(page, pagesNumber, list.length)[1]; + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list = list.slice(offset, limit); + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list.map( + (record, dataIndex) => { + const _ret_ = void 0; + try { + const _body = (0, import_qcobjects14._DOMCreateElement)("li"); + record.label = record[this.labelField]; + record.value = record[this.valueField]; + const subcomponent = (0, import_qcobjects14.New)((0, import_qcobjects14.ClassFactory)(subcomponentClass), { + name: "list-item", + data: { + label: record[this.labelField], + value: record[this.valueField], + __dataIndex: dataIndex, + __page: page, + __totalPages: pagesNumber, + __limit: limit, + __offset: offset + }, + templateURI: (0, import_qcobjects14.ComponentURI)({ + "COMPONENTS_BASE_PATH": import_qcobjects14.CONFIG.get("componentsBasePath", ""), + "COMPONENT_NAME": (0, import_qcobjects14.ClassFactory)(subcomponentClass).name, + "TPLEXTENSION": import_qcobjects14.CONFIG.get("tplextension", ""), + "TPL_SOURCE": (0, import_qcobjects14.ClassFactory)(subcomponentClass).tplsource + }), + body: _body, + template: (0, import_qcobjects14.ClassFactory)(subcomponentClass).template + }); + subcomponent.done = this.component.done.bind(subcomponent); + try { + if (subcomponent) { + subcomponent.data.__dataIndex = dataIndex; + if (Object.hasOwnProperty.call(this.component.data, "length")) { + subcomponent.data.__dataLength = this.component.data.length; + } + import_qcobjects14.logger.debug("adding subcomponent to body"); + this._componentRoot.subelements("ul").map((ul) => ul.append(subcomponent)); + try { + this.component.subcomponents.push(subcomponent); + } catch (e) { + import_qcobjects14.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } else { + import_qcobjects14.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); + } + } catch (e) { + import_qcobjects14.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } catch (e) { + import_qcobjects14.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + return _ret_; + } + ); + } else { + import_qcobjects14.logger.debug("NO SUBCOMPONENT CLASS IN COMPONENT"); + } + } catch (e) { + import_qcobjects14.logger.debug(`No data for component: ${e}`); + } + } + cssGrid() { + const component = this.component; + const _componentRoot = component.shadowed ? component.shadowRoot : component.body; + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = (0, import_qcobjects14._DOMCreateElement)("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; grid-template-rows: ${templateRows}; grid-template-columns: ${templateCols}; margin:0 auto; }`; + _componentRoot.append(s); + _componentRoot.classList.add(className); + } + } + done() { + this.cssGrid(); + const componentInstance = this.component; + import_qcobjects14.logger.debug("ListController DONE"); + const serviceClass = this.component.body.getAttribute("serviceClass"); + if (serviceClass != null) { + let offset; + let limit; + let paginateIn = componentInstance.body.getAttribute("paginate-in"); + paginateIn = paginateIn !== null ? paginateIn : "client"; + if (paginateIn === "server") { + let page = componentInstance.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + let pagesNumber; + if (page !== -1) { + const serverDataCount = this.component.body.getAttribute("server-data-count") !== null ? this.component.body.getAttribute("server-data-count") : 1; + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0]; + limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1]; + componentInstance.serviceData = typeof componentInstance.serviceData !== "undefined" ? componentInstance.serviceData : {}; + componentInstance.serviceData.params = typeof componentInstance.serviceData.params !== "undefined" ? componentInstance.serviceData.params : {}; + componentInstance.serviceData.params.offset = offset; + componentInstance.serviceData.params.limit = limit; + } + } + (0, import_qcobjects14.serviceLoader)((0, import_qcobjects14.New)((0, import_qcobjects14.ClassFactory)(serviceClass), { + data: componentInstance.serviceData + }), false).then( + (successfulResponse) => { + import_qcobjects14.logger.debug("DONE SERVICE COMPONENT"); + successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template); + if (typeof successfulResponse.service.JSONresponse.result !== "undefined") { + import_qcobjects14.logger.debug((0, import_qcobjects14._DataStringify)(successfulResponse.service.JSONresponse.result)); + componentInstance.data = successfulResponse.service.JSONresponse.result; + } else { + componentInstance.data = successfulResponse.service.JSONresponse; + } + this.addSubcomponents(); + }, + (failedResponse) => { + import_qcobjects14.logger.debug(failedResponse); + } + ).catch((e) => { + import_qcobjects14.logger.debug("Something went wrong when calling the service from: " + serviceClass); + import_qcobjects14.logger.debug(e.message); + }); + } + } +}; +(0, import_qcobjects14.Package)("org.qcobjects.controllers.list", [ + ListController +]); + +// src/js/org.qcobjects.controllers.grid.ts +var import_qcobjects15 = require("qcobjects"); +var GridController = class extends import_qcobjects15.Controller { + static { + __name(this, "GridController"); + } + __instanceID; + rows; + cols; + component; + constructor(controller) { + super(controller); + this.rows = this.component.body.getAttribute("rows"); + this.rows = this.rows !== null ? this.rows : this.component.rows; + this.cols = this.component.body.getAttribute("cols"); + this.cols = this.cols !== null ? this.cols : this.component.cols; + } + cssGrid() { + const component = this.component; + const _componentRoot = component.shadowed ? component.shadowRoot : component.body; + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = (0, import_qcobjects15._DOMCreateElement)("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; grid-template-rows: ${templateRows}; grid-template-columns: ${templateCols}; margin:0 auto; }`; + _componentRoot?.append(s); + if (component.shadowed) { + _componentRoot?.host.classList.add(className); + } else { + _componentRoot.classList.add(className); + } + } + } + done() { + this.cssGrid(); + import_qcobjects15.logger.debug("GridComponent built"); + } +}; +var DataGridController = class extends import_qcobjects15.Controller { + static { + __name(this, "DataGridController"); + } + __instanceID; + rows; + cols; + _componentRoot; + component; + constructor(controller) { + super(controller); + this._componentRoot = controller.component.shadowed ? controller.component.shadowRoot : controller.component.body; + this.rows = controller.component.body.getAttribute("rows"); + this.rows = controller.rows !== null ? controller.rows : controller.component.rows; + this.cols = controller.component.body.getAttribute("cols"); + this.cols = controller.cols !== null ? controller.cols : controller.component.cols; + import_qcobjects15.logger.debug("DataGridController INIT"); + } + getPageIndex(page, totalPage, totalElements) { + page = page > 0 ? page - 1 : 0; + return [totalElements * page / totalPage, totalElements * page / totalPage + totalElements / totalPage]; + } + addSubcomponents() { + this.component.subcomponents = []; + if (typeof this._componentRoot !== "undefined") { + this._componentRoot.innerHTML = ""; + } + this.cssGrid(); + import_qcobjects15.logger.debug((0, import_qcobjects15._DataStringify)(this.component.data)); + try { + const subcomponentClass = this.component.body.getAttribute("subcomponentClass"); + if (subcomponentClass != null) { + let offset; + let limit; + let pagesNumber; + let list = [...this.component.data]; + let paginateIn = this.component.body.getAttribute("paginate-in"); + let page; + paginateIn = paginateIn !== null ? paginateIn : "client"; + if (paginateIn === "client") { + page = this.component.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + if (page !== -1) { + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, list.length)[0]; + limit = this.getPageIndex(page, pagesNumber, list.length)[1]; + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list = list.slice(offset, limit); + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list.map( + (record, dataIndex, list2) => { + const _ret_ = void 0; + try { + const _body = (0, import_qcobjects15._DOMCreateElement)("component"); + _body.setAttribute("name", (0, import_qcobjects15.ClassFactory)(subcomponentClass).name); + _body.setAttribute("shadowed", (0, import_qcobjects15.ClassFactory)(subcomponentClass).shadowed); + _body.setAttribute("cached", (0, import_qcobjects15.ClassFactory)(subcomponentClass).cached); + record = Object.assign(record, { + __dataIndex: dataIndex, + __dataLength: list2.length, + __page: page, + __totalPages: pagesNumber, + __limit: limit, + __offset: offset + }); + const subcomponent = (0, import_qcobjects15.New)((0, import_qcobjects15.ClassFactory)(subcomponentClass), { + name: "item", + data: record, + templateURI: (0, import_qcobjects15.ComponentURI)({ + "COMPONENTS_BASE_PATH": import_qcobjects15.CONFIG.get("componentsBasePath", ""), + "COMPONENT_NAME": (0, import_qcobjects15.ClassFactory)(subcomponentClass).name, + "TPLEXTENSION": import_qcobjects15.CONFIG.get("tplextension", ""), + "TPL_SOURCE": (0, import_qcobjects15.ClassFactory)(subcomponentClass).tplsource + }), + body: _body, + template: (0, import_qcobjects15.ClassFactory)(subcomponentClass).template + }); + subcomponent.done = this.component.done.bind(subcomponent); + try { + if (subcomponent) { + subcomponent.data.__dataIndex = dataIndex; + if (Object.hasOwnProperty.call(this.component.data, "length")) { + subcomponent.data.__dataLength = this.component.data.length; + } + import_qcobjects15.logger.debug("adding subcomponent to body"); + this._componentRoot?.append(subcomponent.body); + try { + this.component.subcomponents.push(subcomponent); + } catch (e) { + import_qcobjects15.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } else { + import_qcobjects15.logger.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); + } + } catch (e) { + import_qcobjects15.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } catch (e) { + import_qcobjects15.logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + return _ret_; + } + ); + } else { + import_qcobjects15.logger.debug("NO SUBCOMPONENT CLASS IN COMPONENT"); + } + } catch (e) { + import_qcobjects15.logger.debug(`No data for component: ${e}`); + } + } + cssGrid() { + const component = this.component; + const _componentRoot = component.shadowed ? component.shadowRoot : component.body; + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = (0, import_qcobjects15._DOMCreateElement)("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; grid-template-rows: ${templateRows}; grid-template-columns: ${templateCols}; margin:0 auto; }`; + if (component.shadowed) { + component.body.append(s); + _componentRoot.host.classList.add(className); + } else { + _componentRoot?.append(s); + _componentRoot.classList.add(className); + } + } + } + done() { + const componentInstance = this.component; + import_qcobjects15.logger.debug("DataGridController DONE"); + const serviceClass = this.component.body.getAttribute("serviceClass"); + if (serviceClass != null) { + let offset; + let limit; + let paginateIn = componentInstance.body.getAttribute("paginate-in"); + paginateIn = paginateIn !== null ? paginateIn : "client"; + if (paginateIn === "server") { + let page = componentInstance.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + let pagesNumber; + if (page !== -1) { + const serverDataCount = this.component.body.getAttribute("server-data-count") !== null ? this.component.body.getAttribute("server-data-count") : 1; + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0]; + limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1]; + componentInstance.serviceData = typeof componentInstance.serviceData !== "undefined" ? componentInstance.serviceData : {}; + componentInstance.serviceData.params = typeof componentInstance.serviceData.params !== "undefined" ? componentInstance.serviceData.params : {}; + componentInstance.serviceData.params.offset = offset; + componentInstance.serviceData.params.limit = limit; + } + } + (0, import_qcobjects15.serviceLoader)((0, import_qcobjects15.New)((0, import_qcobjects15.ClassFactory)(serviceClass), { + data: componentInstance.serviceData + }), false).then( + (successfulResponse) => { + import_qcobjects15.logger.debug("DONE SERVICE COMPONENT"); + successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template); + if (typeof successfulResponse.service.JSONresponse.result !== "undefined") { + import_qcobjects15.logger.debug((0, import_qcobjects15._DataStringify)(successfulResponse.service.JSONresponse.result)); + componentInstance.data = successfulResponse.service.JSONresponse.result; + } else { + componentInstance.data = successfulResponse.service.JSONresponse; + } + this.addSubcomponents(); + }, + (failedResponse) => { + import_qcobjects15.logger.debug(failedResponse); + } + ).catch((e) => { + import_qcobjects15.logger.debug("Something went wrong when calling the service from: " + serviceClass); + import_qcobjects15.logger.debug(e.message); + }); + } + } +}; +(0, import_qcobjects15.Package)("org.qcobjects.controllers.grid", [ + GridController, + DataGridController +]); + +// src/js/org.qcobjects.controllers.slider.ts +var import_qcobjects16 = require("qcobjects"); +var SliderController = class extends import_qcobjects16.Controller { + static { + __name(this, "SliderController"); + } + slideIndex = 0; + duration = 7100; + interval = null; + sliderHandlerName = ""; + _componentRoot; + component; + constructor({ component, dependencies = [], duration = 7100, slideIndex = 0, interval = null, sliderHandlerName = null }) { + super({ component, dependencies, duration, slideIndex, interval, sliderHandlerName }); + this.component = component; + this._componentRoot = component.shadowed ? component.shadowRoot : component.body; + this.sliderHandlerName = "slider_" + this.component.__instanceID.toString(); + global.set(this.sliderHandlerName, this); + } + stop() { + if (this.interval != null) { + clearInterval(this.interval); + } + } + plusSlidesAndStop(n) { + this.stop(); + this.plusSlides(n); + } + plusSlides(n) { + this.showSlides(this.slideIndex += n); + } + currentSlide(n) { + this.stop(); + this.showSlides(this.slideIndex = n); + } + automate() { + this.interval = setInterval(() => { + this.plusSlides(1); + }, this.duration); + } + showSlides(n) { + const slides = this._componentRoot?.subelements(".qcoSlides"); + const dots = this._componentRoot?.subelements(".qcoSlider__dots--dot"); + if (n > slides.length - 1) { + this.slideIndex = 0; + } + if (n < 0) { + this.slideIndex = 0; + } + slides.filter((slide, index) => { + return index !== this.slideIndex; + }).map((slide) => { + return (0, import_qcobjects16.New)((0, import_qcobjects16.ClassFactory)("Fade"), {}).apply(slide, 1, 0); + }); + dots.filter((dot, index) => { + return index !== this.slideIndex; + }).map((dot) => { + return dot.classList.remove("active"); + }); + try { + dots[this.slideIndex].classList.add("active"); + } catch (e) { + import_qcobjects16.logger.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${e.message}`); + } + setTimeout(() => { + slides.filter((slide, index) => { + return index !== this.slideIndex; + }).map((slide) => { + slide.style.display = "none"; + return slide.style.display; + }); + try { + slides[this.slideIndex].style.display = "block"; + (0, import_qcobjects16.New)((0, import_qcobjects16.ClassFactory)("Fade"), {}).apply(slides[this.slideIndex], 0, 1); + } catch (e) { + import_qcobjects16.logger.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${e.message}`); + } + }, 700); + } + fillDots() { + const slides = this._componentRoot?.subelements(".qcoSlides"); + slides.map((slide, index) => { + const dotHTML = document.createElement("span"); + const dotContent = ``; + dotHTML.innerHTML = dotContent; + return this._componentRoot?.subelements(".qcoSlider__dots")[0].append(dotHTML); + }); + } + done() { + const slides = this._componentRoot?.subelements(".qcoSlides"); + slides.filter((slide, index) => { + return index !== this.slideIndex; + }).map((slide) => { + slide.style.display = "none"; + return slide.style.display; + }); + setTimeout(() => { + this.fillDots(); + this.slideIndex = 0; + this.showSlides(this.slideIndex); + this.automate(); + }, 3e3); + } +}; +(0, import_qcobjects16.Package)("org.qcobjects.controllers.slider", [ + SliderController +]); + +// src/js/org.qcobjects.controllers.form.ts +var import_qcobjects17 = require("qcobjects"); +var FormValidations = class extends import_qcobjects17.Controller { + static { + __name(this, "FormValidations"); + } + getDefault() { + return function(fieldName, dataValue, element) { + const _regex = { + name: "^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$", + email: "^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$" + }; + const _pattern_ = element.getAttribute("pattern") || _regex[fieldName]; + const pattern = new RegExp(_pattern_); + return pattern.test(dataValue); + }; + } +}; +var FormController = class extends import_qcobjects17.Controller { + static { + __name(this, "FormController"); + } + validations = []; + formValidatorModal; + serviceClass = ""; + formSettings = { + backRouting: "#", + loadingRouting: "#loading", + nextRouting: "#signupsuccessful" + }; + component; + hasValidation(element) { + const fieldName = element.getAttribute("data-field"); + let _hasValidation = false; + if (typeof this.validations !== "undefined" && Object.hasOwnProperty.call(this.validations, fieldName)) { + _hasValidation = true; + } + return _hasValidation; + } + isInvalid(element) { + let _isInvalid = false; + const fieldName = element.getAttribute("data-field"); + const dataValue = this.component.data[fieldName]; + const _execValidation = /* @__PURE__ */ __name((fieldName2, dataValue2, element2) => { + return typeof this.validations !== "undefined" && Object.hasOwnProperty.call(this.validations, fieldName2) && this.validations[fieldName2].call(null, fieldName2, dataValue2, element2); + }, "_execValidation"); + if (typeof this.validations !== "undefined" && !_execValidation(fieldName, dataValue, element)) { + _isInvalid = true; + } + return _isInvalid; + } + isValid(element) { + return !this.isInvalid(element); + } + save() { + if (this.serviceClass !== "") { + location.href = this.formSettings.loadingRouting; + (0, import_qcobjects17.serviceLoader)((0, import_qcobjects17.New)((0, import_qcobjects17.ClassFactory)(this.serviceClass), { + data: this.component.data + }), false).then( + () => { + console.log("DONE SERVICE COMPONENT"); + location.href = this.formSettings.nextRouting; + }, + (failedResponse) => { + import_qcobjects17.logger.debug(failedResponse); + location.href = this.formSettings.backRouting; + } + ); + } else { + import_qcobjects17.logger.debug("No service name declared on serviceClass property"); + } + } + formSaveTouchHandler() { + import_qcobjects17.logger.debug("Saving data..."); + const _componentRoot_ = this.component.shadowed ? (this.component?.shadowRoot).host : this.component.body; + this.component.executeBindings(); + if (this.formValidatorModal != null) { + const componentElementFields = _componentRoot_.subelements("*[data-field]"); + const fieldsToValidate = componentElementFields.filter( + (f) => this.hasValidation(f) + ); + const _labelledby = /* @__PURE__ */ __name(function(parentElement, element) { + const _arialabelledby = /* @__PURE__ */ __name((parentElement2, element2) => { + return element2.getAttribute("aria-labelledby") !== null ? (element2.getAttribute("aria-labelledby") || "").split(" ").map( + (e) => parentElement2.subelements(`#${e}`).map((_e) => _e.innerHTML) + ).join(" ") : null; + }, "_arialabelledby"); + return _arialabelledby(parentElement, element) || element.getAttribute("aria-label") || element.getAttribute("placeholder") || element.getAttribute("name") || element.getAttribute("data-field"); + }, "_labelledby"); + const _ariatitle = /* @__PURE__ */ __name(function(element) { + return element.getAttribute("title") || element.getAttribute("aria-title") || ""; + }, "_ariatitle"); + const invalidFields = fieldsToValidate.filter((f) => this.isInvalid(f)); + if (invalidFields.length > 0) { + const validationMessage = ` +
                + Please verify the following incorrect fields: +
                  +
                  + ${invalidFields.map((element) => "
                • " + _labelledby(_componentRoot_, element) + "
                  " + _ariatitle(element) + "
                • ").join("")} +
                  +
                +
                +`; + this.formValidatorModal.body.subelements(".validationMessage")[0].innerHTML = validationMessage; + this.formValidatorModal.modal(); + } else { + this.save(); + } + } else { + import_qcobjects17.logger.debug("Unable to find the modal validator..."); + import_qcobjects17.logger.debug("Saving data..."); + this.save(); + } + } + constructor(o) { + super(o); + this.component = o.component; + this.component = this.component.Cast(FormField); + } + done() { + import_qcobjects17.logger.debugEnabled = true; + try { + this.component.createBindingEvents(); + const modalBody = (0, import_qcobjects17._DOMCreateElement)("div"); + modalBody.className = "modal_body"; + this.formValidatorModal = (0, import_qcobjects17.New)(ModalComponent, { + body: modalBody, + subcomponents: [], + data: { + content: '
                ' + } + }); + (0, import_qcobjects17.Tag)(".modal_body").map((e) => document.body.removeChild(e)); + document.body.append(this.formValidatorModal.body); + } catch (e) { + import_qcobjects17.logger.debug(`Unable to create the modal: ${e}`); + } + this.onpress(".submit", () => { + this.formSaveTouchHandler(); + }); + } + // eslint-disable-next-line no-unused-vars + onpress(arg0, arg1) { + throw new Error("Method not implemented."); + } +}; +(0, import_qcobjects17.Package)("org.qcobjects.controllers.form", [ + FormController, + FormValidations +]); + +// src/js/org.qcobjects.controllers.swagger.ts +var import_qcobjects18 = require("qcobjects"); +var SwaggerUIController = class extends import_qcobjects18.Controller { + static { + __name(this, "SwaggerUIController"); + } + component; + dependencies; + startSwaggerUI() { + if (typeof SwaggerUIBundle !== "undefined") { + const ui = SwaggerUIBundle({ + url: import_qcobjects18.CONFIG.get("swagger-ui-url", "https://petstore.swagger.io/v2/swagger.json"), + dom_id: "#" + import_qcobjects18.CONFIG.get("swagger-ui-dom_id", "swagger-ui"), + deepLinking: true, + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + }); + window.ui = ui; + } + } + done() { + this.component.body.innerHTML = '
                '; + const swaggerUIPackagePath = import_qcobjects18.CONFIG.get("swagger-ui-package-path", "node_modules/swagger-ui-dist/"); + this.dependencies?.push((0, import_qcobjects18.New)(import_qcobjects18.SourceJS, { + url: swaggerUIPackagePath + "swagger-ui-standalone-preset.js", + external: import_qcobjects18.CONFIG.get("swagger-ui-external", false) + })); + this.dependencies?.push((0, import_qcobjects18.New)(import_qcobjects18.SourceCSS, { + url: swaggerUIPackagePath + "swagger-ui.css", + external: import_qcobjects18.CONFIG.get("swagger-ui-external", false) + })); + this.dependencies?.push((0, import_qcobjects18.New)(import_qcobjects18.SourceJS, { + url: swaggerUIPackagePath + "swagger-ui-bundle.js", + external: import_qcobjects18.CONFIG.get("swagger-ui-external", false), + done: /* @__PURE__ */ __name(() => { + this.startSwaggerUI(); + }, "done") + })); + } +}; +(0, import_qcobjects18.Package)("org.qcobjects.controllers.swagger", [ + SwaggerUIController +]); + +// src/js/org.qcobjects.modal.controllers.ts +var import_qcobjects19 = require("qcobjects"); +var ModalController = class extends import_qcobjects19.Controller { + static { + __name(this, "ModalController"); + } + component; + done() { + const component = this.component; + component.body.innerHTML = component.body.innerHTML.replace("/{{content}}/g", component.submodal.template); + } +}; +(0, import_qcobjects19.Package)("org.qcobjects.modal.controllers", [ + ModalController +]); + +// src/js/org.qcobjects.views.ts +var import_qcobjects20 = require("qcobjects"); +var GridView = class extends import_qcobjects20.View { + static { + __name(this, "GridView"); + } +}; +(0, import_qcobjects20.Package)("org.qcobjects.views", [ + GridView +]); + +// src/js/org.qcobjects.tools.canvas.ts +var import_qcobjects21 = require("qcobjects"); +var CanvasTool = class extends import_qcobjects21.InheritClass { + static { + __name(this, "CanvasTool"); + } + drawImageFilled(img, canvas, zoom = 1, px = 0, py = 0) { + let scale = Math.max(canvas.width / img.width, canvas.height / img.height); + scale = scale * zoom; + const x = canvas.width / 2 - img.width / 2 * scale; + const y = canvas.height / 2 - img.height / 2 * scale; + const ctx = canvas.getContext("2d"); + ctx?.drawImage(img, px + x, py + y, img.width * scale, img.height * scale); + } + getImageResized(img, width, height, resizedImage, zoom = 1, px = 0, py = 0) { + const canvas = document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + canvas.style.width = width.toString(); + canvas.style.height = height.toString(); + this.drawImageFilled(img, canvas, zoom, px, py); + resizedImage.src = canvas.toDataURL("image/png"); + return canvas; + } +}; +(0, import_qcobjects21.Package)("org.qcobjects.tools.canvas", [ + CanvasTool +]); + +// src/js/org.qcobjects.tools.layouts.ts +var import_qcobjects22 = require("qcobjects"); +var BasicLayout = class extends import_qcobjects22.InheritClass { + static { + __name(this, "BasicLayout"); + } + dependencies = []; + constructor({ component = null, dependencies = [] }) { + super({ component, dependencies }); + } + load() { + this.dependencies.push((0, import_qcobjects22.New)(import_qcobjects22.SourceCSS, { + external: !import_qcobjects22.CONFIG.get("useLocalSDK", false), + url: import_qcobjects22.CONFIG.get("useLocalSDK", false) ? "css/basic-layout.css" : import_qcobjects22.CONFIG.get("remoteSDKPath", false) + "css/basic-layout.css" + })); + } + coloredBorder() { + setTimeout(function() { + (0, import_qcobjects22.Tag)("nav").map((element) => { + element.style.border = "20px solid #3333"; + }); + (0, import_qcobjects22.Tag)("nav").map((element) => { + element.style.backgroundColor = "#129999"; + }); + (0, import_qcobjects22.Tag)("component>footer").map((element) => { + element.style.background = "#876"; + }); + (0, import_qcobjects22.Tag)("component>div").map((element) => { + element.style.border = "3px dashed #fff"; + }); + (0, import_qcobjects22.Tag)("component>section").map((element) => { + element.style.border = "3px solid #000"; + }); + (0, import_qcobjects22.Tag)("component>section").map((element) => { + element.style.backgroundColor = "#fffaaa"; + }); + (0, import_qcobjects22.Tag)("component>article").map((element) => { + element.style.border = "3px dotted #000"; + }); + (0, import_qcobjects22.Tag)("component>header").map((element) => { + element.style.background = "#789"; + }); + (0, import_qcobjects22.Tag)("component>footer").map((element) => { + element.style.background = "#876"; + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(1)").map((element) => { + element.style.border = "1px solid #444"; + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(1)").map((element) => { + element.style.backgroundColor = "#555aaa"; + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(2)").map((element) => { + element.style.backgroundColor = "#aaa333"; + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(3)").map((element) => { + element.style.backgroundColor = "#54da82"; + }); + (0, import_qcobjects22.Tag)("*").map((element) => { + element.style.color = "#fff"; + }); + (0, import_qcobjects22.Tag)("component>article").map((element) => Fade.apply(element, 0, 1)); + (0, import_qcobjects22.Tag)("component>footer").map((element) => Fade.apply(element, 0, 1)); + (0, import_qcobjects22.Tag)("component>header").map((element) => Fade.apply(element, 0, 1)); + (0, import_qcobjects22.Tag)("nav").map((element) => { + element.style.display = "block"; + element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); + MoveXInFromLeft.apply(element); + }); + (0, import_qcobjects22.Tag)("component>article").map((element) => { + element.style.display = "block"; + element.style.height = element.offsetParent?.scrollHeight.toString() || element.clientHeight.toString(); + MoveYInFromBottom.apply(element); + }); + (0, import_qcobjects22.Tag)("component>article:nth-child(2)").map((element) => { + element.style.display = "block"; + element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); + MoveXInFromRight.apply(element); + }); + }, 300); + } +}; +(0, import_qcobjects22.Package)("org.qcobjects.tools.layouts", [ + BasicLayout +]); + +// src/js/org.qcobjects.cloud.auth.session.usertoken.ts +var import_qcobjects23 = require("qcobjects"); +var SessionUserToken = class _SessionUserToken extends import_qcobjects23.InheritClass { + static { + __name(this, "SessionUserToken"); + } + static user = {}; + __cache__; + __instanceID; + constructor(o) { + super(o); + const __instance__ = this; + this.__cache__ = new import_qcobjects23.ComplexStorageCache({ + index: __instance__.__instanceID.toString(), + load() { + let __token__; + if (typeof navigator !== "undefined" && typeof origin !== "undefined") { + __token__ = import_qcobjects23._Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+/* @__PURE__ */ new Date()).toString()}`, origin); + } else { + __token__ = import_qcobjects23._Crypt.encrypt(`${o.username}|${(+/* @__PURE__ */ new Date()).toString()}`, import_qcobjects23.CONFIG.get("domain", "localhost")); + } + _SessionUserToken.user = { + priority: __instance__.__instanceID.toString(), + token: __token__ + }; + return _SessionUserToken.user; + }, + alternate(cacheController) { + _SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); + } + }); + } + static generateIndex(s) { + return typeof Buffer !== "undefined" ? Buffer.from(s, "ascii").toString("base64") : btoa(s); + } + static getGlobalUser(...args) { + const username = [args].join("|"); + const __index__ = "userToken_" + _SessionUserToken.generateIndex(username); + if (typeof import_qcobjects23.global.get(__index__) === "undefined" || import_qcobjects23.global.get(__index__) === null) { + import_qcobjects23.global.set(__index__, (0, import_qcobjects23.New)(_SessionUserToken, { + username + })); + } + _SessionUserToken.user = import_qcobjects23.global.get(__index__).user; + return import_qcobjects23.global.get(__index__).user; + } + static getGlobalUserToken(...args) { + return _SessionUserToken.getGlobalUser(args).token; + } + static getGlobalUserId(...args) { + return _SessionUserToken.getGlobalUser(args).id; + } + static getGlobalUserPriority(...args) { + return _SessionUserToken.getGlobalUser(args).priority; + } + static getLoginCredentialsToken(username, password) { + return import_qcobjects23._Crypt.encrypt(`${username}${password}`, _SessionUserToken.getGlobalUserToken(username)); + } + static closeGlobalSession(...args) { + _SessionUserToken.getGlobalUser(args); + const username = [args].join("|"); + const __index__ = "userToken_" + _SessionUserToken.generateIndex(username); + if (typeof import_qcobjects23.global.get(__index__) !== "undefined") { + import_qcobjects23.global.get(__index__).__cache__.clear(); + import_qcobjects23.global.set(__index__, null); + _SessionUserToken.user = {}; + } + } +}; +(0, import_qcobjects23.Package)("org.qcobjects.cloud.auth.session.usertoken", [ + SessionUserToken +]); + +// src/js/org.qcobjects.cloud.auth.session.data.ts +var import_qcobjects24 = require("qcobjects"); +var SessionData = class extends import_qcobjects24.InheritClass { + static { + __name(this, "SessionData"); + } + __session_container__ = null; + sessionData; + /** + * Sets the session container + * + * @param {*} sessionContainer1, sessionContainer2, ... + * + */ + setSessionContainer() { + this.__session_container__ = [...arguments]; + } + /** + * Gets the session container + * + * @return {*} sessionContainer + */ + getSessionContainer() { + if (typeof this.__session_container__ === "undefined" || this.__session_container__ === null) { + throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)"); + } + return this.__session_container__; + } + /** + * Gets the session data + * + * @return {*} sessionData + */ + getSessionData(...args) { + const s = sessionStorage.getItem(`${this.index(args)}`); + let sessionData; + if (s !== null) { + sessionData = JSON.parse(s); + } + if (typeof sessionData === "undefined" || sessionData === null) { + sessionData = {}; + } + return sessionData; + } + /** + * Returns an index of the session + * + * @param {string} valueForIndex + * @return {string} index + * @example sessionInstance.index("me@email.com", "myusername") + * + */ + index(...args) { + if (typeof SessionUserToken === "undefined") { + throw new Error('You need to import SessionUserToken first: Import ("org.qcobjects.cloud.auth.session.usertoken")'); + } + return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`; + } + /** + * Saves the session instance + * + */ + save(...args) { + const s = (0, import_qcobjects24._DataStringify)(this.sessionData); + sessionStorage.setItem(`${this.index(args)}`, s); + } + /** + * + * Gets the session value + * + * @param {*} name + * @param {*} defaultValue + * @return {*} + */ + get(name, defaultValue) { + const sessionData = this.getSessionData(this.getSessionContainer()); + return typeof sessionData[name] !== "undefined" ? sessionData[name] : defaultValue; + } + /** + * + * Sets the session value + * + * @param {*} name + * @param {*} value + */ + set(name, value) { + const sessionContainer = this.getSessionContainer(); + const sessionData = this.getSessionData(sessionContainer); + this.sessionData = sessionData; + this.sessionData[name] = value; + this.save(sessionContainer); + } +}; +(0, import_qcobjects24.Package)("org.qcobjects.cloud.auth.session.data", [ + SessionData +]); + +// src/QCObjects-SDK.ts +(/* @__PURE__ */ __name(function __qcobjects_sdk__(_top2) { + "use strict"; + if (typeof Object.defineProperty !== "undefined" && typeof _top2 !== "undefined") { + try { + Object.defineProperty(_top2, "__qcobjects_sdk__", { + enumerable: true, + configurable: false, + writable: false, + // eslint-disable-next-line camelcase + value: __qcobjects_sdk__ + }); + } catch (e) { + if (typeof _top2.__qcobjects_sdk__ !== "undefined") { + _top2.__qcobjects_sdk__.__loaded__ = true; + } + } + } + if (typeof _top2.__qcobjects_sdk__.__loaded__ === "undefined") { + _top2.__qcobjects_sdk__.__loaded__ = true; + if (typeof _top2 === "undefined") { + throw Error("Top context empty: It should either global, module or window"); + } + const __start__ = import_qcobjects25.GlobalSettings.__start__.bind(_top2); + _top2._sdk_ = Promise.resolve().then(() => { + import_qcobjects25.CONFIG.set("useSDK", true); + __start__(); + }); + } +}, "__qcobjects_sdk__"))(import_qcobjects25._top); +var QCObjects_SDK_default = import_qcobjects25._top; + +// src/index.ts +var src_default = QCObjects_SDK_exports; +//# sourceMappingURL=index.cjs.map diff --git a/public/cjs/index.cjs.map b/public/cjs/index.cjs.map new file mode 100644 index 0000000..bcf9a5e --- /dev/null +++ b/public/cjs/index.cjs.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/index.ts", "../../src/QCObjects-SDK.ts", "../../src/js/org.qcobjects.i18n_messages.ts", "../../src/js/org.qcobjects.models.ts", "../../src/js/org.qcobjects.components.ts", "../../src/js/org.qcobjects.effects.base.ts", "../../src/js/org.qcobjects.effects.extended.ts", "../../src/js/org.qcobjects.modal.effects.ts", "../../src/js/org.qcobjects.base.components.ts", "../../src/js/org.qcobjects.components.grid.ts", "../../src/js/org.qcobjects.components.list.ts", "../../src/js/org.qcobjects.components.slider.ts", "../../src/js/org.qcobjects.components.notifications.ts", "../../src/js/org.qcobjects.components.splashscreen.ts", "../../src/js/org.qcobjects.controllers.ts", "../../src/js/org.qcobjects.controllers.list.ts", "../../src/js/org.qcobjects.controllers.grid.ts", "../../src/js/org.qcobjects.controllers.slider.ts", "../../src/js/org.qcobjects.controllers.form.ts", "../../src/js/org.qcobjects.controllers.swagger.ts", "../../src/js/org.qcobjects.modal.controllers.ts", "../../src/js/org.qcobjects.views.ts", "../../src/js/org.qcobjects.tools.canvas.ts", "../../src/js/org.qcobjects.tools.layouts.ts", "../../src/js/org.qcobjects.cloud.auth.session.usertoken.ts", "../../src/js/org.qcobjects.cloud.auth.session.data.ts"], + "sourcesContent": ["import * as sdk from \"./QCObjects-SDK\";\nexport default sdk;", "/* eslint-disable @typescript-eslint/no-empty-function */\n/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\nimport { CONFIG, GlobalSettings, _top } from \"qcobjects\";\nexport {i18n_messages} from \"./js/org.qcobjects.i18n_messages\";\nexport {Contact} from \"./js/org.qcobjects.models\";\nexport {\n ShadowedComponent,\n ButtonField,\n InputField,\n TextField,\n EmailField,\n ModalEnclosureComponent,\n ModalComponent,\n SwaggerUIComponent\n} from \"./js/org.qcobjects.components\";\nexport {FormField, FieldComponentParams} from \"./js/org.qcobjects.base.components\";\nexport {\n GridComponent,\n GridItemComponent\n} from \"./js/org.qcobjects.components.grid\";\nexport {\n ListItemComponent,\n ListComponent\n} from \"./js/org.qcobjects.components.list\";\nexport {\n SlideListComponent,\n SlideItemComponent,\n SliderComponent\n} from \"./js/org.qcobjects.components.slider\";\nexport { NotificationComponent } from \"./js/org.qcobjects.components.notifications\";\nexport {\n SplashScreenComponent,\n VideoSplashScreenComponent,\n CubeSplashScreenComponent\n} from \"./js/org.qcobjects.components.splashscreen\";\nexport { GenericController } from \"./js/org.qcobjects.controllers\";\nexport { ListController, ListControllerParams } from \"./js/org.qcobjects.controllers.list\";\nexport { GridController, DataGridController } from \"./js/org.qcobjects.controllers.grid\";\nexport { SliderController } from \"./js/org.qcobjects.controllers.slider\";\nexport { FormController, FormValidations } from \"./js/org.qcobjects.controllers.form\";\nexport { SwaggerUIController } from \"./js/org.qcobjects.controllers.swagger\";\nexport {\n Fade, Move, MoveXInFromRight,\n MoveXInFromLeft,\n MoveYInFromBottom,\n MoveYInFromTop,\n RotateX,\n RotateY,\n RotateZ,\n Rotate,\n Radius,\n Resize,\n WipeLeft,\n WipeRight,\n WipeUp,\n WipeDown,\n ModalFade, ModalMoveUp, ModalMoveDown\n} from \"./js/org.qcobjects.effects\";\nexport { ModalController } from \"./js/org.qcobjects.modal.controllers\";\nexport { GridView } from \"./js/org.qcobjects.views\";\nexport { CanvasTool } from \"./js/org.qcobjects.tools.canvas\";\nexport { BasicLayout } from \"./js/org.qcobjects.tools.layouts\";\nexport { SessionUserToken } from \"./js/org.qcobjects.cloud.auth.session.usertoken\";\nexport { SessionData } from \"./js/org.qcobjects.cloud.auth.session.data\";\n\n// eslint-disable-next-line camelcase\n(function __qcobjects_sdk__(_top: any) {\n \"use strict\";\n if (typeof Object.defineProperty !== \"undefined\" && typeof _top !== \"undefined\") {\n try {\n Object.defineProperty(_top, \"__qcobjects_sdk__\", {\n enumerable: true,\n configurable: false,\n writable: false,\n // eslint-disable-next-line camelcase\n value: __qcobjects_sdk__,\n });\n } catch (e) {\n if (typeof _top.__qcobjects_sdk__ !== \"undefined\") {\n _top.__qcobjects_sdk__.__loaded__ = true;\n }\n }\n }\n\n if (typeof _top.__qcobjects_sdk__.__loaded__ === \"undefined\") {\n _top.__qcobjects_sdk__.__loaded__ = true;\n if (typeof _top === \"undefined\") {\n throw Error(\"Top context empty: It should either global, module or window\");\n }\n\n const __start__ = GlobalSettings.__start__.bind(_top);\n\n\n _top._sdk_ = Promise.resolve().then(() => {\n CONFIG.set(\"useSDK\", true);\n __start__();\n });\n\n }\n\n})(_top);\n\nexport default _top;", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, InheritClass, CONFIG, Import, global } from \"qcobjects\";\n\n\n\nexport class i18n_messages extends InheritClass {\n\n constructor({\n messages = []\n }) {\n super({\n messages\n });\n if (CONFIG.get(\"use_i18n\", false)) {\n CONFIG.set(\"lang\", \"en\");\n if (!global.get(\"i18n\")) {\n global.set(\"i18n\", {\n messages\n });\n } else {\n global.set(\"i18n\", {\n messages: global.get(\"i18n\").messages.concat(messages)\n });\n }\n }\n\n }\n\n _load_i18n_packages_() {\n // eslint-disable-next-line array-callback-return\n return CONFIG.get(\"i18n_languages\", []).map((i18n_packagename: any) => {\n\n Import(`org.quickcorp.i18n_messages.${i18n_packagename}`);\n });\n }\n\n}\n\nPackage(\"org.qcobjects.i18n_messages\", [\n\n i18n_messages\n]);\n\n(new i18n_messages({}))._load_i18n_packages_();\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, VO } from \"qcobjects\";\nexport class Contact extends VO {\n\n}\n\nPackage(\"org.qcobjects.models\", [\n Contact\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\n\nimport { Package, Component, _DOMCreateElement, CONFIG, New, ClassFactory, Tag, ComponentURI } from \"qcobjects\";\nimport { ModalFade, ModalMoveDown, ModalMoveUp } from \"./org.qcobjects.effects\";\nimport {FormField, FieldComponentParams} from \"./org.qcobjects.base.components\";\nexport {FormField};\n\nexport class ShadowedComponent extends Component {\n container = null;\n shadowed = true;\n cached = false;\n controller = null;\n view = null;\n data = {};\n\n constructor(o: FieldComponentParams) {\n o.body = _DOMCreateElement(\"div\");\n super(o);\n }\n\n\n}\n\nexport class ButtonField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"button\";\n super(o);\n }\n}\n\nexport class InputField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"input\";\n super(o);\n }\n\n}\n\nexport class TextField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"textarea\";\n super(o);\n }\n\n}\n\nexport class EmailField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"input\";\n super(o);\n }\n\n}\n\nexport class ModalEnclosureComponent extends Component {\n name = \"modalenclosure\";\n tplsource = \"inline\";\n cached = false;\n basePath = CONFIG.get(\"modalBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n template = `\n\n\n
                \n\n\n
                \n×\n{{content}}\n
                \n\n
                \n`;\n\n data = {};\n constructor(o: FieldComponentParams) {\n o.body = _DOMCreateElement(\"div\");\n super(o);\n }\n\n}\n\nexport class ModalComponent extends Component {\n name = \"modal\";\n cached = false;\n modalEnclosureComponentClass = \"ModalEnclosureComponent\";\n controller = null;\n view = null;\n tplsource = \"none\";\n closeOnClickOutside = false;\n data = {\n content: \"\",\n modalId: 0\n };\n\n submodal = null;\n __instanceID!: number;\n basePath: any;\n subcomponents: any;\n body: any;\n templateURI: any;\n\n constructor(o: FieldComponentParams) {\n o.basePath = CONFIG.get(\"modalBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n super(o);\n this.data.modalId = this.__instanceID;\n const submodal = New(ClassFactory(this.modalEnclosureComponentClass), {\n name: this.name,\n basePath: this.basePath,\n data: this.data\n });\n this.subcomponents.push(submodal);\n this.submodal = submodal;\n if (submodal.tplsource === \"none\") {\n this.body.innerHTML = submodal.parsedAssignmentText;\n } else {\n this.body.append(submodal.body);\n }\n\n }\n\n modal() {\n const modalId = this.data.modalId;\n\n Tag(\"#modalInstance_\" + modalId + \".modal\").map((modal: any) => {\n modal.style.display = \"block\";\n\n return (new ModalFade()).apply(modal, 0, 1);\n });\n Tag(\"#modalInstance_\" + modalId + \".modal .modal-content\").map((modalcontent: any) => {\n\n return ModalMoveDown.apply(modalcontent, 0, -document.body.clientHeight, 0, 0);\n });\n Tag(\"#modalInstance_\" + modalId + \".modal .modal-content .close\").map((closebtn: any) => {\n\n return closebtn.addEventListener(\"click\", () => {\n this.close();\n }, false);\n });\n if (this.closeOnClickOutside) {\n window.addEventListener(\"click\", () => {\n this.close();\n }, false);\n }\n }\n\n close() {\n const modalId = this.data.modalId;\n Tag(\"#modalInstance_\" + modalId + \".modal\").map((modal: any) => {\n modal.style.display = \"block\";\n\n return (new ModalFade({ duration: 3000 })).apply(modal, 1, 0);\n });\n Tag(\"#modalInstance_\" + modalId + \".modal .modal-content\").map(function (modalcontent: any) {\n\n return ModalMoveUp.apply(modalcontent, 0, 0, 0, -document.body.clientHeight);\n });\n setTimeout(function () {\n Tag(\"#modalInstance_\" + modalId + \".modal\").map((modal: any) => {\n modal.style.display = \"none\";\n return true;\n });\n }, 900);\n }\n\n rebuild() {\n const _ret_ = super.rebuild();\n this.templateURI = ComponentURI({\n \"COMPONENTS_BASE_PATH\": CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": \"modal\",\n \"TPLEXTENSION\": CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": \"default\" // here is always default in order to get the right uri\n });\n\n return _ret_; // parent call\n }\n\n\n}\n\nexport class SwaggerUIComponent extends Component {\n cached = false;\n basePath = CONFIG.get(\"remoteSDKPath\", \"\");\n tplextension = \"tpl.html\";\n name = \"swagger-ui\";\n\n}\n\n\nPackage(\"org.qcobjects.form.components\", [\n ShadowedComponent,\n ButtonField,\n InputField,\n TextField,\n EmailField,\n ModalEnclosureComponent,\n ModalComponent,\n SwaggerUIComponent\n]);\n\n\n", "import { Package, Effect, logger } from \"qcobjects\";\n\nexport type MoveElement = HTMLElement & {\n width?:number;\n height?:number;\n };\n\n export class Fade extends Effect {\n duration = 1000;\n static duration: any;\n\n constructor(o?:{duration:number}){\n super(o);\n this.duration = o?.duration as number;\n }\n apply(element:HTMLElement, alphaFrom:number, alphaTo:number) {\n const da = alphaTo - alphaFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const alpha = alphaFrom + (progress * da / 100);\n logger.debug(\"alpha: \" + alpha.toString());\n element.style.opacity = alpha.toString();\n }\n });\n\n }\n\n static apply(element:HTMLElement, alphaFrom:number, alphaTo:number) {\n const da = alphaTo - alphaFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const alpha = alphaFrom + (progress * da / 100);\n logger.debug(\"alpha: \" + alpha.toString());\n element.style.opacity = alpha.toString();\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n\n export class Move extends Effect {\n duration = 1000;\n static duration: any;\n\n static apply(element:MoveElement, xfrom:number, yfrom:number, xto:number, yto:number) {\n const dx = xto - xfrom;\n const dy = yto - yfrom;\n element.style.transform = \"translate(\" + xfrom + \"px,\" + yfrom + \"px)\";\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const y = yfrom + (progress * dy / 100);\n const x = xfrom + (progress * dx / 100);\n logger.debug(\"x: \" + x.toString() + \" y:\" + y.toString());\n element.style.transform = \"translate(\" + x + \"px,\" + y + \"px)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n Package(\"org.qcobjects.effects.base\", [\n Fade,\n Move\n ]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport {Effect, logger, Package} from \"qcobjects\";\nimport {Move, MoveElement} from \"./org.qcobjects.effects.base\";\n\nexport class MoveXInFromRight extends Move {\n duration = 1000;\n\n static apply(element:MoveElement) {\n Move.apply.call(this, element, element.width as number, 0, 0, 0);\n }\n }\n\n export class MoveXInFromLeft extends Move {\n duration = 1000;\n\n static apply(element:MoveElement) {\n Move.apply.call(this, element, -(element.width as number), 0, 0, 0);\n }\n }\n\n export class MoveYInFromBottom extends Move {\n duration = 1000;\n\n static apply(element:MoveElement) {\n Move.apply.call(this, element, 0, element.height as number, 0, 0);\n }\n\n }\n\n export class MoveYInFromTop extends Move {\n duration = 1000;\n\n static apply(element:MoveElement ) {\n Move.apply.call(this, element, 0, -(element.height as number), 0, 0);\n }\n }\n\n export class RotateX extends Effect {\n duration = 1000;\n static duration: any;\n\n static apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(1,0,0,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class RotateY extends Effect {\n duration = 1000;\n static duration: any;\n\n static apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(0,1,0,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n\n export class RotateZ extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(0,0,1,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class Rotate extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(1,1,1,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n\n export class Radius extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, radiusFrom:number, radiusTo:number) {\n const dr = radiusTo - radiusFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const radius = radiusFrom + (progress * dr / 100);\n logger.debug(\"radius: \" + radius.toString());\n element.style.borderRadius = radius.toString() + \"px\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class Resize extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"resize: \" + scale.toString());\n element.style.transformOrigin = \"center\";\n element.style.transform = \"scale(\" + scale + \",\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeLeft extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"right\";\n element.style.transform = \"scaleX(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeRight extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"left\";\n element.style.transform = \"scaleX(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeUp extends Effect {\n\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"bottom\";\n element.style.transform = \"scaleY(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeDown extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"top\";\n element.style.transform = \"scaleY(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n Package(\"org.qcobjects.effects.extended\", [\n MoveXInFromRight,\n MoveXInFromLeft,\n MoveYInFromBottom,\n MoveYInFromTop,\n RotateX,\n RotateY,\n RotateZ,\n Rotate,\n Radius,\n Resize,\n WipeLeft,\n WipeRight,\n WipeUp,\n WipeDown\n\n ]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package } from \"qcobjects\";\nimport { Fade, Move } from \"./org.qcobjects.effects\";\n\nexport class ModalFade extends Fade {\n duration = 500;\n\n}\n\n\nexport class ModalMoveUp extends Move {\n\n duration = 800;\n\n}\n\n\nexport class ModalMoveDown extends Move {\n\n duration = 300;\n\n}\n\n\nPackage(\"org.qcobjects.modal.effects\", [\n ModalFade,\n ModalMoveDown,\n ModalMoveUp\n]);\n\n\n", "import {Package, Component, logger} from \"qcobjects\";\nexport type FieldComponentParams = {\n name: string;\n body: any;\n data: any;\n basePath?: string;\n fieldType: string;\n}\nexport class FormField extends Component {\n fieldType!: string;\n cached = false;\n reload = true;\n body: any;\n name!: string;\n data: any;\n constructor(o: FieldComponentParams) {\n o.name = (typeof o.name !== \"undefined\") ? (o.name) : (\"form-field\");\n super(o);\n }\n\n createBindingEvents() {\n let _objList;\n if (typeof this.fieldType === \"undefined\" || this.fieldType == null) {\n _objList = this.body.subelements(\"*[data-field]\"); // every child with data-field set\n } else {\n _objList = this.body.subelements(this.fieldType + \"[data-field]\"); // every child with data-field set and tagname is equal to fieldType property\n }\n for (let _datak = 0; _datak < _objList.length; _datak++) {\n const _obj = _objList[_datak];\n _obj.addEventListener(\"change\", () => {\n logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"blur\", () => {\n logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"focus\", () => {\n logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"keydown\", () => {\n logger.debug(\"Executing keydown event binding\");\n this.executeBindings();\n });\n }\n }\n\n executeBinding(_obj: HTMLElement & { value: any }) {\n const _datamodel = _obj.getAttribute(\"data-field\");\n logger.debug(\"Binding \" + _datamodel + \" for \" + this.name);\n this.data[_datamodel as keyof typeof this.data] = _obj.value;\n }\n\n executeBindings() {\n let _objList;\n if (typeof this.fieldType === \"undefined\" || this.fieldType == null) {\n _objList = this.body.subelements(\"*[data-field]\"); // every child with data-field set\n } else {\n _objList = this.body.subelements(this.fieldType + \"[data-field]\"); // every child with data-field set and tagname is equal to fieldType property\n }\n for (let _datak = 0; _datak < _objList.length; _datak++) {\n const _obj = _objList[_datak] as HTMLElement & { value: any };\n const _datamodel = _obj.getAttribute(\"data-field\");\n logger.debug(\"Binding \" + _datamodel + \" for \" + this.name);\n this.data[_datamodel as keyof typeof this.data] = _obj.value;\n }\n }\n\n done(standardResponse: any): Promise {\n const _ret_ = super.done(standardResponse);\n this.executeBindings();\n this.createBindingEvents();\n logger.debug(\"Field loaded: \" + this.fieldType + \"[name=\" + this.name + \"]\");\n return _ret_ as Promise;\n }\n\n\n}\n\nPackage(\"org.qcobjects.base.components\", [\n FormField\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, Component } from \"qcobjects\";\n\nexport class GridItemComponent extends Component {\n name = \"grid-item\";\n shadowed = true;\n tplsource = \"inline\";\n template = `\n\n

                {{description}}

                \n`;\n\n cached = false;\n\n}\n\nexport class GridComponent extends Component {\n name = \"grid\";\n cached = false;\n view = null;\n shadowed = true;\n rows = 3;\n cols = 3;\n templateURI = \"\";\n data = {};\n tplsource = \"inline\";\n template = \"

                Loading...

                \";\n body: any;\n\n constructor(o: any) {\n super(o);\n this.body.setAttribute(\"controllerClass\", \"DataGridController\");\n const subcomponentClass = (this.body.getAttribute(\"subcomponentClass\") !== null) ? (this.body.getAttribute(\"subcomponentClass\")) : (\"GridItemComponent\");\n this.body.setAttribute(\"subcomponentClass\", subcomponentClass as string);\n\n }\n\n\n}\n\nPackage(\"org.qcobjects.components.grid\", [\n GridComponent,\n GridItemComponent\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Component, Package } from \"qcobjects\";\n\n\nexport class ListItemComponent extends Component {\n shadowed= false;\n tplsource= \"inline\";\n template=\"{{label}}\";\n cached= false;\n\n constructor (o:any){\n o.name=\"list-item\";\n super(o);\n }\n\n}\n\nexport class ListComponent extends Component {\n data!:any;\n shadowed= true;\n tplsource= \"inline\";\n template= \"

                Loading...

                \";\n body: any;\n shadowRoot: HTMLElement | undefined;\n rows!: string | number | null;\n subcomponents!: never[];\n done: any;\n serviceData: any;\n\n constructor (o:any){\n o.name = \"list\";\n super(o);\n this.body.setAttribute(\"controllerClass\",\"ListController\");\n this.body.setAttribute(\"subcomponentClass\",\"ListItemComponent\");\n\n }\n\n}\n\nPackage(\"org.qcobjects.components.list\",[\n ListItemComponent,\n ListComponent\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Component } from \"qcobjects\";\n\nexport class SlideListComponent extends Component {\n tplsource = \"inline\";\n template = \"

                Loading...

                \";\n name = \"slidelist\";\n body: any;\n\n constructor(o: any) {\n super(o);\n this.body.setAttribute(\"controllerClass\", \"DataGridController\");\n const subcomponentClass = (this.body.getAttribute(\"subcomponentClass\") !== null) ? (this.body.getAttribute(\"subcomponentClass\")) : (\"GridItemComponent\");\n this.body.setAttribute(\"subcomponentClass\", subcomponentClass as string);\n }\n\n}\n\nexport class SlideItemComponent extends Component {\n effectClass = \"Fade\";\n name = \"slider_item\";\n data: any;\n template: string;\n tplsource: string;\n\n constructor(o: any) {\n super(o);\n this.data.slideNumber = this.data.__dataIndex + 1;\n this.template = `\n
                \n
                {{slideNumber}} / {{__dataLength}}
                \n \"{{title}}\"/\n
                \n

                {{label}} {{category}}

                \n
                \n
                \n `;\n this.tplsource = \"inline\";\n\n }\n\n}\n\nexport class SliderComponent extends Component {\n name = \"slider\";\n template: string;\n tplsource: string;\n shadowed: boolean;\n data: any;\n body: any;\n __instanceID: any;\n\n constructor(o: any) {\n super(o);\n this.template = `\n \n\n
                \n \n\n \n \n
                \n
                \n\n
                \n
                \n\n `;\n this.tplsource = \"inline\";\n this.shadowed = true;\n this.data.SERVICE_CLASS = this.body.getAttribute(\"serviceClass\");\n this.data.sliderHandler = \"slider_\" + this.__instanceID.toString();\n this.body.setAttribute(\"controllerClass\", \"SliderController\");\n\n }\n\n}\n\n\nPackage(\"org.qcobjects.components.slider\", [\n SlideListComponent,\n SlideItemComponent,\n SliderComponent\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Component, _DOMCreateElement, New, _super_ } from \"qcobjects\";\nimport { Fade, Move } from \"./org.qcobjects.effects\";\n\n\nexport class NotificationComponent extends Component {\n cached= false;\n tplsource= \"inline\";\n shadowed= false;\n kinds:string[];\n template: string;\n\n constructor (o:any){\n o.name= \"notification\";\n o.body = _DOMCreateElement(\"div\") as HTMLElement;\n super(o);\n\n this.template= `\n \n
                \n
                \n

                {{title}} {{message}}

                \n
                \n
                \n `;\n this.kinds=[\"danger\", \"success\", \"info\", \"warning\"];\n\n }\n\n display(element:HTMLElement) {\n const _display_ = function (element:HTMLElement){\n element.style.display=\"block\";\n const appearEffect = New(Move,{\n duration:900,\n apply (element:HTMLElement){\n _super_(\"Fade\",\"apply\").call(this,element,0,1);\n _super_(\"Move\",\"apply\").call(this,element,0,-document.body.clientHeight,0,0);\n }\n });\n const disappearEffect = New(Move,{\n duration:650,\n apply (element:HTMLElement){\n _super_(\"Fade\",\"apply\").call(this,element,1,0);\n _super_(\"Move\",\"apply\").call(this,element,0,0,0,-document.body.clientHeight);\n }\n });\n appearEffect.apply(element);\n setTimeout(function (){\n disappearEffect.apply(element);\n },2000);\n };\n \n (element as any).subelements(\"div.notification_background\").map((element:HTMLElement):any=> {return (new Fade ({duration:500})).apply(element,0,1);} );\n (element as any).subelements(\"div.notification\").map((element:any)=>_display_(element));\n setTimeout(function (){\n element.remove();\n },2200);\n }\n\n static success(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"success\",\n title: \"Success!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n\n static danger(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"danger\",\n title: \"Danger!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n\n static info(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"info\",\n title: \"Info!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n\n static warning(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"warning\",\n title: \"Warning!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n \n\n}\n\nPackage(\"org.quickcorp.components.notifications\", [\n NotificationComponent\n]);\n", "/**\n * QCObjects SDK 2.5.0\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\n\"use strict\";\nimport { Package, Component, CONFIG, logger, global } from \"qcobjects\";\nimport { Resize, Fade } from \"./org.qcobjects.effects\";\n\n type SplashScreenParams = {\n name:string;\n basePath: string;\n data:any;\n body:any;\n }\n type MainSplashComponent = {\n body: any;\n splashScreenComponent: any;\n shadowed: any;\n shadowRoot: any;\n // eslint-disable-next-line no-unused-vars\n addComponentHelper(arg0: () => void): unknown;\n name:string;\n _mainPosition: string;\n _mainOpacity: string;\n }\n\nexport class SplashScreenComponent extends Component {\n _enabled_: boolean;\n _bgcolor: string;\n cached = false;\n shadowed = true;\n body: any;\n shadowRoot: any;\n\n constructor(component: SplashScreenParams) {\n component.name = (typeof component.name === \"undefined\") ? (\"splashscreen\") : (component.name);\n\n const isBrowser = typeof window !== \"undefined\" && typeof window.self !== \"undefined\" && window === window.self;\n const isStartURL = (location.hash === \"\"\n && location.pathname === \"/\" && location.search === \"\")\n || CONFIG.get(\"routingWay\", \"pathname\") === \"hash\" && CONFIG.get(\"start_url\", \"/\") === location.hash\n || CONFIG.get(\"routingWay\", \"pathname\") === \"pathname\" && CONFIG.get(\"start_url\", \"/\") === location.pathname\n || CONFIG.get(\"routingWay\", \"pathname\") === \"search\" && CONFIG.get(\"start_url\", \"/\") === location.search;\n const _enabled_ = isBrowser && isStartURL;\n\n if (_enabled_) {\n component.basePath = CONFIG.get(\"splashscreenBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n if (typeof component.data === \"undefined\") {\n component.data = {};\n }\n component.data.basePath = component.basePath;\n } else {\n if (typeof component !== \"undefined\" && typeof component.body !== \"undefined\") {\n component.body.style.display = \"none\";\n }\n }\n super(component);\n this._bgcolor = \"\";\n this._enabled_ = _enabled_;\n\n if (this._enabled_) {\n const displayEffectDuration = 1000;\n let duration = this.body.getAttribute(\"duration\") as unknown as number;\n if (duration === null) {\n duration = displayEffectDuration;\n } else {\n duration = parseInt(duration.toString());\n }\n this._bgcolor = this.body.style.backgroundColor;\n\n const _helper_ = () => {\n setTimeout(() => {\n if (!_helper_.executed) {\n const _componentRoot = (this.shadowed) ? (this.shadowRoot?.host as HTMLElement) : (this.body as HTMLElement);\n if (typeof global.componentsStack !== \"undefined\") {\n \n global.componentsStack.filter((c: MainSplashComponent) => c.body.hasAttribute(\"splashscreen\")).map(\n (mainComponent: MainSplashComponent) => {\n logger.debug(`Splash Screen of Main Component: ${mainComponent.name}`);\n mainComponent.splashScreenComponent = this;\n const SplashScreenHandler = () => {\n if (!(SplashScreenHandler as any).executed) {\n const component = mainComponent.splashScreenComponent as SplashScreenComponent;\n const mainElement = (mainComponent.shadowed) ? (mainComponent.shadowRoot?.host as HTMLElement) : (mainComponent.body as HTMLElement);\n mainComponent._mainPosition = mainElement.style.position;\n if (typeof mainElement !== \"undefined\") {\n mainElement.style.position = \"fixed\";\n }\n mainComponent._mainOpacity = mainElement.style.opacity;\n _componentRoot.style.width = \"100%\";\n _componentRoot.style.height = \"100%\";\n document.body.style.backgroundColor = \"#111111\";\n mainElement.style.opacity = \"0\";\n setTimeout(function () {\n if (typeof _componentRoot !== \"undefined\") {\n document.body.style.backgroundColor = component?._bgcolor;\n (_componentRoot as any).subelements(\"#slot-logo\").map((slotlogo:any) => {\n slotlogo.style.display = \"block\";\n slotlogo.style.transformOrigin = \"center\";\n \n return (new Resize()).apply(slotlogo, 1, 0);\n });\n (new Fade()).apply(_componentRoot, 1, 0);\n }\n }, (duration - displayEffectDuration));\n setTimeout(function () {\n (new Fade()).apply(mainElement, 0, 1);\n mainElement.style.position = mainComponent._mainPosition;\n document.body.style.backgroundColor = component._bgcolor;\n if (_componentRoot.parentElement !== null) {\n _componentRoot.parentElement.remove();\n }\n }, duration);\n }\n (SplashScreenHandler as any).executed = true;\n };\n return mainComponent.addComponentHelper(SplashScreenHandler.bind(mainComponent));\n }\n );\n }\n _helper_.executed = true;\n }\n\n });\n };\n _helper_.executed = false;\n this.addComponentHelper(_helper_.bind(component));\n }\n\n }\n // eslint-disable-next-line no-unused-vars\n addComponentHelper(arg0: { (): void; executed: boolean; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n\n }\n\n\n Package(\"org.qcobjects.components.base\", [\n SplashScreenComponent\n ]);\n\n export class VideoSplashScreenComponent extends SplashScreenComponent {\n cached = false;\n shadowed = true;\n tplsource = \"inline\";\n template = `\n \n
                \n
                \n \n \n
                \n
                \n\n `;\n\n\n constructor(o: SplashScreenParams) {\n o.name = \"videosplashscreen\";\n super(o);\n }\n }\n\n export class CubeSplashScreenComponent extends SplashScreenComponent {\n cached = false;\n shadowed = true;\n tplsource = \"inline\";\n template = `\n \n\n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n
                \n\n `;\n\n constructor(o: SplashScreenParams) {\n o.name = \"cubesplashscreen\";\n super(o);\n }\n\n }\n\n\n Package(\"org.qcobjects.components.splashscreen\", [\n SplashScreenComponent,\n VideoSplashScreenComponent,\n CubeSplashScreenComponent\n ]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Controller, Package } from \"qcobjects\";\n\nexport class GenericController extends Controller {\n\n}\n\nPackage(\"org.qcobjects.controllers\", [\n GenericController\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, Controller, logger, CONFIG, _DataStringify, _DOMCreateElement, New, ClassFactory, ComponentURI, serviceLoader } from \"qcobjects\";\nimport { ListComponent } from \"./org.qcobjects.components.list\";\nexport type ListControllerParams = {\n component: ListComponent;\n valueField: string | undefined;\n labelField: string | undefined;\n dependencies: any[];\n};\n\nexport class ListController extends Controller {\n __instanceID!: number;\n component: ListComponent;\n valueField: string | undefined;\n labelField: string | undefined;\n rows: number | string | null;\n cols: number;\n _componentRoot: HTMLElement | undefined;\n\n constructor({ component, dependencies = [], valueField = undefined, labelField = undefined }: ListControllerParams) {\n super({ component, dependencies, valueField, labelField } as ListControllerParams);\n this.component = component;\n this._componentRoot = (this.component.shadowed) ? (this.component.shadowRoot) : (this.component.body);\n\n this.labelField = this.component.body.getAttribute(\"label-field\") as string;\n this.valueField = this.component.body.getAttribute(\"value-field\") as string;\n this.rows = this.component.body.getAttribute(\"rows\");\n this.rows = (this.rows !== null) ? (this.rows) : (this.component.rows);\n this.cols = 1;\n logger.debug(\"ListController INIT\");\n\n }\n\n getPageIndex(page: number, totalPage: number, totalElements: number) {\n page = (page > 0) ? (page - 1) : (0);\n return [totalElements * page / totalPage, (totalElements * page / totalPage) + totalElements / totalPage];\n }\n\n addSubcomponents() {\n this.component.subcomponents = [];\n const layout = this.component.body.getAttribute(\"layout\");\n const basePath = CONFIG.get(\"listBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n let cssLayout = \"\";\n this.labelField = this.component.body.getAttribute(\"label-field\");\n this.valueField = this.component.body.getAttribute(\"value-field\");\n\n if (layout === \"horizontal\") {\n cssLayout = `@import url(\"${basePath}css/components/horizontal-list.css\");`;\n } else {\n cssLayout = `@import url(\"${basePath}css/components/list.css\");`;\n }\n if (typeof this._componentRoot !== \"undefined\") {\n this._componentRoot.innerHTML = `
                  `;\n }\n logger.debug(_DataStringify(this.component.data));\n try {\n const subcomponentClass = this.component.body.getAttribute(\"subcomponentClass\");\n if (subcomponentClass != null) {\n let offset: number;\n let limit: number;\n let pagesNumber: number;\n let list = [...this.component.data];\n let paginateIn = this.component.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n let page: number;\n if (paginateIn === \"client\") {\n page = this.component.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n if (page !== -1) {\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, list.length)[0];\n limit = this.getPageIndex(page, pagesNumber, list.length)[1];\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list = list.slice(offset, limit);\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list.map(\n (record, dataIndex) => {\n const _ret_ = undefined;\n try {\n const _body = _DOMCreateElement(\"li\");\n record.label = record[this.labelField as string];\n record.value = record[this.valueField as string];\n const subcomponent = New(ClassFactory(subcomponentClass), {\n name: \"list-item\",\n data: {\n label: record[this.labelField as string],\n value: record[this.valueField as string],\n __dataIndex: dataIndex,\n __page: page,\n __totalPages: pagesNumber,\n __limit: limit,\n __offset: offset\n },\n templateURI: ComponentURI({\n \"COMPONENTS_BASE_PATH\": CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": ClassFactory(subcomponentClass).name,\n \"TPLEXTENSION\": CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": ClassFactory(subcomponentClass).tplsource\n }),\n body: _body,\n template: ClassFactory(subcomponentClass).template\n });\n subcomponent.done = this.component.done.bind(subcomponent);\n try {\n if (subcomponent) {\n subcomponent.data.__dataIndex = dataIndex;\n if (Object.hasOwnProperty.call(this.component.data, \"length\")) {\n subcomponent.data.__dataLength = this.component.data.length;\n }\n logger.debug(\"adding subcomponent to body\");\n\n (this._componentRoot as any).subelements(\"ul\").map((ul: HTMLElement) => ul.append(subcomponent));\n try {\n this.component.subcomponents.push(subcomponent as never);\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n } else {\n logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n return _ret_;\n }\n );\n } else {\n logger.debug(\"NO SUBCOMPONENT CLASS IN COMPONENT\");\n }\n\n } catch (e: any) {\n logger.debug(`No data for component: ${e}`);\n }\n }\n\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = _DOMCreateElement(\"style\");\n const templateRows = \"auto \".repeat(this.rows as number);\n const templateCols = \"auto \".repeat(this.cols);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n _componentRoot.append(s);\n _componentRoot.classList.add(className);\n }\n }\n\n done() {\n this.cssGrid();\n\n const componentInstance = this.component;\n logger.debug(\"ListController DONE\");\n const serviceClass = this.component.body.getAttribute(\"serviceClass\");\n if (serviceClass != null) {\n let offset;\n let limit;\n let paginateIn = componentInstance.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"server\") {\n let page = componentInstance.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n let pagesNumber;\n if (page !== -1) {\n const serverDataCount = (this.component.body.getAttribute(\"server-data-count\") !== null) ? (this.component.body.getAttribute(\"server-data-count\")) : (1);\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0];\n limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1];\n // send params in jsonrpc 2.0 style\n componentInstance.serviceData = (typeof componentInstance.serviceData !== \"undefined\") ? (componentInstance.serviceData) : ({});\n componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== \"undefined\") ? (componentInstance.serviceData.params) : ({});\n componentInstance.serviceData.params.offset = offset;\n componentInstance.serviceData.params.limit = limit;\n }\n }\n\n serviceLoader(New(ClassFactory(serviceClass), {\n data: componentInstance.serviceData\n }), false).then(\n (successfulResponse: { service: any }) => {\n // This will show the service response as a plain text\n logger.debug(\"DONE SERVICE COMPONENT\");\n successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template);\n if (typeof successfulResponse.service.JSONresponse.result !== \"undefined\") {\n logger.debug(_DataStringify(successfulResponse.service.JSONresponse.result));\n componentInstance.data = successfulResponse.service.JSONresponse.result;\n } else {\n componentInstance.data = successfulResponse.service.JSONresponse;\n }\n this.addSubcomponents();\n\n },\n (failedResponse: string) => {\n logger.debug(failedResponse);\n }).catch((e: any) => {\n logger.debug(\"Something went wrong when calling the service from: \" + serviceClass);\n logger.debug(e.message);\n });\n\n }\n\n }\n\n\n}\n\n\nPackage(\"org.qcobjects.controllers.list\", [\n ListController\n\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\n\"use strict\";\nimport { Package, Controller, _DOMCreateElement, logger, _DataStringify, ClassFactory, New, ComponentURI, CONFIG, serviceLoader, Component } from \"qcobjects\";\nimport { GridComponent } from \"./org.qcobjects.components.grid\";\n\ntype DataGridControllerParams = {\n component: Component;\n rows: number | string | null;\n cols: number | string | null;\n}\n\nexport class GridController extends Controller {\n __instanceID!: number;\n rows: number | string | null;\n cols: number | string | null;\n component: any;\n\n constructor(controller: any) {\n super(controller);\n this.rows = this.component.body.getAttribute(\"rows\");\n this.rows = (this.rows !== null) ? (this.rows) : ((this.component).rows);\n this.cols = this.component.body.getAttribute(\"cols\");\n this.cols = (this.cols !== null) ? (this.cols) : ((this.component).cols);\n\n }\n\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = _DOMCreateElement(\"style\");\n const templateRows = \"auto \".repeat(this.rows as number);\n const templateCols = \"auto \".repeat(this.cols as number);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n _componentRoot?.append(s);\n if (component.shadowed) {\n (_componentRoot as ShadowRoot)?.host.classList.add(className);\n } else {\n ((_componentRoot as HTMLDivElement).classList).add(className);\n }\n }\n }\n\n done() {\n this.cssGrid();\n\n logger.debug(\"GridComponent built\");\n\n }\n\n}\n\nexport class DataGridController extends Controller {\n __instanceID!: number;\n rows: number | string | null;\n cols: number | string | null;\n _componentRoot: HTMLElement | ShadowRoot | undefined;\n component: any;\n\n constructor(controller: DataGridControllerParams) {\n super(controller);\n this._componentRoot = (controller.component.shadowed) ? (controller.component.shadowRoot) : (controller.component.body);\n this.rows = controller.component.body.getAttribute(\"rows\");\n this.rows = (controller.rows !== null) ? (controller.rows) : ((controller.component as GridComponent).rows);\n this.cols = controller.component.body.getAttribute(\"cols\");\n this.cols = (controller.cols !== null) ? (controller.cols) : ((controller.component as GridComponent).cols);\n logger.debug(\"DataGridController INIT\");\n\n }\n\n getPageIndex(page: number, totalPage: number, totalElements: number) {\n page = (page > 0) ? (page - 1) : (0);\n return [totalElements * page / totalPage, (totalElements * page / totalPage) + totalElements / totalPage];\n }\n\n addSubcomponents() {\n this.component.subcomponents = [];\n if (typeof this._componentRoot !== \"undefined\") {\n this._componentRoot.innerHTML = \"\";\n }\n this.cssGrid();\n logger.debug(_DataStringify(this.component.data));\n try {\n const subcomponentClass = this.component.body.getAttribute(\"subcomponentClass\");\n if (subcomponentClass != null) {\n let offset: number;\n let limit: number;\n let pagesNumber: number;\n let list = [...this.component.data];\n let paginateIn = this.component.body.getAttribute(\"paginate-in\");\n let page: number | string | null | undefined;\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"client\") {\n page = this.component.body.getAttribute(\"page-number\") as unknown as number;\n page = (isNaN(page) || page === null) ? (-1) : (page);\n if (page !== -1) {\n pagesNumber = this.component.body.getAttribute(\"total-pages\") as unknown as number;\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, list.length)[0];\n limit = this.getPageIndex(page, pagesNumber, list.length)[1];\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list = list.slice(offset, limit);\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list.map(\n (record, dataIndex, list) => {\n const _ret_ = undefined;\n try {\n const _body = _DOMCreateElement(\"component\");\n _body.setAttribute(\"name\", ClassFactory(subcomponentClass).name);\n _body.setAttribute(\"shadowed\", ClassFactory(subcomponentClass).shadowed);\n _body.setAttribute(\"cached\", ClassFactory(subcomponentClass).cached);\n record = Object.assign(record, {\n __dataIndex: dataIndex,\n __dataLength: list.length,\n __page: page,\n __totalPages: pagesNumber,\n __limit: limit,\n __offset: offset\n });\n const subcomponent = New(ClassFactory(subcomponentClass), {\n name: \"item\",\n data: record,\n templateURI: ComponentURI({\n \"COMPONENTS_BASE_PATH\": CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": ClassFactory(subcomponentClass).name,\n \"TPLEXTENSION\": CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": ClassFactory(subcomponentClass).tplsource\n }),\n body: _body,\n template: ClassFactory(subcomponentClass).template\n });\n subcomponent.done = this.component.done.bind(subcomponent);\n try {\n if (subcomponent) {\n subcomponent.data.__dataIndex = dataIndex;\n if (Object.hasOwnProperty.call(this.component.data, \"length\")) {\n subcomponent.data.__dataLength = this.component.data.length;\n }\n logger.debug(\"adding subcomponent to body\");\n this._componentRoot?.append(subcomponent.body);\n try {\n this.component.subcomponents.push(subcomponent);\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n } else {\n logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n return _ret_;\n }\n );\n } else {\n logger.debug(\"NO SUBCOMPONENT CLASS IN COMPONENT\");\n }\n\n } catch (e: any) {\n logger.debug(`No data for component: ${e}`);\n }\n }\n\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = _DOMCreateElement(\"style\");\n const templateRows = \"auto \".repeat(this.rows as number);\n const templateCols = \"auto \".repeat(this.cols as number);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n if (component.shadowed) {\n component.body.append(s);\n (_componentRoot as ShadowRoot).host.classList.add(className);\n } else {\n _componentRoot?.append(s);\n (_componentRoot as HTMLElement).classList.add(className);\n }\n }\n }\n\n done() {\n const componentInstance = this.component;\n logger.debug(\"DataGridController DONE\");\n const serviceClass = this.component.body.getAttribute(\"serviceClass\");\n if (serviceClass != null) {\n let offset;\n let limit;\n let paginateIn = componentInstance.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"server\") {\n let page = componentInstance.body.getAttribute(\"page-number\") as unknown as number;\n page = (isNaN(page) || page === null) ? (-1) : (page);\n let pagesNumber;\n if (page !== -1) {\n const serverDataCount = (this.component.body.getAttribute(\"server-data-count\") !== null) ? (this.component.body.getAttribute(\"server-data-count\") as unknown as number) : (1);\n pagesNumber = this.component.body.getAttribute(\"total-pages\") as unknown as number;\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0];\n limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1];\n // send params in jsonrpc 2.0 style\n componentInstance.serviceData = (typeof componentInstance.serviceData !== \"undefined\") ? (componentInstance.serviceData) : ({});\n componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== \"undefined\") ? (componentInstance.serviceData.params) : ({});\n componentInstance.serviceData.params.offset = offset;\n componentInstance.serviceData.params.limit = limit;\n }\n }\n\n serviceLoader(New(ClassFactory(serviceClass), {\n data: componentInstance.serviceData\n }), false).then(\n (successfulResponse: { service: any }) => {\n // This will show the service response as a plain text\n logger.debug(\"DONE SERVICE COMPONENT\");\n successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template);\n if (typeof successfulResponse.service.JSONresponse.result !== \"undefined\") {\n logger.debug(_DataStringify(successfulResponse.service.JSONresponse.result));\n componentInstance.data = successfulResponse.service.JSONresponse.result;\n } else {\n componentInstance.data = successfulResponse.service.JSONresponse;\n }\n this.addSubcomponents();\n\n },\n (failedResponse: string) => {\n logger.debug(failedResponse);\n }).catch((e: any) => {\n logger.debug(\"Something went wrong when calling the service from: \" + serviceClass);\n logger.debug(e.message);\n });\n\n }\n\n }\n\n\n}\n\nPackage(\"org.qcobjects.controllers.grid\", [\n GridController,\n DataGridController\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { ClassFactory, Controller, New, Package, logger, Component } from \"qcobjects\";\n\ntype SliderParams = {\n dependencies: any[];\n component: Component;\n duration: number;\n slideIndex: number;\n interval: number | null;\n sliderHandlerName: string | null;\n};\n\nexport class SliderController extends Controller {\n slideIndex = 0;\n duration = 7100;\n interval: any = null;\n sliderHandlerName = \"\";\n _componentRoot: HTMLElement | ShadowRoot | undefined;\n component: Component;\n\n constructor({ component, dependencies = [], duration = 7100, slideIndex = 0, interval = null, sliderHandlerName = null }: SliderParams) {\n super({ component, dependencies, duration, slideIndex, interval, sliderHandlerName } as SliderParams);\n this.component = component;\n this._componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n this.sliderHandlerName = \"slider_\" + this.component.__instanceID.toString();\n (global as any).set(this.sliderHandlerName, this);\n\n }\n\n\n stop() {\n if (this.interval != null) {\n clearInterval(this.interval);\n }\n }\n\n plusSlidesAndStop(n: number) {\n this.stop();\n this.plusSlides(n);\n }\n\n plusSlides(n: number) {\n this.showSlides(this.slideIndex += n);\n }\n\n currentSlide(n: number) {\n this.stop();\n this.showSlides(this.slideIndex = n);\n }\n\n automate() {\n this.interval = setInterval(() => {\n this.plusSlides(1);\n }, this.duration);\n }\n\n showSlides(n: number) {\n const slides = (this._componentRoot as any)?.subelements(\".qcoSlides\");\n const dots = (this._componentRoot as any)?.subelements(\".qcoSlider__dots--dot\");\n\n if (n > (slides.length - 1)) {\n this.slideIndex = 0;\n }\n if (n < 0) {\n this.slideIndex = 0;\n }\n slides.filter((slide: any, index: number) => { return index !== this.slideIndex; }).map((slide: any) => {\n\n return (New(ClassFactory(\"Fade\"), {})).apply(slide, 1, 0);\n });\n // eslint-disable-next-line no-unused-vars\n dots.filter((dot: any, index: number) => { return index !== this.slideIndex; }).map((dot: { classList: { remove: (arg0: string) => any; }; }) => {\n\n return dot.classList.remove(\"active\");\n });\n try {\n dots[this.slideIndex].classList.add(\"active\");\n } catch (e: any) {\n logger.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${e.message}`);\n }\n setTimeout(() => {\n slides.filter((slide: any, index: number) => { return index !== this.slideIndex; }).map((slide: { style: { display: string; }; }) => {\n slide.style.display = \"none\";\n return slide.style.display;\n });\n try {\n slides[this.slideIndex].style.display = \"block\";\n (New(ClassFactory(\"Fade\"), {})).apply(slides[this.slideIndex], 0, 1);\n\n } catch (e: any) {\n logger.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${e.message}`);\n }\n }, 700);\n }\n\n fillDots() {\n const slides = (this._componentRoot as any)?.subelements(\".qcoSlides\");\n slides.map((slide: HTMLElement, index: number) => {\n const dotHTML = document.createElement(\"span\");\n const dotContent = ``;\n dotHTML.innerHTML = dotContent;\n\n return (this._componentRoot as any)?.subelements(\".qcoSlider__dots\")[0].append(dotHTML);\n });\n\n }\n\n done() {\n const slides = (this._componentRoot as any)?.subelements(\".qcoSlides\");\n slides.filter((slide: HTMLElement, index: number) => { return index !== this.slideIndex; }).map((slide: { style: { display: string; }; }) => {\n slide.style.display = \"none\";\n return slide.style.display;\n });\n setTimeout(() => {\n this.fillDots();\n this.slideIndex = 0;\n this.showSlides(this.slideIndex);\n this.automate();\n }, 3000);\n\n }\n\n}\n\n\nPackage(\"org.qcobjects.controllers.slider\", [\n\n SliderController\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Controller, serviceLoader, New, ClassFactory, logger, _DOMCreateElement, Tag } from \"qcobjects\";\nimport { FormField, ModalComponent } from \"./org.qcobjects.components\";\n\nexport class FormValidations extends Controller {\n getDefault() {\n return function (fieldName: string, dataValue: any, element: HTMLElement) {\n const _regex = {\n name: \"^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$\",\n email: \"^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$\"\n };\n const _pattern_ = (element.getAttribute(\"pattern\") || _regex[fieldName as keyof typeof _regex]);\n const pattern = new RegExp(_pattern_);\n return pattern.test(dataValue);\n };\n }\n\n}\n\nexport class FormController extends Controller {\n validations: any[] = [];\n formValidatorModal!: ModalComponent;\n serviceClass = \"\";\n formSettings = {\n backRouting: \"#\",\n loadingRouting: \"#loading\",\n nextRouting: \"#signupsuccessful\"\n };\n component: any;\n\n hasValidation(element: HTMLElement) {\n const fieldName = element.getAttribute(\"data-field\") as string;\n let _hasValidation = false;\n if (typeof this.validations !== \"undefined\"\n && Object.hasOwnProperty.call(this.validations, fieldName)) {\n _hasValidation = true;\n }\n return _hasValidation;\n }\n\n isInvalid(element: HTMLElement) {\n let _isInvalid = false;\n const fieldName = element.getAttribute(\"data-field\");\n const dataValue = this.component.data[fieldName as string];\n\n const _execValidation = (fieldName: string, dataValue: any, element: HTMLElement) => {\n\n return (typeof this.validations !== \"undefined\"\n && Object.hasOwnProperty.call(this.validations, fieldName)\n && this.validations[fieldName as keyof typeof this.validations].call(null, fieldName, dataValue, element));\n };\n\n if (typeof this.validations !== \"undefined\" && (\n !_execValidation(fieldName as string, dataValue, element)\n )) {\n _isInvalid = true;\n }\n return _isInvalid;\n }\n\n isValid(element: HTMLElement) {\n return !this.isInvalid(element);\n }\n\n save() {\n if (this.serviceClass !== \"\") {\n location.href = this.formSettings.loadingRouting;\n serviceLoader(New(ClassFactory(this.serviceClass), {\n data: this.component.data\n }), false).then(\n () => {\n // This will show the service response as a plain text\n console.log(\"DONE SERVICE COMPONENT\");\n location.href = this.formSettings.nextRouting;\n\n },\n (failedResponse: string) => {\n logger.debug(failedResponse);\n location.href = this.formSettings.backRouting;\n });\n } else {\n logger.debug(\"No service name declared on serviceClass property\");\n }\n\n }\n\n formSaveTouchHandler() {\n logger.debug(\"Saving data...\");\n const _componentRoot_ = (this.component.shadowed) ? ((this.component?.shadowRoot as ShadowRoot).host) : (this.component.body);\n (this.component).executeBindings();\n if (this.formValidatorModal != null) {\n const componentElementFields = _componentRoot_.subelements(\"*[data-field]\");\n const fieldsToValidate = componentElementFields.filter(\n (f: any) => this.hasValidation(f)\n );\n\n const _labelledby = function (parentElement: HTMLElement, element: HTMLElement) {\n const _arialabelledby = (parentElement: HTMLElement, element: HTMLElement) => {\n return (element.getAttribute(\"aria-labelledby\") !== null) ? ((element.getAttribute(\"aria-labelledby\") || \"\").split(\" \").map(\n\n e => (parentElement as any).subelements(`#${e}`).map((_e: any) => _e.innerHTML)\n ).join(\" \")) : (null);\n };\n\n return (_arialabelledby(parentElement, element)\n || element.getAttribute(\"aria-label\")\n || element.getAttribute(\"placeholder\")\n || element.getAttribute(\"name\")\n || element.getAttribute(\"data-field\"));\n };\n\n const _ariatitle = function (element: HTMLElement) {\n return (element.getAttribute(\"title\") || element.getAttribute(\"aria-title\") || \"\");\n };\n\n const invalidFields = fieldsToValidate.filter((f: any) => this.isInvalid(f));\n if (invalidFields.length > 0) {\n const validationMessage = `\n
                  \n Please verify the following incorrect fields:\n
                    \n
                    \n ${invalidFields.map((element: any) => \"
                  • \" + _labelledby(_componentRoot_ as HTMLElement, element) + \"
                    \" + _ariatitle(element) + \"
                  • \").join(\"\")}\n
                    \n
                  \n
                  \n`;\n this.formValidatorModal.body.subelements(\".validationMessage\")[0].innerHTML = validationMessage;\n this.formValidatorModal.modal();\n } else {\n this.save();\n }\n } else {\n logger.debug(\"Unable to find the modal validator...\");\n logger.debug(\"Saving data...\");\n this.save();\n }\n }\n\n constructor(o: any) {\n super(o);\n this.component = o.component;\n this.component = this.component.Cast(FormField);\n }\n\n done() {\n logger.debugEnabled = true;\n try {\n (this.component).createBindingEvents();\n const modalBody = _DOMCreateElement(\"div\");\n modalBody.className = \"modal_body\";\n this.formValidatorModal = New(ModalComponent, {\n body: modalBody,\n subcomponents: [],\n data: {\n content: \"
                  \"\n }\n });\n\n\n Tag(\".modal_body\").map((e: any) => document.body.removeChild(e));\n document.body.append(this.formValidatorModal.body);\n\n } catch (e: any) {\n logger.debug(`Unable to create the modal: ${e}`);\n }\n this.onpress(\".submit\", () => {\n this.formSaveTouchHandler();\n });\n\n }\n // eslint-disable-next-line no-unused-vars\n onpress(arg0: string, arg1: () => void) {\n throw new Error(\"Method not implemented.\");\n }\n\n\n}\n\nPackage(\"org.qcobjects.controllers.form\", [\n FormController,\n FormValidations\n\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { CONFIG, Controller, New, Package, SourceCSS, SourceJS } from \"qcobjects\";\ndeclare let SwaggerUIBundle: any;\ndeclare let SwaggerUIStandalonePreset: any;\nexport class SwaggerUIController extends Controller {\n component: any;\n dependencies: any;\n\n startSwaggerUI() {\n // Begin Swagger UI call region\n if (typeof SwaggerUIBundle !== \"undefined\") {\n\n const ui = SwaggerUIBundle({\n url: CONFIG.get(\"swagger-ui-url\", \"https://petstore.swagger.io/v2/swagger.json\"),\n dom_id: \"#\" + CONFIG.get(\"swagger-ui-dom_id\", \"swagger-ui\"),\n deepLinking: true,\n presets: [\n SwaggerUIBundle.presets.apis,\n SwaggerUIStandalonePreset\n ],\n plugins: [\n SwaggerUIBundle.plugins.DownloadUrl\n ],\n layout: \"StandaloneLayout\"\n });\n // End Swagger UI call region\n (window as any).ui = ui;\n }\n\n }\n\n done() {\n this.component.body.innerHTML = \"
                  \";\n const swaggerUIPackagePath = CONFIG.get(\"swagger-ui-package-path\", \"node_modules/swagger-ui-dist/\");\n\n this.dependencies?.push(New(SourceJS, {\n url: swaggerUIPackagePath + \"swagger-ui-standalone-preset.js\",\n external: CONFIG.get(\"swagger-ui-external\", false)\n }));\n this.dependencies?.push(New(SourceCSS, {\n url: swaggerUIPackagePath + \"swagger-ui.css\",\n external: CONFIG.get(\"swagger-ui-external\", false)\n }));\n this.dependencies?.push(New(SourceJS, {\n url: swaggerUIPackagePath + \"swagger-ui-bundle.js\",\n external: CONFIG.get(\"swagger-ui-external\", false),\n done: () => {\n this.startSwaggerUI();\n }\n }));\n }\n\n}\n\nPackage(\"org.qcobjects.controllers.swagger\", [\n SwaggerUIController\n\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Controller } from \"qcobjects\";\n\nexport class ModalController extends Controller {\n component: any;\n\n done() {\n const component = this.component;\n component.body.innerHTML = component.body.innerHTML.replace(\"/{{content}}/g\", component.submodal.template);\n\n }\n\n}\n\nPackage(\"org.qcobjects.modal.controllers\", [\n ModalController\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, View } from \"qcobjects\";\n\n\nexport class GridView extends View {\n\n\n}\n\n\nPackage(\"org.qcobjects.views\", [\n\n GridView\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\n\nimport { Package, InheritClass } from \"qcobjects\";\n\nexport class CanvasTool extends InheritClass {\n\n drawImageFilled(img: HTMLImageElement, canvas: HTMLCanvasElement, zoom = 1, px = 0, py = 0) {\n // get the scale\n let scale = Math.max(canvas.width / img.width, canvas.height / img.height);\n scale = scale * zoom;\n // get the top left position of the image\n const x = (canvas.width / 2) - (img.width / 2) * scale;\n const y = (canvas.height / 2) - (img.height / 2) * scale;\n const ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(img, (px + x), (py + y), img.width * scale, img.height * scale);\n }\n\n getImageResized(img: HTMLImageElement, width: number, height: number, resizedImage: HTMLImageElement, zoom = 1, px = 0, py = 0) {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n canvas.style.width = width.toString();\n canvas.style.height = height.toString();\n this.drawImageFilled(img, canvas, zoom, px, py);\n resizedImage.src = canvas.toDataURL(\"image/png\");\n return canvas;\n }\n\n}\n\nPackage(\"org.qcobjects.tools.canvas\", [\n CanvasTool\n]);", "/* eslint-disable array-callback-return */\n/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\n\nimport { CONFIG, InheritClass, New, Package, SourceCSS, Tag } from \"qcobjects\";\nimport { Fade, MoveXInFromLeft, MoveXInFromRight, MoveYInFromBottom } from \"./org.qcobjects.effects\";\nexport class BasicLayout extends InheritClass {\n dependencies: any[] = [];\n\n constructor({ component = null, dependencies = [] }) {\n super({ component, dependencies });\n }\n\n load() {\n this.dependencies.push(New(SourceCSS, {\n external: !(CONFIG.get(\"useLocalSDK\", false)),\n url: (CONFIG.get(\"useLocalSDK\", false)) ? (\"css/basic-layout.css\") : (CONFIG.get(\"remoteSDKPath\", false) + \"css/basic-layout.css\")\n }));\n }\n\n coloredBorder() {\n /*\n * A helper function to visualize the layout borders\n * Usage: BasicLayout.coloredBorder()\n */\n setTimeout(function () {\n Tag(\"nav\").map((element: HTMLElement) => { element.style.border = \"20px solid #3333\"; });\n Tag(\"nav\").map((element: HTMLElement) => { element.style.backgroundColor = \"#129999\"; });\n Tag(\"component>footer\").map((element: HTMLElement) => { element.style.background = \"#876\"; });\n Tag(\"component>div\").map((element: HTMLElement) => { element.style.border = \"3px dashed #fff\"; });\n Tag(\"component>section\").map((element: HTMLElement) => { element.style.border = \"3px solid #000\"; });\n Tag(\"component>section\").map((element: HTMLElement) => { element.style.backgroundColor = \"#fffaaa\"; });\n\n Tag(\"component>article\").map((element: HTMLElement) => { element.style.border = \"3px dotted #000\"; });\n Tag(\"component>header\").map((element: HTMLElement) => { element.style.background = \"#789\"; });\n Tag(\"component>footer\").map((element: HTMLElement) => { element.style.background = \"#876\"; });\n Tag(\"component>article:nth-child(1)\").map((element: HTMLElement) => { element.style.border = \"1px solid #444\"; });\n Tag(\"component>article:nth-child(1)\").map((element: HTMLElement) => { element.style.backgroundColor = \"#555aaa\"; });\n Tag(\"component>article:nth-child(2)\").map((element: HTMLElement) => { element.style.backgroundColor = \"#aaa333\"; });\n Tag(\"component>article:nth-child(3)\").map((element: HTMLElement) => { element.style.backgroundColor = \"#54da82\"; });\n Tag(\"*\").map((element: HTMLElement) => { element.style.color = \"#fff\"; });\n\n\n Tag(\"component>article\").map((element: HTMLElement) => Fade.apply(element, 0, 1));\n Tag(\"component>footer\").map((element: HTMLElement) => Fade.apply(element, 0, 1));\n Tag(\"component>header\").map((element: HTMLElement) => Fade.apply(element, 0, 1));\n Tag(\"nav\").map((element: HTMLElement) => { element.style.display = \"block\"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); MoveXInFromLeft.apply(element); });\n Tag(\"component>article\").map((element: HTMLElement) => { element.style.display = \"block\"; element.style.height = element.offsetParent?.scrollHeight.toString() || element.clientHeight.toString(); MoveYInFromBottom.apply(element); });\n Tag(\"component>article:nth-child(2)\").map((element: HTMLElement) => { element.style.display = \"block\"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); MoveXInFromRight.apply(element); });\n }, 300);\n }\n\n\n}\n\nPackage(\"org.qcobjects.tools.layouts\", [\n BasicLayout\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { CONFIG, ComplexStorageCache, InheritClass, New, Package, _Crypt, global } from \"qcobjects\";\n\n\ntype TGlobalUser = { username: string, token: string, id: string, priority: number };\n\nexport class SessionUserToken extends InheritClass {\n static user = {};\n __cache__: ComplexStorageCache;\n __instanceID: any;\n\n constructor(o: any) {\n super(o);\n\n const __instance__ = this;\n this.__cache__ = new ComplexStorageCache({\n index: __instance__.__instanceID.toString(),\n load() {\n let __token__;\n if (typeof navigator !== \"undefined\" && typeof origin !== \"undefined\") {\n __token__ = _Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin);\n } else {\n __token__ = _Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, CONFIG.get(\"domain\", \"localhost\"));\n }\n SessionUserToken.user = {\n priority: __instance__.__instanceID.toString(),\n token: __token__\n };\n return SessionUserToken.user;\n },\n alternate(cacheController: any) {\n SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); // setting dataObject with the cached value \n }\n });\n\n }\n\n static generateIndex(s: any) {\n return (typeof Buffer !== \"undefined\") ? (Buffer.from(s, \"ascii\").toString(\"base64\")) : (btoa(s));\n }\n\n static getGlobalUser(...args: any[]): TGlobalUser {\n const username = [args].join(\"|\");\n const __index__ = \"userToken_\" + SessionUserToken.generateIndex(username);\n if (typeof (global as any).get(__index__) === \"undefined\" || (global as any).get(__index__) === null) {\n (global as any).set(__index__, New(SessionUserToken, {\n username\n }));\n }\n SessionUserToken.user = (global as any).get(__index__).user;\n return global.get(__index__).user as TGlobalUser;\n }\n\n static getGlobalUserToken(...args: any[]): string {\n return SessionUserToken.getGlobalUser(args).token;\n }\n\n static getGlobalUserId(...args: any[]) {\n return SessionUserToken.getGlobalUser(args).id;\n }\n\n static getGlobalUserPriority(...args: any[]) {\n return SessionUserToken.getGlobalUser(args).priority;\n }\n\n static getLoginCredentialsToken(username: string, password: string): string {\n return _Crypt.encrypt(`${username}${password}`, SessionUserToken.getGlobalUserToken(username)) as string;\n }\n\n static closeGlobalSession(...args: any[]) {\n SessionUserToken.getGlobalUser(args);\n const username = [args].join(\"|\");\n const __index__ = \"userToken_\" + SessionUserToken.generateIndex(username);\n if (typeof (global as any).get(__index__) !== \"undefined\") {\n (global as any).get(__index__).__cache__.clear();\n (global as any).set(__index__, null);\n SessionUserToken.user = {};\n }\n }\n}\n\nPackage(\"org.qcobjects.cloud.auth.session.usertoken\", [\n SessionUserToken\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, InheritClass, _DataStringify } from \"qcobjects\";\nimport { SessionUserToken } from \"./org.qcobjects.cloud.auth.session.usertoken\";\n\nexport class SessionData extends InheritClass {\n\n __session_container__: any = null;\n sessionData: any;\n\n /**\n * Sets the session container\n * \n * @param {*} sessionContainer1, sessionContainer2, ...\n *\n */\n setSessionContainer() {\n // eslint-disable-next-line prefer-rest-params\n this.__session_container__ = [...arguments];\n }\n\n /**\n * Gets the session container\n *\n * @return {*} sessionContainer\n */\n getSessionContainer() {\n if (typeof this.__session_container__ === \"undefined\" || this.__session_container__ === null) {\n throw new Error(\"You need to set a session container first: sessionData.setSessionContainer(...arguments)\");\n }\n return this.__session_container__;\n }\n\n /**\n * Gets the session data\n *\n * @return {*} sessionData\n */\n getSessionData(...args: any[]) {\n\n const s = sessionStorage.getItem(`${this.index(args)}`);\n let sessionData;\n if (s !== null) {\n sessionData = JSON.parse(s);\n }\n if (typeof sessionData === \"undefined\" || sessionData === null) {\n sessionData = {};\n }\n return sessionData;\n }\n\n /**\n * Returns an index of the session\n * \n * @param {string} valueForIndex\n * @return {string} index\n * @example sessionInstance.index(\"me@email.com\", \"myusername\")\n * \n */\n index(...args: any[]) {\n if (typeof SessionUserToken === \"undefined\") {\n throw new Error(\"You need to import SessionUserToken first: Import (\\\"org.qcobjects.cloud.auth.session.usertoken\\\")\");\n }\n return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`;\n }\n\n /**\n * Saves the session instance\n *\n */\n save(...args: any[]) {\n const s = _DataStringify(this.sessionData);\n sessionStorage.setItem(`${this.index(args)}`, s);\n }\n\n\n /**\n *\n * Gets the session value\n *\n * @param {*} name\n * @param {*} defaultValue\n * @return {*} \n */\n get(name: string, defaultValue: any) {\n const sessionData = this.getSessionData(this.getSessionContainer());\n return (typeof sessionData[name] !== \"undefined\") ? (sessionData[name]) : (defaultValue);\n }\n\n /**\n *\n * Sets the session value\n * \n * @param {*} name\n * @param {*} value\n */\n set(name: string, value: any) {\n const sessionContainer = this.getSessionContainer();\n const sessionData = this.getSessionData(sessionContainer);\n this.sessionData = sessionData;\n this.sessionData[name] = value;\n this.save(sessionContainer);\n }\n\n}\n\nPackage(\"org.qcobjects.cloud.auth.session.data\", [\n SessionData\n\n]);\n\n"], + "mappings": "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", + "names": ["import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "element", "import_qcobjects", "component", "import_qcobjects", "import_qcobjects", "import_qcobjects", "list", "import_qcobjects", "import_qcobjects", "fieldName", "dataValue", "element", "parentElement", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "import_qcobjects", "_top"] +} diff --git a/public/css/base-modal.css b/public/css/base-modal.css deleted file mode 100644 index f3a51e7..0000000 --- a/public/css/base-modal.css +++ /dev/null @@ -1,2 +0,0 @@ -.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:#0006;border-radius:12px!important;border:none!important}.modal-content{background-color:#111;background-image:radial-gradient(#edeeef,#dee3de,#fcfcfc);margin:auto;padding:20px;border-radius:12px!important;border:1px solid #909090;width:80%;height:auto}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal *{color:#000} -/*# sourceMappingURL=base-modal.css.map */ diff --git a/public/css/base-modal.css.map b/public/css/base-modal.css.map deleted file mode 100644 index e64495e..0000000 --- a/public/css/base-modal.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../build/css/base-modal.css"], - "sourcesContent": ["/* The Modal (background) */\n.modal {\n display: none; /* Hidden by default */\n position: fixed; /* Stay in place */\n z-index: 1; /* Sit on top */\n padding-top: 100px; /* Location of the box */\n left: 0;\n top: 0;\n width: 100%; /* Full width */\n height: 100%; /* Full height */\n overflow: auto; /* Enable scroll if needed */\n background-color: rgb(0,0,0); /* Fallback color */\n background-color: rgba(0,0,0,0.4); /* Black w/ opacity */\n border-radius: 12px !important;\n border: none !important;\n}\n\n/* Modal Content */\n.modal-content {\n background-color: #111;\n background-image: radial-gradient( #edeeef,#dee3de,#fcfcfc);\n margin: auto;\n padding: 20px;\n border-radius: 12px !important;\n border: 1px solid #909090;\n width: 80%;\n height:auto;\n}\n/* The Close Button */\n.close {\n color: #aaaaaa;\n float: right;\n font-size: 28px;\n font-weight: bold;\n}\n\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n}\n.modal * {color:black}\n"], - "mappings": "AACA,OACE,aACA,eACA,UACA,kBACA,OACA,MACA,WACA,YACA,cACA,sBACA,uBAZF,6BAcE,sBAIF,eACE,sBACA,0DApBF,sDAwBE,yBACA,UACA,YAGF,OACE,WACA,YACA,eACA,gBAGF,0BAEE,WACA,qBACA,eAEF,SAAU", - "names": [] -} diff --git a/public/css/basic-layout-embedded-nav.css b/public/css/basic-layout-embedded-nav.css deleted file mode 100644 index 9bc3695..0000000 --- a/public/css/basic-layout-embedded-nav.css +++ /dev/null @@ -1,2 +0,0 @@ -@media (max-width: 600px),@media (max-width:460px),@media (aspect-ratio: 9/16),@media (aspect-ratio: 10/16),@media (aspect-ratio: 5/8),@media (aspect-ratio: 3/4),@media (aspect-ratio: 2/3){nav,article{width:100%;height:auto;position:relative}} -/*# sourceMappingURL=basic-layout-embedded-nav.css.map */ diff --git a/public/css/basic-layout-embedded-nav.css.map b/public/css/basic-layout-embedded-nav.css.map deleted file mode 100644 index 7d8562b..0000000 --- a/public/css/basic-layout-embedded-nav.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../build/css/basic-layout-embedded-nav.css"], - "sourcesContent": ["/* Responsive layout - makes the two columns/boxes stack on top of each other instead of next to each other, on small screens */\n@media (max-width: 600px),\n@media (max-width:460px),\n@media (aspect-ratio: 9/16),\n@media (aspect-ratio: 10/16),\n@media (aspect-ratio: 5/8),\n@media (aspect-ratio: 3/4),\n@media (aspect-ratio: 2/3){\n nav, article {\n width: 100%;\n height: auto;\n position: relative;\n }\n}\n"], - "mappings": "AACA,6LAOC,YACE,WACA,YACA", - "names": [] -} diff --git a/public/css/basic-layout.css b/public/css/basic-layout.css deleted file mode 100644 index a814b3e..0000000 --- a/public/css/basic-layout.css +++ /dev/null @@ -1,2 +0,0 @@ -@charset "UTF-8";*{box-sizing:border-box}body{font-family:Arial,Helvetica,sans-serif}header{padding:30px;text-align:center;font-size:20px}nav{float:left;width:30%;height:1080px;padding:20px}nav ul{list-style-type:none;padding:0}article{float:left;padding:20px;width:70%}section:after{content:"";display:table;clear:both}footer{padding:10px;text-align:center} -/*# sourceMappingURL=basic-layout.css.map */ diff --git a/public/css/basic-layout.css.map b/public/css/basic-layout.css.map deleted file mode 100644 index 0ffe44c..0000000 --- a/public/css/basic-layout.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../build/css/basic-layout.css"], - "sourcesContent": ["/**\n * QCObjects SDK 1.0\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\n@charset \"UTF-8\";\n/* CSS Document */\n\n* {\n box-sizing: border-box;\n }\n\n body {\n font-family: Arial, Helvetica, sans-serif;\n }\n\n /* Style the header */\n header {\n padding: 30px;\n text-align: center;\n font-size: 20px;\n }\n\n /* Create two columns/boxes that floats next to each other */\n nav {\n float: left;\n width: 30%;\n height: 1080px;\n padding: 20px;\n }\n\n /* Style the list inside the menu */\n nav ul {\n list-style-type: none;\n padding: 0;\n }\n\n article {\n float: left;\n padding: 20px;\n width: 70%;\n }\n\n /* Clear floats after the columns */\n section:after {\n content: \"\";\n display: table;\n clear: both;\n }\n\n\n /* Style the footer */\n footer {\n padding: 10px;\n text-align: center;\n }\n"], - "mappings": "iBA4BA,EACI,sBAGF,KACE,uCAIF,OArCF,aAuCI,kBACA,eAIF,IACE,WACA,UACA,cA/CJ,aAoDE,OACE,qBArDJ,UAyDE,QACE,WA1DJ,aA4DI,UAIF,cACE,WACA,cACA,WAKF,OAxEF,aA0EI", - "names": [] -} diff --git a/public/css/components/horizontal-list.css b/public/css/components/horizontal-list.css deleted file mode 100644 index 1611566..0000000 --- a/public/css/components/horizontal-list.css +++ /dev/null @@ -1,2 +0,0 @@ -ul{display:flex}li{display:inline}ul{padding:15px 0;background-color:#f7f6f6!important;border-radius:13px;box-shadow:#0003 0 1px 2px!important}ul li{list-style:none;margin:0;padding:7px 0 7px 10px;border-bottom:1px solid white}ul{list-style-type:none}li:hover{background:white;cursor:pointer}ul li ul{background:white;visibility:hidden;opacity:0;min-width:5rem;position:relative;transition:all .5s ease;margin-top:1rem;left:0;display:none}ul li:hover>ul,ul li ul:hover{visibility:visible;opacity:1;display:inline-block;margin:0 auto;width:95%}ul li ul li{clear:both;width:100%;padding:1%}ul li{overflow-x:hidden} -/*# sourceMappingURL=horizontal-list.css.map */ diff --git a/public/css/components/horizontal-list.css.map b/public/css/components/horizontal-list.css.map deleted file mode 100644 index 8fa5323..0000000 --- a/public/css/components/horizontal-list.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../build/css/components/horizontal-list.css"], - "sourcesContent": ["ul {\n display: flex;\n}\n\nli {\n display: inline;\n}\n\nul {\n padding: 15px 0 15px 0;\n background-color: #f7f6f6 !important;\n border-radius: 13px;\n box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 2px 0px !important;\n}\n\nul li {\n list-style: none;\n margin: 0;\n padding: 0;\n padding-top: 7px;\n padding-bottom: 7px;\n padding-left: 10px;\n border-bottom: 1px solid white;\n}\n\nul {\n list-style-type: none;\n}\n\n\nli:hover {\n background: white;\n cursor: pointer;\n}\n\nul li ul {\n background: white;\n visibility: hidden;\n opacity: 0;\n min-width: 5rem;\n position: relative;\n transition: all 0.5s ease;\n margin-top: 1rem;\n left: 0;\n display: none;\n}\n\nul li:hover > ul,\nul li ul:hover {\n visibility: visible;\n opacity: 1;\n display: inline-block;\n margin: 0 auto;\n width: 95%;\n}\n\nul li ul li {\n clear: both;\n width: 100%;\n padding: 1%;\n}\n ul li {\n overflow-x: hidden;\n}\n"], - "mappings": "AAAA,GACE,aAGF,GACE,eAGF,GARA,eAUE,mCAVF,mBAYE,qCAGF,MACE,gBAhBF,gCAsBE,8BAGF,GACE,qBAIF,SACE,iBACA,eAGF,SACE,iBACA,kBACA,UACA,eACA,kBACA,wBACA,gBACA,OACA,aAGF,8BAEE,mBACA,UACA,qBAnDF,cAqDE,UAGF,YACE,WACA,WA1DF,WA6DC,MACC", - "names": [] -} diff --git a/public/css/components/list.css b/public/css/components/list.css deleted file mode 100644 index f83e9e9..0000000 --- a/public/css/components/list.css +++ /dev/null @@ -1,2 +0,0 @@ -ul{padding:15px 0;background-color:#f7f6f6!important;border-radius:13px;box-shadow:#0003 0 1px 2px!important}ul li{list-style:none;margin:0;padding:7px 0 7px 10px;border-bottom:1px solid white}ul{list-style-type:none}ul,li{display:block}li:hover{background:white;cursor:pointer}ul li ul{background:white;visibility:hidden;opacity:0;min-width:5rem;position:relative;transition:all .5s ease;margin-top:1rem;left:0;display:none}ul li:hover>ul,ul li ul:hover{visibility:visible;opacity:1;display:inline-block;margin:0 auto;width:95%}ul li ul li{clear:both;width:100%;padding:1%}ul li{overflow-x:hidden} -/*# sourceMappingURL=list.css.map */ diff --git a/public/css/components/list.css.map b/public/css/components/list.css.map deleted file mode 100644 index 0b16a1b..0000000 --- a/public/css/components/list.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../build/css/components/list.css"], - "sourcesContent": ["ul {\n padding: 15px 0 15px 0;\n background-color: #f7f6f6 !important;\n border-radius: 13px;\n box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 2px 0px !important;\n}\n\nul li {\n list-style: none;\n margin: 0;\n padding: 0;\n padding-top: 7px;\n padding-bottom: 7px;\n padding-left: 10px;\n border-bottom: 1px solid white;\n}\n\nul {\n list-style-type: none;\n}\n\n\nul, li {display: block;}\nli:hover {\n background: white;\n cursor: pointer;\n}\n\nul li ul {\n background: white;\n visibility: hidden;\n opacity: 0;\n min-width: 5rem;\n position: relative;\n transition: all 0.5s ease;\n margin-top: 1rem;\n left: 0;\n display: none;\n}\n\nul li:hover > ul,\nul li ul:hover {\n visibility: visible;\n opacity: 1;\n display: inline-block;\n margin: 0 auto;\n width: 95%;\n}\n\nul li ul li {\n clear: both;\n width: 100%;\n padding: 1%;\n}\n ul li {\n overflow-x: hidden;\n}\n"], - "mappings": "AAAA,kBAEE,mCAFF,mBAIE,qCAGF,MACE,gBARF,gCAcE,8BAGF,GACE,qBAIF,MAAQ,cACR,SACE,iBACA,eAGF,SACE,iBACA,kBACA,UACA,eACA,kBACA,wBACA,gBACA,OACA,aAGF,8BAEE,mBACA,UACA,qBA5CF,cA8CE,UAGF,YACE,WACA,WAnDF,WAsDC,MACC", - "names": [] -} diff --git a/public/css/components/splashscreen.css b/public/css/components/splashscreen.css deleted file mode 100644 index 3d8c923..0000000 --- a/public/css/components/splashscreen.css +++ /dev/null @@ -1,2 +0,0 @@ -:host *{box-sizing:border-box}:host{zoom:1;width:device-width;margin:0;inset:0;position:absolute;padding:0;min-width:100vw;min-height:100vh;width:100vw;height:100vh;overflow:hidden;background-color:#000}#slot-logo::slotted(img){vertical-align:middle;display:block;width:100vw;left:0;margin:0;padding:0;top:20vh;bottom:20vh;position:absolute;z-index:9999999999;transform-origin:center;transform-style:preserve-3d;filter:blur(0em);transition:filter .5s}:host *{-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:none;-webkit-user-select:none}:host summary:focus,:host a:focus,:host button:focus{outline:none}.splashscreen,.fullscreen-bg{margin:0;inset:0;padding:0;background-attachment:fixed;background-position:center;background-clip:content-box;background-size:cover;position:absolute;min-width:100vw;min-height:100vh;width:100vw;height:100vh;z-index:0;overflow:hidden}.splashscreen .splashcontent{inset:0;margin:0 auto;width:100vw;height:100vh;padding:0;overflow:hidden;z-index:1}.splashscreen .splashcontent p{color:#fff}video.fullscreen-bg__video{inset:0;margin:0;padding:0;position:absolute;min-width:100vw;min-height:100vh;overflow:hidden;z-index:0;object-fit:cover} -/*# sourceMappingURL=splashscreen.css.map */ diff --git a/public/css/components/splashscreen.css.map b/public/css/components/splashscreen.css.map deleted file mode 100644 index 2a911ef..0000000 --- a/public/css/components/splashscreen.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../build/css/components/splashscreen.css"], - "sourcesContent": [":host * {\n box-sizing: border-box;\n}\n\n:host {\n zoom: 1.0;\n width: device-width;\n margin: 0;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n padding: 0;\n min-width: 100vw;\n min-height: 100vh;\n width: 100vw;\n height: 100vh;\n overflow: hidden;\n background-color: black;\n}\n#slot-logo::slotted(img) {\n vertical-align: middle;\n display: block;\n width: 100vw;\n left: 0;\n margin: 0;\n padding: 0;\n top: 20vh;\n bottom: 20vh;\n position: absolute;\n z-index: 9999999999;\n transform-origin: center;\n transform-style: preserve-3d;\n filter: blur(0em);\n transition: filter 0.5s;\n}\n\n:host * {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -webkit-touch-callout: none;\n /* prevent callout to copy image, etc when tap to hold */\n -webkit-text-size-adjust: none;\n /* prevent webkit from resizing text to fit */\n -webkit-user-select: none;\n /* prevent copy paste, to allow, change 'none' to 'text' */\n}\n\n/* FOCUS */\n:host summary:focus,\n:host a:focus,\n:host button:focus {\n outline: none;\n}\n\n.splashscreen,\n.fullscreen-bg {\n padding: 0;\n margin: 0;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n padding: 0;\n background-attachment: fixed;\n background-position: center;\n background-clip: content-box;\n background-size: cover;\n position: absolute;\n min-width: 100vw;\n min-height: 100vh;\n width: 100vw;\n height: 100vh;\n z-index: 0;\n overflow: hidden;\n}\n\n.splashscreen .splashcontent {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n margin: 0 auto;\n width: 100vw;\n height: 100vh;\n padding: 0;\n overflow: hidden;\n z-index: 1;\n}\n\n.splashscreen .splashcontent p {\n color: white;\n}\n\nvideo.fullscreen-bg__video {\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: 0;\n padding: 0;\n position: absolute;\n min-width: 100vw;\n min-height: 100vh;\n overflow: hidden;\n z-index: 0;\n object-fit: cover;\n}\n"], - "mappings": "AAAA,QACE,sBAGF,MACE,OACA,mBANF,iBAYE,kBAZF,UAcE,gBACA,iBACA,YACA,aACA,gBACA,sBAEF,yBACE,sBACA,cACA,YACA,OAzBF,mBA4BE,SACA,YACA,kBACA,mBACA,wBACA,4BACA,iBACA,sBAGF,QAEE,sBACA,qBACA,iBACA,2BAEA,8BAEA,yBAKF,qDAGE,aAGF,6BA1DA,2BAmEE,4BACA,2BACA,4BACA,sBACA,kBACA,gBACA,iBACA,YACA,aACA,UACA,gBAGF,6BAhFA,sBAsFE,YACA,aAvFF,UAyFE,gBACA,UAGF,+BACE,WAGF,2BAjGA,2BAwGE,kBACA,gBACA,iBACA,gBACA,UACA", - "names": [] -} diff --git a/public/css/modal.css b/public/css/modal.css deleted file mode 100644 index e86090e..0000000 --- a/public/css/modal.css +++ /dev/null @@ -1,2 +0,0 @@ -@import"./base-modal.css";.modal details{border:1px 0 0 1px solid #aaa;border-radius:4px;padding:.5em .5em 0}.modal summary{font-weight:700;margin:-.5em -.5em 0;padding:.5em}.modal details[open]{padding:.5em}.modal details[open] summary{border-bottom:1px solid #aaa;margin-bottom:.5em}.modal summary::-webkit-details-marker{display:none}.modal summary:after{border-radius:5px;content:"+";color:#111;float:left;font-size:1.5em;font-weight:700;margin:-5px 10px 0 0;padding:0;text-align:center;width:20px}.modal details[open] summary:after{content:"-"}.modal ul{list-style-type:none} -/*# sourceMappingURL=modal.css.map */ diff --git a/public/css/modal.css.map b/public/css/modal.css.map deleted file mode 100644 index 96fd33d..0000000 --- a/public/css/modal.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../build/css/modal.css"], - "sourcesContent": ["@import url(\"./base-modal.css\");\n\n.modal details {\n border: 1px 0 0 1px solid #aaa;\n border-radius: 4px;\n padding: .5em .5em 0;\n}\n\n.modal summary {\n font-weight: bold;\n margin: -.5em -.5em 0;\n padding: .5em;\n}\n\n.modal details[open] {\n padding: .5em;\n}\n\n.modal details[open] summary {\n border-bottom: 1px solid #aaa;\n margin-bottom: .5em;\n}\n\n.modal summary::-webkit-details-marker {\n display: none\n}\n\n.modal summary:after {\n border-radius: 5px;\n content: \"+\";\n color: #111111;\n float: left;\n font-size: 1.5em;\n font-weight: bold;\n margin: -5px 10px 0 0;\n padding: 0;\n text-align: center;\n width: 20px;\n}\n.modal details[open] summary:after {\n content: \"-\";\n}\n\n.modal ul {\n list-style-type: none;\n}\n"], - "mappings": "0BAEA,eACI,8BAHJ,sCAQA,eACI,gBATJ,kCAcA,qBAdA,aAkBA,6BACI,6BACA,mBAGJ,uCACE,aAGF,qBA3BA,kBA6BE,YACA,WACA,WACA,gBACA,gBAjCF,+BAoCE,kBACA,WAEF,mCACE,YAGF,UACE", - "names": [] -} diff --git a/public/esm/index.mjs b/public/esm/index.mjs new file mode 100644 index 0000000..1bcdb83 --- /dev/null +++ b/public/esm/index.mjs @@ -0,0 +1,2959 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; + +// src/QCObjects-SDK.ts +var QCObjects_SDK_exports = {}; +__export(QCObjects_SDK_exports, { + BasicLayout: () => BasicLayout, + ButtonField: () => ButtonField, + CanvasTool: () => CanvasTool, + Contact: () => Contact, + CubeSplashScreenComponent: () => CubeSplashScreenComponent, + DataGridController: () => DataGridController, + EmailField: () => EmailField, + Fade: () => Fade, + FormController: () => FormController, + FormField: () => FormField, + FormValidations: () => FormValidations, + GenericController: () => GenericController, + GridComponent: () => GridComponent, + GridController: () => GridController, + GridItemComponent: () => GridItemComponent, + GridView: () => GridView, + InputField: () => InputField, + ListComponent: () => ListComponent, + ListController: () => ListController, + ListItemComponent: () => ListItemComponent, + ModalComponent: () => ModalComponent, + ModalController: () => ModalController, + ModalEnclosureComponent: () => ModalEnclosureComponent, + ModalFade: () => ModalFade, + ModalMoveDown: () => ModalMoveDown, + ModalMoveUp: () => ModalMoveUp, + Move: () => Move, + MoveXInFromLeft: () => MoveXInFromLeft, + MoveXInFromRight: () => MoveXInFromRight, + MoveYInFromBottom: () => MoveYInFromBottom, + MoveYInFromTop: () => MoveYInFromTop, + NotificationComponent: () => NotificationComponent, + Radius: () => Radius, + Resize: () => Resize, + Rotate: () => Rotate, + RotateX: () => RotateX, + RotateY: () => RotateY, + RotateZ: () => RotateZ, + SessionData: () => SessionData, + SessionUserToken: () => SessionUserToken, + ShadowedComponent: () => ShadowedComponent, + SlideItemComponent: () => SlideItemComponent, + SlideListComponent: () => SlideListComponent, + SliderComponent: () => SliderComponent, + SliderController: () => SliderController, + SplashScreenComponent: () => SplashScreenComponent, + SwaggerUIComponent: () => SwaggerUIComponent, + SwaggerUIController: () => SwaggerUIController, + TextField: () => TextField, + VideoSplashScreenComponent: () => VideoSplashScreenComponent, + WipeDown: () => WipeDown, + WipeLeft: () => WipeLeft, + WipeRight: () => WipeRight, + WipeUp: () => WipeUp, + default: () => QCObjects_SDK_default, + i18n_messages: () => i18n_messages +}); +import { CONFIG as CONFIG9, GlobalSettings, _top } from "qcobjects"; + +// src/js/org.qcobjects.i18n_messages.ts +import { Package, InheritClass, CONFIG, Import, global as global2 } from "qcobjects"; +var i18n_messages = class extends InheritClass { + static { + __name(this, "i18n_messages"); + } + constructor({ + messages = [] + }) { + super({ + messages + }); + if (CONFIG.get("use_i18n", false)) { + CONFIG.set("lang", "en"); + if (!global2.get("i18n")) { + global2.set("i18n", { + messages + }); + } else { + global2.set("i18n", { + messages: global2.get("i18n").messages.concat(messages) + }); + } + } + } + _load_i18n_packages_() { + return CONFIG.get("i18n_languages", []).map((i18n_packagename) => { + Import(`org.quickcorp.i18n_messages.${i18n_packagename}`); + }); + } +}; +Package("org.qcobjects.i18n_messages", [ + i18n_messages +]); +new i18n_messages({})._load_i18n_packages_(); + +// src/js/org.qcobjects.models.ts +import { Package as Package2, VO } from "qcobjects"; +var Contact = class extends VO { + static { + __name(this, "Contact"); + } +}; +Package2("org.qcobjects.models", [ + Contact +]); + +// src/js/org.qcobjects.components.ts +import { Package as Package7, Component as Component2, _DOMCreateElement, CONFIG as CONFIG2, New, ClassFactory, Tag, ComponentURI } from "qcobjects"; + +// src/js/org.qcobjects.effects.base.ts +import { Package as Package3, Effect, logger } from "qcobjects"; +var Fade = class extends Effect { + static { + __name(this, "Fade"); + } + duration = 1e3; + static duration; + constructor(o) { + super(o); + this.duration = o?.duration; + } + apply(element, alphaFrom, alphaTo) { + const da = alphaTo - alphaFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger.debug("animation progress: " + progress.toString()); + const alpha = alphaFrom + progress * da / 100; + logger.debug("alpha: " + alpha.toString()); + element.style.opacity = alpha.toString(); + } + }); + } + static apply(element, alphaFrom, alphaTo) { + const da = alphaTo - alphaFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger.debug("animation progress: " + progress.toString()); + const alpha = alphaFrom + progress * da / 100; + logger.debug("alpha: " + alpha.toString()); + element.style.opacity = alpha.toString(); + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var Move = class extends Effect { + static { + __name(this, "Move"); + } + duration = 1e3; + static duration; + static apply(element, xfrom, yfrom, xto, yto) { + const dx = xto - xfrom; + const dy = yto - yfrom; + element.style.transform = "translate(" + xfrom + "px," + yfrom + "px)"; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger.debug("animation progress: " + progress.toString()); + const y = yfrom + progress * dy / 100; + const x = xfrom + progress * dx / 100; + logger.debug("x: " + x.toString() + " y:" + y.toString()); + element.style.transform = "translate(" + x + "px," + y + "px)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +Package3("org.qcobjects.effects.base", [ + Fade, + Move +]); + +// src/js/org.qcobjects.effects.extended.ts +import { Effect as Effect2, logger as logger2, Package as Package4 } from "qcobjects"; +var MoveXInFromRight = class extends Move { + static { + __name(this, "MoveXInFromRight"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, element.width, 0, 0, 0); + } +}; +var MoveXInFromLeft = class extends Move { + static { + __name(this, "MoveXInFromLeft"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, -element.width, 0, 0, 0); + } +}; +var MoveYInFromBottom = class extends Move { + static { + __name(this, "MoveYInFromBottom"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, 0, element.height, 0, 0); + } +}; +var MoveYInFromTop = class extends Move { + static { + __name(this, "MoveYInFromTop"); + } + duration = 1e3; + static apply(element) { + Move.apply.call(this, element, 0, -element.height, 0, 0); + } +}; +var RotateX = class extends Effect2 { + static { + __name(this, "RotateX"); + } + duration = 1e3; + static duration; + static apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + logger2.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(1,0,0," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var RotateY = class extends Effect2 { + static { + __name(this, "RotateY"); + } + duration = 1e3; + static duration; + static apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + logger2.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(0,1,0," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + static animate(arg0) { + throw new Error("Method not implemented."); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var RotateZ = class extends Effect2 { + static { + __name(this, "RotateZ"); + } + duration = 1e3; + apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + logger2.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(0,0,1," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var Rotate = class extends Effect2 { + static { + __name(this, "Rotate"); + } + duration = 1e3; + apply(element, angleFrom, angleTo) { + const da = angleTo - angleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const angle = Math.round(angleFrom + progress * da / 100); + logger2.debug("angle: " + angle.toString()); + element.style.transform = "rotate3d(1,1,1," + angle.toString() + "deg)"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var Radius = class extends Effect2 { + static { + __name(this, "Radius"); + } + duration = 1e3; + apply(element, radiusFrom, radiusTo) { + const dr = radiusTo - radiusFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const radius = radiusFrom + progress * dr / 100; + logger2.debug("radius: " + radius.toString()); + element.style.borderRadius = radius.toString() + "px"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var Resize = class extends Effect2 { + static { + __name(this, "Resize"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + logger2.debug("resize: " + scale.toString()); + element.style.transformOrigin = "center"; + element.style.transform = "scale(" + scale + "," + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var WipeLeft = class extends Effect2 { + static { + __name(this, "WipeLeft"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + logger2.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "right"; + element.style.transform = "scaleX(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var WipeRight = class extends Effect2 { + static { + __name(this, "WipeRight"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + logger2.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "left"; + element.style.transform = "scaleX(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var WipeUp = class extends Effect2 { + static { + __name(this, "WipeUp"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + logger2.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "bottom"; + element.style.transform = "scaleY(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +var WipeDown = class extends Effect2 { + static { + __name(this, "WipeDown"); + } + duration = 1e3; + apply(element, scaleFrom, scaleTo) { + const ds = scaleTo - scaleFrom; + this.animate({ + duration: this.duration, + timing(timeFraction) { + return timeFraction; + }, + draw(progress) { + logger2.debug("animation progress: " + progress.toString()); + const scale = scaleFrom + progress * ds / 100; + logger2.debug("wipe: " + scale.toString()); + element.style.transformOrigin = "top"; + element.style.transform = "scaleY(" + scale + ")"; + } + }); + } + // eslint-disable-next-line no-unused-vars + animate(arg0) { + throw new Error("Method not implemented."); + } +}; +Package4("org.qcobjects.effects.extended", [ + MoveXInFromRight, + MoveXInFromLeft, + MoveYInFromBottom, + MoveYInFromTop, + RotateX, + RotateY, + RotateZ, + Rotate, + Radius, + Resize, + WipeLeft, + WipeRight, + WipeUp, + WipeDown +]); + +// src/js/org.qcobjects.modal.effects.ts +import { Package as Package5 } from "qcobjects"; +var ModalFade = class extends Fade { + static { + __name(this, "ModalFade"); + } + duration = 500; +}; +var ModalMoveUp = class extends Move { + static { + __name(this, "ModalMoveUp"); + } + duration = 800; +}; +var ModalMoveDown = class extends Move { + static { + __name(this, "ModalMoveDown"); + } + duration = 300; +}; +Package5("org.qcobjects.modal.effects", [ + ModalFade, + ModalMoveDown, + ModalMoveUp +]); + +// src/js/org.qcobjects.base.components.ts +import { Package as Package6, Component, logger as logger3 } from "qcobjects"; +var FormField = class extends Component { + static { + __name(this, "FormField"); + } + fieldType; + cached = false; + reload = true; + body; + name; + data; + constructor(o) { + o.name = typeof o.name !== "undefined" ? o.name : "form-field"; + super(o); + } + createBindingEvents() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); + } else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak]; + _obj.addEventListener("change", () => { + logger3.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("blur", () => { + logger3.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("focus", () => { + logger3.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("keydown", () => { + logger3.debug("Executing keydown event binding"); + this.executeBindings(); + }); + } + } + executeBinding(_obj) { + const _datamodel = _obj.getAttribute("data-field"); + logger3.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel] = _obj.value; + } + executeBindings() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); + } else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak]; + const _datamodel = _obj.getAttribute("data-field"); + logger3.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel] = _obj.value; + } + } + done(standardResponse) { + const _ret_ = super.done(standardResponse); + this.executeBindings(); + this.createBindingEvents(); + logger3.debug("Field loaded: " + this.fieldType + "[name=" + this.name + "]"); + return _ret_; + } +}; +Package6("org.qcobjects.base.components", [ + FormField +]); + +// src/js/org.qcobjects.components.ts +var ShadowedComponent = class extends Component2 { + static { + __name(this, "ShadowedComponent"); + } + container = null; + shadowed = true; + cached = false; + controller = null; + view = null; + data = {}; + constructor(o) { + o.body = _DOMCreateElement("div"); + super(o); + } +}; +var ButtonField = class extends FormField { + static { + __name(this, "ButtonField"); + } + constructor(o) { + o.fieldType = "button"; + super(o); + } +}; +var InputField = class extends FormField { + static { + __name(this, "InputField"); + } + constructor(o) { + o.fieldType = "input"; + super(o); + } +}; +var TextField = class extends FormField { + static { + __name(this, "TextField"); + } + constructor(o) { + o.fieldType = "textarea"; + super(o); + } +}; +var EmailField = class extends FormField { + static { + __name(this, "EmailField"); + } + constructor(o) { + o.fieldType = "input"; + super(o); + } +}; +var ModalEnclosureComponent = class extends Component2 { + static { + __name(this, "ModalEnclosureComponent"); + } + name = "modalenclosure"; + tplsource = "inline"; + cached = false; + basePath = CONFIG2.get("modalBasePath", CONFIG2.get("remoteSDKPath", "")); + template = ` + + + +`; + data = {}; + constructor(o) { + o.body = _DOMCreateElement("div"); + super(o); + } +}; +var ModalComponent = class extends Component2 { + static { + __name(this, "ModalComponent"); + } + name = "modal"; + cached = false; + modalEnclosureComponentClass = "ModalEnclosureComponent"; + controller = null; + view = null; + tplsource = "none"; + closeOnClickOutside = false; + data = { + content: "", + modalId: 0 + }; + submodal = null; + __instanceID; + basePath; + subcomponents; + body; + templateURI; + constructor(o) { + o.basePath = CONFIG2.get("modalBasePath", CONFIG2.get("remoteSDKPath", "")); + super(o); + this.data.modalId = this.__instanceID; + const submodal = New(ClassFactory(this.modalEnclosureComponentClass), { + name: this.name, + basePath: this.basePath, + data: this.data + }); + this.subcomponents.push(submodal); + this.submodal = submodal; + if (submodal.tplsource === "none") { + this.body.innerHTML = submodal.parsedAssignmentText; + } else { + this.body.append(submodal.body); + } + } + modal() { + const modalId = this.data.modalId; + Tag("#modalInstance_" + modalId + ".modal").map((modal) => { + modal.style.display = "block"; + return new ModalFade().apply(modal, 0, 1); + }); + Tag("#modalInstance_" + modalId + ".modal .modal-content").map((modalcontent) => { + return ModalMoveDown.apply(modalcontent, 0, -document.body.clientHeight, 0, 0); + }); + Tag("#modalInstance_" + modalId + ".modal .modal-content .close").map((closebtn) => { + return closebtn.addEventListener("click", () => { + this.close(); + }, false); + }); + if (this.closeOnClickOutside) { + window.addEventListener("click", () => { + this.close(); + }, false); + } + } + close() { + const modalId = this.data.modalId; + Tag("#modalInstance_" + modalId + ".modal").map((modal) => { + modal.style.display = "block"; + return new ModalFade({ duration: 3e3 }).apply(modal, 1, 0); + }); + Tag("#modalInstance_" + modalId + ".modal .modal-content").map(function(modalcontent) { + return ModalMoveUp.apply(modalcontent, 0, 0, 0, -document.body.clientHeight); + }); + setTimeout(function() { + Tag("#modalInstance_" + modalId + ".modal").map((modal) => { + modal.style.display = "none"; + return true; + }); + }, 900); + } + rebuild() { + const _ret_ = super.rebuild(); + this.templateURI = ComponentURI({ + "COMPONENTS_BASE_PATH": CONFIG2.get("componentsBasePath", ""), + "COMPONENT_NAME": "modal", + "TPLEXTENSION": CONFIG2.get("tplextension", ""), + "TPL_SOURCE": "default" + // here is always default in order to get the right uri + }); + return _ret_; + } +}; +var SwaggerUIComponent = class extends Component2 { + static { + __name(this, "SwaggerUIComponent"); + } + cached = false; + basePath = CONFIG2.get("remoteSDKPath", ""); + tplextension = "tpl.html"; + name = "swagger-ui"; +}; +Package7("org.qcobjects.form.components", [ + ShadowedComponent, + ButtonField, + InputField, + TextField, + EmailField, + ModalEnclosureComponent, + ModalComponent, + SwaggerUIComponent +]); + +// src/js/org.qcobjects.components.grid.ts +import { Package as Package8, Component as Component3 } from "qcobjects"; +var GridItemComponent = class extends Component3 { + static { + __name(this, "GridItemComponent"); + } + name = "grid-item"; + shadowed = true; + tplsource = "inline"; + template = ` + +

                  {{description}}

                  +`; + cached = false; +}; +var GridComponent = class extends Component3 { + static { + __name(this, "GridComponent"); + } + name = "grid"; + cached = false; + view = null; + shadowed = true; + rows = 3; + cols = 3; + templateURI = ""; + data = {}; + tplsource = "inline"; + template = "

                  Loading...

                  "; + body; + constructor(o) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = this.body.getAttribute("subcomponentClass") !== null ? this.body.getAttribute("subcomponentClass") : "GridItemComponent"; + this.body.setAttribute("subcomponentClass", subcomponentClass); + } +}; +Package8("org.qcobjects.components.grid", [ + GridComponent, + GridItemComponent +]); + +// src/js/org.qcobjects.components.list.ts +import { Component as Component4, Package as Package9 } from "qcobjects"; +var ListItemComponent = class extends Component4 { + static { + __name(this, "ListItemComponent"); + } + shadowed = false; + tplsource = "inline"; + template = '{{label}}'; + cached = false; + constructor(o) { + o.name = "list-item"; + super(o); + } +}; +var ListComponent = class extends Component4 { + static { + __name(this, "ListComponent"); + } + data; + shadowed = true; + tplsource = "inline"; + template = "

                  Loading...

                  "; + body; + shadowRoot; + rows; + subcomponents; + done; + serviceData; + constructor(o) { + o.name = "list"; + super(o); + this.body.setAttribute("controllerClass", "ListController"); + this.body.setAttribute("subcomponentClass", "ListItemComponent"); + } +}; +Package9("org.qcobjects.components.list", [ + ListItemComponent, + ListComponent +]); + +// src/js/org.qcobjects.components.slider.ts +import { Package as Package10, Component as Component5 } from "qcobjects"; +var SlideListComponent = class extends Component5 { + static { + __name(this, "SlideListComponent"); + } + tplsource = "inline"; + template = "

                  Loading...

                  "; + name = "slidelist"; + body; + constructor(o) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = this.body.getAttribute("subcomponentClass") !== null ? this.body.getAttribute("subcomponentClass") : "GridItemComponent"; + this.body.setAttribute("subcomponentClass", subcomponentClass); + } +}; +var SlideItemComponent = class extends Component5 { + static { + __name(this, "SlideItemComponent"); + } + effectClass = "Fade"; + name = "slider_item"; + data; + template; + tplsource; + constructor(o) { + super(o); + this.data.slideNumber = this.data.__dataIndex + 1; + this.template = ` + + `; + this.tplsource = "inline"; + } +}; +var SliderComponent = class extends Component5 { + static { + __name(this, "SliderComponent"); + } + name = "slider"; + template; + tplsource; + shadowed; + data; + body; + __instanceID; + constructor(o) { + super(o); + this.template = ` + + +
                  + + + + +
                  +
                  + +
                  +
                  + + `; + this.tplsource = "inline"; + this.shadowed = true; + this.data.SERVICE_CLASS = this.body.getAttribute("serviceClass"); + this.data.sliderHandler = "slider_" + this.__instanceID.toString(); + this.body.setAttribute("controllerClass", "SliderController"); + } +}; +Package10("org.qcobjects.components.slider", [ + SlideListComponent, + SlideItemComponent, + SliderComponent +]); + +// src/js/org.qcobjects.components.notifications.ts +import { Package as Package11, Component as Component6, _DOMCreateElement as _DOMCreateElement2, New as New2, _super_ } from "qcobjects"; +var NotificationComponent = class _NotificationComponent extends Component6 { + static { + __name(this, "NotificationComponent"); + } + cached = false; + tplsource = "inline"; + shadowed = false; + kinds; + template; + constructor(o) { + o.name = "notification"; + o.body = _DOMCreateElement2("div"); + super(o); + this.template = ` + +
                  +
                  +

                  {{title}} {{message}}

                  +
                  +
                  + `; + this.kinds = ["danger", "success", "info", "warning"]; + } + display(element) { + const _display_ = /* @__PURE__ */ __name(function(element2) { + element2.style.display = "block"; + const appearEffect = New2(Move, { + duration: 900, + apply(element3) { + _super_("Fade", "apply").call(this, element3, 0, 1); + _super_("Move", "apply").call(this, element3, 0, -document.body.clientHeight, 0, 0); + } + }); + const disappearEffect = New2(Move, { + duration: 650, + apply(element3) { + _super_("Fade", "apply").call(this, element3, 1, 0); + _super_("Move", "apply").call(this, element3, 0, 0, 0, -document.body.clientHeight); + } + }); + appearEffect.apply(element2); + setTimeout(function() { + disappearEffect.apply(element2); + }, 2e3); + }, "_display_"); + element.subelements("div.notification_background").map((element2) => { + return new Fade({ duration: 500 }).apply(element2, 0, 1); + }); + element.subelements("div.notification").map((element2) => _display_(element2)); + setTimeout(function() { + element.remove(); + }, 2200); + } + static success(message) { + const c = New2(_NotificationComponent, { + name: "notification", + shadowed: true, + body: _DOMCreateElement2("div"), + data: { + kind: "success", + title: "Success!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + static danger(message) { + const c = New2(_NotificationComponent, { + name: "notification", + shadowed: true, + body: _DOMCreateElement2("div"), + data: { + kind: "danger", + title: "Danger!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + static info(message) { + const c = New2(_NotificationComponent, { + name: "notification", + shadowed: true, + body: _DOMCreateElement2("div"), + data: { + kind: "info", + title: "Info!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } + static warning(message) { + const c = New2(_NotificationComponent, { + name: "notification", + shadowed: true, + body: _DOMCreateElement2("div"), + data: { + kind: "warning", + title: "Warning!", + message: `${message}...` + } + }); + document.body.append(c); + const _componentRoot = c.shadowed ? c.shadowRoot.host : c.body; + c.display(_componentRoot); + } +}; +Package11("org.quickcorp.components.notifications", [ + NotificationComponent +]); + +// src/js/org.qcobjects.components.splashscreen.ts +import { Package as Package12, Component as Component7, CONFIG as CONFIG3, logger as logger4, global as global3 } from "qcobjects"; +var SplashScreenComponent = class extends Component7 { + static { + __name(this, "SplashScreenComponent"); + } + _enabled_; + _bgcolor; + cached = false; + shadowed = true; + body; + shadowRoot; + constructor(component) { + component.name = typeof component.name === "undefined" ? "splashscreen" : component.name; + const isBrowser = typeof window !== "undefined" && typeof window.self !== "undefined" && window === window.self; + const isStartURL = location.hash === "" && location.pathname === "/" && location.search === "" || CONFIG3.get("routingWay", "pathname") === "hash" && CONFIG3.get("start_url", "/") === location.hash || CONFIG3.get("routingWay", "pathname") === "pathname" && CONFIG3.get("start_url", "/") === location.pathname || CONFIG3.get("routingWay", "pathname") === "search" && CONFIG3.get("start_url", "/") === location.search; + const _enabled_ = isBrowser && isStartURL; + if (_enabled_) { + component.basePath = CONFIG3.get("splashscreenBasePath", CONFIG3.get("remoteSDKPath", "")); + if (typeof component.data === "undefined") { + component.data = {}; + } + component.data.basePath = component.basePath; + } else { + if (typeof component !== "undefined" && typeof component.body !== "undefined") { + component.body.style.display = "none"; + } + } + super(component); + this._bgcolor = ""; + this._enabled_ = _enabled_; + if (this._enabled_) { + const displayEffectDuration = 1e3; + let duration = this.body.getAttribute("duration"); + if (duration === null) { + duration = displayEffectDuration; + } else { + duration = parseInt(duration.toString()); + } + this._bgcolor = this.body.style.backgroundColor; + const _helper_ = /* @__PURE__ */ __name(() => { + setTimeout(() => { + if (!_helper_.executed) { + const _componentRoot = this.shadowed ? this.shadowRoot?.host : this.body; + if (typeof global3.componentsStack !== "undefined") { + global3.componentsStack.filter((c) => c.body.hasAttribute("splashscreen")).map( + (mainComponent) => { + logger4.debug(`Splash Screen of Main Component: ${mainComponent.name}`); + mainComponent.splashScreenComponent = this; + const SplashScreenHandler = /* @__PURE__ */ __name(() => { + if (!SplashScreenHandler.executed) { + const component2 = mainComponent.splashScreenComponent; + const mainElement = mainComponent.shadowed ? mainComponent.shadowRoot?.host : mainComponent.body; + mainComponent._mainPosition = mainElement.style.position; + if (typeof mainElement !== "undefined") { + mainElement.style.position = "fixed"; + } + mainComponent._mainOpacity = mainElement.style.opacity; + _componentRoot.style.width = "100%"; + _componentRoot.style.height = "100%"; + document.body.style.backgroundColor = "#111111"; + mainElement.style.opacity = "0"; + setTimeout(function() { + if (typeof _componentRoot !== "undefined") { + document.body.style.backgroundColor = component2?._bgcolor; + _componentRoot.subelements("#slot-logo").map((slotlogo) => { + slotlogo.style.display = "block"; + slotlogo.style.transformOrigin = "center"; + return new Resize().apply(slotlogo, 1, 0); + }); + new Fade().apply(_componentRoot, 1, 0); + } + }, duration - displayEffectDuration); + setTimeout(function() { + new Fade().apply(mainElement, 0, 1); + mainElement.style.position = mainComponent._mainPosition; + document.body.style.backgroundColor = component2._bgcolor; + if (_componentRoot.parentElement !== null) { + _componentRoot.parentElement.remove(); + } + }, duration); + } + SplashScreenHandler.executed = true; + }, "SplashScreenHandler"); + return mainComponent.addComponentHelper(SplashScreenHandler.bind(mainComponent)); + } + ); + } + _helper_.executed = true; + } + }); + }, "_helper_"); + _helper_.executed = false; + this.addComponentHelper(_helper_.bind(component)); + } + } + // eslint-disable-next-line no-unused-vars + addComponentHelper(arg0) { + throw new Error("Method not implemented."); + } +}; +Package12("org.qcobjects.components.base", [ + SplashScreenComponent +]); +var VideoSplashScreenComponent = class extends SplashScreenComponent { + static { + __name(this, "VideoSplashScreenComponent"); + } + cached = false; + shadowed = true; + tplsource = "inline"; + template = ` + +
                  +
                  + + +
                  +
                  + + `; + constructor(o) { + o.name = "videosplashscreen"; + super(o); + } +}; +var CubeSplashScreenComponent = class extends SplashScreenComponent { + static { + __name(this, "CubeSplashScreenComponent"); + } + cached = false; + shadowed = true; + tplsource = "inline"; + template = ` + + +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  + + `; + constructor(o) { + o.name = "cubesplashscreen"; + super(o); + } +}; +Package12("org.qcobjects.components.splashscreen", [ + SplashScreenComponent, + VideoSplashScreenComponent, + CubeSplashScreenComponent +]); + +// src/js/org.qcobjects.controllers.ts +import { Controller, Package as Package13 } from "qcobjects"; +var GenericController = class extends Controller { + static { + __name(this, "GenericController"); + } +}; +Package13("org.qcobjects.controllers", [ + GenericController +]); + +// src/js/org.qcobjects.controllers.list.ts +import { Package as Package14, Controller as Controller2, logger as logger5, CONFIG as CONFIG4, _DataStringify, _DOMCreateElement as _DOMCreateElement3, New as New3, ClassFactory as ClassFactory2, ComponentURI as ComponentURI2, serviceLoader } from "qcobjects"; +var ListController = class extends Controller2 { + static { + __name(this, "ListController"); + } + __instanceID; + component; + valueField; + labelField; + rows; + cols; + _componentRoot; + constructor({ component, dependencies = [], valueField = void 0, labelField = void 0 }) { + super({ component, dependencies, valueField, labelField }); + this.component = component; + this._componentRoot = this.component.shadowed ? this.component.shadowRoot : this.component.body; + this.labelField = this.component.body.getAttribute("label-field"); + this.valueField = this.component.body.getAttribute("value-field"); + this.rows = this.component.body.getAttribute("rows"); + this.rows = this.rows !== null ? this.rows : this.component.rows; + this.cols = 1; + logger5.debug("ListController INIT"); + } + getPageIndex(page, totalPage, totalElements) { + page = page > 0 ? page - 1 : 0; + return [totalElements * page / totalPage, totalElements * page / totalPage + totalElements / totalPage]; + } + addSubcomponents() { + this.component.subcomponents = []; + const layout = this.component.body.getAttribute("layout"); + const basePath = CONFIG4.get("listBasePath", CONFIG4.get("remoteSDKPath", "")); + let cssLayout = ""; + this.labelField = this.component.body.getAttribute("label-field"); + this.valueField = this.component.body.getAttribute("value-field"); + if (layout === "horizontal") { + cssLayout = `@import url("${basePath}css/components/horizontal-list.css");`; + } else { + cssLayout = `@import url("${basePath}css/components/list.css");`; + } + if (typeof this._componentRoot !== "undefined") { + this._componentRoot.innerHTML = `
                    `; + } + logger5.debug(_DataStringify(this.component.data)); + try { + const subcomponentClass = this.component.body.getAttribute("subcomponentClass"); + if (subcomponentClass != null) { + let offset; + let limit; + let pagesNumber; + let list = [...this.component.data]; + let paginateIn = this.component.body.getAttribute("paginate-in"); + paginateIn = paginateIn !== null ? paginateIn : "client"; + let page; + if (paginateIn === "client") { + page = this.component.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + if (page !== -1) { + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, list.length)[0]; + limit = this.getPageIndex(page, pagesNumber, list.length)[1]; + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list = list.slice(offset, limit); + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list.map( + (record, dataIndex) => { + const _ret_ = void 0; + try { + const _body = _DOMCreateElement3("li"); + record.label = record[this.labelField]; + record.value = record[this.valueField]; + const subcomponent = New3(ClassFactory2(subcomponentClass), { + name: "list-item", + data: { + label: record[this.labelField], + value: record[this.valueField], + __dataIndex: dataIndex, + __page: page, + __totalPages: pagesNumber, + __limit: limit, + __offset: offset + }, + templateURI: ComponentURI2({ + "COMPONENTS_BASE_PATH": CONFIG4.get("componentsBasePath", ""), + "COMPONENT_NAME": ClassFactory2(subcomponentClass).name, + "TPLEXTENSION": CONFIG4.get("tplextension", ""), + "TPL_SOURCE": ClassFactory2(subcomponentClass).tplsource + }), + body: _body, + template: ClassFactory2(subcomponentClass).template + }); + subcomponent.done = this.component.done.bind(subcomponent); + try { + if (subcomponent) { + subcomponent.data.__dataIndex = dataIndex; + if (Object.hasOwnProperty.call(this.component.data, "length")) { + subcomponent.data.__dataLength = this.component.data.length; + } + logger5.debug("adding subcomponent to body"); + this._componentRoot.subelements("ul").map((ul) => ul.append(subcomponent)); + try { + this.component.subcomponents.push(subcomponent); + } catch (e) { + logger5.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } else { + logger5.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); + } + } catch (e) { + logger5.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } catch (e) { + logger5.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + return _ret_; + } + ); + } else { + logger5.debug("NO SUBCOMPONENT CLASS IN COMPONENT"); + } + } catch (e) { + logger5.debug(`No data for component: ${e}`); + } + } + cssGrid() { + const component = this.component; + const _componentRoot = component.shadowed ? component.shadowRoot : component.body; + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = _DOMCreateElement3("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; grid-template-rows: ${templateRows}; grid-template-columns: ${templateCols}; margin:0 auto; }`; + _componentRoot.append(s); + _componentRoot.classList.add(className); + } + } + done() { + this.cssGrid(); + const componentInstance = this.component; + logger5.debug("ListController DONE"); + const serviceClass = this.component.body.getAttribute("serviceClass"); + if (serviceClass != null) { + let offset; + let limit; + let paginateIn = componentInstance.body.getAttribute("paginate-in"); + paginateIn = paginateIn !== null ? paginateIn : "client"; + if (paginateIn === "server") { + let page = componentInstance.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + let pagesNumber; + if (page !== -1) { + const serverDataCount = this.component.body.getAttribute("server-data-count") !== null ? this.component.body.getAttribute("server-data-count") : 1; + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0]; + limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1]; + componentInstance.serviceData = typeof componentInstance.serviceData !== "undefined" ? componentInstance.serviceData : {}; + componentInstance.serviceData.params = typeof componentInstance.serviceData.params !== "undefined" ? componentInstance.serviceData.params : {}; + componentInstance.serviceData.params.offset = offset; + componentInstance.serviceData.params.limit = limit; + } + } + serviceLoader(New3(ClassFactory2(serviceClass), { + data: componentInstance.serviceData + }), false).then( + (successfulResponse) => { + logger5.debug("DONE SERVICE COMPONENT"); + successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template); + if (typeof successfulResponse.service.JSONresponse.result !== "undefined") { + logger5.debug(_DataStringify(successfulResponse.service.JSONresponse.result)); + componentInstance.data = successfulResponse.service.JSONresponse.result; + } else { + componentInstance.data = successfulResponse.service.JSONresponse; + } + this.addSubcomponents(); + }, + (failedResponse) => { + logger5.debug(failedResponse); + } + ).catch((e) => { + logger5.debug("Something went wrong when calling the service from: " + serviceClass); + logger5.debug(e.message); + }); + } + } +}; +Package14("org.qcobjects.controllers.list", [ + ListController +]); + +// src/js/org.qcobjects.controllers.grid.ts +import { Package as Package15, Controller as Controller3, _DOMCreateElement as _DOMCreateElement4, logger as logger6, _DataStringify as _DataStringify2, ClassFactory as ClassFactory3, New as New4, ComponentURI as ComponentURI3, CONFIG as CONFIG5, serviceLoader as serviceLoader2 } from "qcobjects"; +var GridController = class extends Controller3 { + static { + __name(this, "GridController"); + } + __instanceID; + rows; + cols; + component; + constructor(controller) { + super(controller); + this.rows = this.component.body.getAttribute("rows"); + this.rows = this.rows !== null ? this.rows : this.component.rows; + this.cols = this.component.body.getAttribute("cols"); + this.cols = this.cols !== null ? this.cols : this.component.cols; + } + cssGrid() { + const component = this.component; + const _componentRoot = component.shadowed ? component.shadowRoot : component.body; + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = _DOMCreateElement4("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; grid-template-rows: ${templateRows}; grid-template-columns: ${templateCols}; margin:0 auto; }`; + _componentRoot?.append(s); + if (component.shadowed) { + _componentRoot?.host.classList.add(className); + } else { + _componentRoot.classList.add(className); + } + } + } + done() { + this.cssGrid(); + logger6.debug("GridComponent built"); + } +}; +var DataGridController = class extends Controller3 { + static { + __name(this, "DataGridController"); + } + __instanceID; + rows; + cols; + _componentRoot; + component; + constructor(controller) { + super(controller); + this._componentRoot = controller.component.shadowed ? controller.component.shadowRoot : controller.component.body; + this.rows = controller.component.body.getAttribute("rows"); + this.rows = controller.rows !== null ? controller.rows : controller.component.rows; + this.cols = controller.component.body.getAttribute("cols"); + this.cols = controller.cols !== null ? controller.cols : controller.component.cols; + logger6.debug("DataGridController INIT"); + } + getPageIndex(page, totalPage, totalElements) { + page = page > 0 ? page - 1 : 0; + return [totalElements * page / totalPage, totalElements * page / totalPage + totalElements / totalPage]; + } + addSubcomponents() { + this.component.subcomponents = []; + if (typeof this._componentRoot !== "undefined") { + this._componentRoot.innerHTML = ""; + } + this.cssGrid(); + logger6.debug(_DataStringify2(this.component.data)); + try { + const subcomponentClass = this.component.body.getAttribute("subcomponentClass"); + if (subcomponentClass != null) { + let offset; + let limit; + let pagesNumber; + let list = [...this.component.data]; + let paginateIn = this.component.body.getAttribute("paginate-in"); + let page; + paginateIn = paginateIn !== null ? paginateIn : "client"; + if (paginateIn === "client") { + page = this.component.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + if (page !== -1) { + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, list.length)[0]; + limit = this.getPageIndex(page, pagesNumber, list.length)[1]; + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list = list.slice(offset, limit); + } else { + offset = 0; + limit = list.length; + pagesNumber = 1; + } + list.map( + (record, dataIndex, list2) => { + const _ret_ = void 0; + try { + const _body = _DOMCreateElement4("component"); + _body.setAttribute("name", ClassFactory3(subcomponentClass).name); + _body.setAttribute("shadowed", ClassFactory3(subcomponentClass).shadowed); + _body.setAttribute("cached", ClassFactory3(subcomponentClass).cached); + record = Object.assign(record, { + __dataIndex: dataIndex, + __dataLength: list2.length, + __page: page, + __totalPages: pagesNumber, + __limit: limit, + __offset: offset + }); + const subcomponent = New4(ClassFactory3(subcomponentClass), { + name: "item", + data: record, + templateURI: ComponentURI3({ + "COMPONENTS_BASE_PATH": CONFIG5.get("componentsBasePath", ""), + "COMPONENT_NAME": ClassFactory3(subcomponentClass).name, + "TPLEXTENSION": CONFIG5.get("tplextension", ""), + "TPL_SOURCE": ClassFactory3(subcomponentClass).tplsource + }), + body: _body, + template: ClassFactory3(subcomponentClass).template + }); + subcomponent.done = this.component.done.bind(subcomponent); + try { + if (subcomponent) { + subcomponent.data.__dataIndex = dataIndex; + if (Object.hasOwnProperty.call(this.component.data, "length")) { + subcomponent.data.__dataLength = this.component.data.length; + } + logger6.debug("adding subcomponent to body"); + this._componentRoot?.append(subcomponent.body); + try { + this.component.subcomponents.push(subcomponent); + } catch (e) { + logger6.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } else { + logger6.debug("ERROR LOADING SUBCOMPONENT IN DATAGRID"); + } + } catch (e) { + logger6.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + } catch (e) { + logger6.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`); + } + return _ret_; + } + ); + } else { + logger6.debug("NO SUBCOMPONENT CLASS IN COMPONENT"); + } + } catch (e) { + logger6.debug(`No data for component: ${e}`); + } + } + cssGrid() { + const component = this.component; + const _componentRoot = component.shadowed ? component.shadowRoot : component.body; + if (typeof this.rows !== "undefined" && typeof this.cols !== "undefined") { + const s = _DOMCreateElement4("style"); + const templateRows = "auto ".repeat(this.rows); + const templateCols = "auto ".repeat(this.cols); + const className = "grid" + this.__instanceID.toString(); + s.innerHTML = `.${className}{ + display: grid; grid-template-rows: ${templateRows}; grid-template-columns: ${templateCols}; margin:0 auto; }`; + if (component.shadowed) { + component.body.append(s); + _componentRoot.host.classList.add(className); + } else { + _componentRoot?.append(s); + _componentRoot.classList.add(className); + } + } + } + done() { + const componentInstance = this.component; + logger6.debug("DataGridController DONE"); + const serviceClass = this.component.body.getAttribute("serviceClass"); + if (serviceClass != null) { + let offset; + let limit; + let paginateIn = componentInstance.body.getAttribute("paginate-in"); + paginateIn = paginateIn !== null ? paginateIn : "client"; + if (paginateIn === "server") { + let page = componentInstance.body.getAttribute("page-number"); + page = isNaN(page) || page === null ? -1 : page; + let pagesNumber; + if (page !== -1) { + const serverDataCount = this.component.body.getAttribute("server-data-count") !== null ? this.component.body.getAttribute("server-data-count") : 1; + pagesNumber = this.component.body.getAttribute("total-pages"); + pagesNumber = isNaN(pagesNumber) ? 1 : pagesNumber; + offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0]; + limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1]; + componentInstance.serviceData = typeof componentInstance.serviceData !== "undefined" ? componentInstance.serviceData : {}; + componentInstance.serviceData.params = typeof componentInstance.serviceData.params !== "undefined" ? componentInstance.serviceData.params : {}; + componentInstance.serviceData.params.offset = offset; + componentInstance.serviceData.params.limit = limit; + } + } + serviceLoader2(New4(ClassFactory3(serviceClass), { + data: componentInstance.serviceData + }), false).then( + (successfulResponse) => { + logger6.debug("DONE SERVICE COMPONENT"); + successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template); + if (typeof successfulResponse.service.JSONresponse.result !== "undefined") { + logger6.debug(_DataStringify2(successfulResponse.service.JSONresponse.result)); + componentInstance.data = successfulResponse.service.JSONresponse.result; + } else { + componentInstance.data = successfulResponse.service.JSONresponse; + } + this.addSubcomponents(); + }, + (failedResponse) => { + logger6.debug(failedResponse); + } + ).catch((e) => { + logger6.debug("Something went wrong when calling the service from: " + serviceClass); + logger6.debug(e.message); + }); + } + } +}; +Package15("org.qcobjects.controllers.grid", [ + GridController, + DataGridController +]); + +// src/js/org.qcobjects.controllers.slider.ts +import { ClassFactory as ClassFactory4, Controller as Controller4, New as New5, Package as Package16, logger as logger7 } from "qcobjects"; +var SliderController = class extends Controller4 { + static { + __name(this, "SliderController"); + } + slideIndex = 0; + duration = 7100; + interval = null; + sliderHandlerName = ""; + _componentRoot; + component; + constructor({ component, dependencies = [], duration = 7100, slideIndex = 0, interval = null, sliderHandlerName = null }) { + super({ component, dependencies, duration, slideIndex, interval, sliderHandlerName }); + this.component = component; + this._componentRoot = component.shadowed ? component.shadowRoot : component.body; + this.sliderHandlerName = "slider_" + this.component.__instanceID.toString(); + global.set(this.sliderHandlerName, this); + } + stop() { + if (this.interval != null) { + clearInterval(this.interval); + } + } + plusSlidesAndStop(n) { + this.stop(); + this.plusSlides(n); + } + plusSlides(n) { + this.showSlides(this.slideIndex += n); + } + currentSlide(n) { + this.stop(); + this.showSlides(this.slideIndex = n); + } + automate() { + this.interval = setInterval(() => { + this.plusSlides(1); + }, this.duration); + } + showSlides(n) { + const slides = this._componentRoot?.subelements(".qcoSlides"); + const dots = this._componentRoot?.subelements(".qcoSlider__dots--dot"); + if (n > slides.length - 1) { + this.slideIndex = 0; + } + if (n < 0) { + this.slideIndex = 0; + } + slides.filter((slide, index) => { + return index !== this.slideIndex; + }).map((slide) => { + return New5(ClassFactory4("Fade"), {}).apply(slide, 1, 0); + }); + dots.filter((dot, index) => { + return index !== this.slideIndex; + }).map((dot) => { + return dot.classList.remove("active"); + }); + try { + dots[this.slideIndex].classList.add("active"); + } catch (e) { + logger7.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${e.message}`); + } + setTimeout(() => { + slides.filter((slide, index) => { + return index !== this.slideIndex; + }).map((slide) => { + slide.style.display = "none"; + return slide.style.display; + }); + try { + slides[this.slideIndex].style.display = "block"; + New5(ClassFactory4("Fade"), {}).apply(slides[this.slideIndex], 0, 1); + } catch (e) { + logger7.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${e.message}`); + } + }, 700); + } + fillDots() { + const slides = this._componentRoot?.subelements(".qcoSlides"); + slides.map((slide, index) => { + const dotHTML = document.createElement("span"); + const dotContent = ``; + dotHTML.innerHTML = dotContent; + return this._componentRoot?.subelements(".qcoSlider__dots")[0].append(dotHTML); + }); + } + done() { + const slides = this._componentRoot?.subelements(".qcoSlides"); + slides.filter((slide, index) => { + return index !== this.slideIndex; + }).map((slide) => { + slide.style.display = "none"; + return slide.style.display; + }); + setTimeout(() => { + this.fillDots(); + this.slideIndex = 0; + this.showSlides(this.slideIndex); + this.automate(); + }, 3e3); + } +}; +Package16("org.qcobjects.controllers.slider", [ + SliderController +]); + +// src/js/org.qcobjects.controllers.form.ts +import { Package as Package17, Controller as Controller5, serviceLoader as serviceLoader3, New as New6, ClassFactory as ClassFactory5, logger as logger8, _DOMCreateElement as _DOMCreateElement5, Tag as Tag2 } from "qcobjects"; +var FormValidations = class extends Controller5 { + static { + __name(this, "FormValidations"); + } + getDefault() { + return function(fieldName, dataValue, element) { + const _regex = { + name: "^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$", + email: "^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$" + }; + const _pattern_ = element.getAttribute("pattern") || _regex[fieldName]; + const pattern = new RegExp(_pattern_); + return pattern.test(dataValue); + }; + } +}; +var FormController = class extends Controller5 { + static { + __name(this, "FormController"); + } + validations = []; + formValidatorModal; + serviceClass = ""; + formSettings = { + backRouting: "#", + loadingRouting: "#loading", + nextRouting: "#signupsuccessful" + }; + component; + hasValidation(element) { + const fieldName = element.getAttribute("data-field"); + let _hasValidation = false; + if (typeof this.validations !== "undefined" && Object.hasOwnProperty.call(this.validations, fieldName)) { + _hasValidation = true; + } + return _hasValidation; + } + isInvalid(element) { + let _isInvalid = false; + const fieldName = element.getAttribute("data-field"); + const dataValue = this.component.data[fieldName]; + const _execValidation = /* @__PURE__ */ __name((fieldName2, dataValue2, element2) => { + return typeof this.validations !== "undefined" && Object.hasOwnProperty.call(this.validations, fieldName2) && this.validations[fieldName2].call(null, fieldName2, dataValue2, element2); + }, "_execValidation"); + if (typeof this.validations !== "undefined" && !_execValidation(fieldName, dataValue, element)) { + _isInvalid = true; + } + return _isInvalid; + } + isValid(element) { + return !this.isInvalid(element); + } + save() { + if (this.serviceClass !== "") { + location.href = this.formSettings.loadingRouting; + serviceLoader3(New6(ClassFactory5(this.serviceClass), { + data: this.component.data + }), false).then( + () => { + console.log("DONE SERVICE COMPONENT"); + location.href = this.formSettings.nextRouting; + }, + (failedResponse) => { + logger8.debug(failedResponse); + location.href = this.formSettings.backRouting; + } + ); + } else { + logger8.debug("No service name declared on serviceClass property"); + } + } + formSaveTouchHandler() { + logger8.debug("Saving data..."); + const _componentRoot_ = this.component.shadowed ? (this.component?.shadowRoot).host : this.component.body; + this.component.executeBindings(); + if (this.formValidatorModal != null) { + const componentElementFields = _componentRoot_.subelements("*[data-field]"); + const fieldsToValidate = componentElementFields.filter( + (f) => this.hasValidation(f) + ); + const _labelledby = /* @__PURE__ */ __name(function(parentElement, element) { + const _arialabelledby = /* @__PURE__ */ __name((parentElement2, element2) => { + return element2.getAttribute("aria-labelledby") !== null ? (element2.getAttribute("aria-labelledby") || "").split(" ").map( + (e) => parentElement2.subelements(`#${e}`).map((_e) => _e.innerHTML) + ).join(" ") : null; + }, "_arialabelledby"); + return _arialabelledby(parentElement, element) || element.getAttribute("aria-label") || element.getAttribute("placeholder") || element.getAttribute("name") || element.getAttribute("data-field"); + }, "_labelledby"); + const _ariatitle = /* @__PURE__ */ __name(function(element) { + return element.getAttribute("title") || element.getAttribute("aria-title") || ""; + }, "_ariatitle"); + const invalidFields = fieldsToValidate.filter((f) => this.isInvalid(f)); + if (invalidFields.length > 0) { + const validationMessage = ` +
                    + Please verify the following incorrect fields: +
                      +
                      + ${invalidFields.map((element) => "
                    • " + _labelledby(_componentRoot_, element) + "
                      " + _ariatitle(element) + "
                    • ").join("")} +
                      +
                    +
                    +`; + this.formValidatorModal.body.subelements(".validationMessage")[0].innerHTML = validationMessage; + this.formValidatorModal.modal(); + } else { + this.save(); + } + } else { + logger8.debug("Unable to find the modal validator..."); + logger8.debug("Saving data..."); + this.save(); + } + } + constructor(o) { + super(o); + this.component = o.component; + this.component = this.component.Cast(FormField); + } + done() { + logger8.debugEnabled = true; + try { + this.component.createBindingEvents(); + const modalBody = _DOMCreateElement5("div"); + modalBody.className = "modal_body"; + this.formValidatorModal = New6(ModalComponent, { + body: modalBody, + subcomponents: [], + data: { + content: '
                    ' + } + }); + Tag2(".modal_body").map((e) => document.body.removeChild(e)); + document.body.append(this.formValidatorModal.body); + } catch (e) { + logger8.debug(`Unable to create the modal: ${e}`); + } + this.onpress(".submit", () => { + this.formSaveTouchHandler(); + }); + } + // eslint-disable-next-line no-unused-vars + onpress(arg0, arg1) { + throw new Error("Method not implemented."); + } +}; +Package17("org.qcobjects.controllers.form", [ + FormController, + FormValidations +]); + +// src/js/org.qcobjects.controllers.swagger.ts +import { CONFIG as CONFIG6, Controller as Controller6, New as New7, Package as Package18, SourceCSS, SourceJS } from "qcobjects"; +var SwaggerUIController = class extends Controller6 { + static { + __name(this, "SwaggerUIController"); + } + component; + dependencies; + startSwaggerUI() { + if (typeof SwaggerUIBundle !== "undefined") { + const ui = SwaggerUIBundle({ + url: CONFIG6.get("swagger-ui-url", "https://petstore.swagger.io/v2/swagger.json"), + dom_id: "#" + CONFIG6.get("swagger-ui-dom_id", "swagger-ui"), + deepLinking: true, + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + }); + window.ui = ui; + } + } + done() { + this.component.body.innerHTML = '
                    '; + const swaggerUIPackagePath = CONFIG6.get("swagger-ui-package-path", "node_modules/swagger-ui-dist/"); + this.dependencies?.push(New7(SourceJS, { + url: swaggerUIPackagePath + "swagger-ui-standalone-preset.js", + external: CONFIG6.get("swagger-ui-external", false) + })); + this.dependencies?.push(New7(SourceCSS, { + url: swaggerUIPackagePath + "swagger-ui.css", + external: CONFIG6.get("swagger-ui-external", false) + })); + this.dependencies?.push(New7(SourceJS, { + url: swaggerUIPackagePath + "swagger-ui-bundle.js", + external: CONFIG6.get("swagger-ui-external", false), + done: /* @__PURE__ */ __name(() => { + this.startSwaggerUI(); + }, "done") + })); + } +}; +Package18("org.qcobjects.controllers.swagger", [ + SwaggerUIController +]); + +// src/js/org.qcobjects.modal.controllers.ts +import { Package as Package19, Controller as Controller7 } from "qcobjects"; +var ModalController = class extends Controller7 { + static { + __name(this, "ModalController"); + } + component; + done() { + const component = this.component; + component.body.innerHTML = component.body.innerHTML.replace("/{{content}}/g", component.submodal.template); + } +}; +Package19("org.qcobjects.modal.controllers", [ + ModalController +]); + +// src/js/org.qcobjects.views.ts +import { Package as Package20, View } from "qcobjects"; +var GridView = class extends View { + static { + __name(this, "GridView"); + } +}; +Package20("org.qcobjects.views", [ + GridView +]); + +// src/js/org.qcobjects.tools.canvas.ts +import { Package as Package21, InheritClass as InheritClass2 } from "qcobjects"; +var CanvasTool = class extends InheritClass2 { + static { + __name(this, "CanvasTool"); + } + drawImageFilled(img, canvas, zoom = 1, px = 0, py = 0) { + let scale = Math.max(canvas.width / img.width, canvas.height / img.height); + scale = scale * zoom; + const x = canvas.width / 2 - img.width / 2 * scale; + const y = canvas.height / 2 - img.height / 2 * scale; + const ctx = canvas.getContext("2d"); + ctx?.drawImage(img, px + x, py + y, img.width * scale, img.height * scale); + } + getImageResized(img, width, height, resizedImage, zoom = 1, px = 0, py = 0) { + const canvas = document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + canvas.style.width = width.toString(); + canvas.style.height = height.toString(); + this.drawImageFilled(img, canvas, zoom, px, py); + resizedImage.src = canvas.toDataURL("image/png"); + return canvas; + } +}; +Package21("org.qcobjects.tools.canvas", [ + CanvasTool +]); + +// src/js/org.qcobjects.tools.layouts.ts +import { CONFIG as CONFIG7, InheritClass as InheritClass3, New as New8, Package as Package22, SourceCSS as SourceCSS2, Tag as Tag3 } from "qcobjects"; +var BasicLayout = class extends InheritClass3 { + static { + __name(this, "BasicLayout"); + } + dependencies = []; + constructor({ component = null, dependencies = [] }) { + super({ component, dependencies }); + } + load() { + this.dependencies.push(New8(SourceCSS2, { + external: !CONFIG7.get("useLocalSDK", false), + url: CONFIG7.get("useLocalSDK", false) ? "css/basic-layout.css" : CONFIG7.get("remoteSDKPath", false) + "css/basic-layout.css" + })); + } + coloredBorder() { + setTimeout(function() { + Tag3("nav").map((element) => { + element.style.border = "20px solid #3333"; + }); + Tag3("nav").map((element) => { + element.style.backgroundColor = "#129999"; + }); + Tag3("component>footer").map((element) => { + element.style.background = "#876"; + }); + Tag3("component>div").map((element) => { + element.style.border = "3px dashed #fff"; + }); + Tag3("component>section").map((element) => { + element.style.border = "3px solid #000"; + }); + Tag3("component>section").map((element) => { + element.style.backgroundColor = "#fffaaa"; + }); + Tag3("component>article").map((element) => { + element.style.border = "3px dotted #000"; + }); + Tag3("component>header").map((element) => { + element.style.background = "#789"; + }); + Tag3("component>footer").map((element) => { + element.style.background = "#876"; + }); + Tag3("component>article:nth-child(1)").map((element) => { + element.style.border = "1px solid #444"; + }); + Tag3("component>article:nth-child(1)").map((element) => { + element.style.backgroundColor = "#555aaa"; + }); + Tag3("component>article:nth-child(2)").map((element) => { + element.style.backgroundColor = "#aaa333"; + }); + Tag3("component>article:nth-child(3)").map((element) => { + element.style.backgroundColor = "#54da82"; + }); + Tag3("*").map((element) => { + element.style.color = "#fff"; + }); + Tag3("component>article").map((element) => Fade.apply(element, 0, 1)); + Tag3("component>footer").map((element) => Fade.apply(element, 0, 1)); + Tag3("component>header").map((element) => Fade.apply(element, 0, 1)); + Tag3("nav").map((element) => { + element.style.display = "block"; + element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); + MoveXInFromLeft.apply(element); + }); + Tag3("component>article").map((element) => { + element.style.display = "block"; + element.style.height = element.offsetParent?.scrollHeight.toString() || element.clientHeight.toString(); + MoveYInFromBottom.apply(element); + }); + Tag3("component>article:nth-child(2)").map((element) => { + element.style.display = "block"; + element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); + MoveXInFromRight.apply(element); + }); + }, 300); + } +}; +Package22("org.qcobjects.tools.layouts", [ + BasicLayout +]); + +// src/js/org.qcobjects.cloud.auth.session.usertoken.ts +import { CONFIG as CONFIG8, ComplexStorageCache, InheritClass as InheritClass4, New as New9, Package as Package23, _Crypt, global as global4 } from "qcobjects"; +var SessionUserToken = class _SessionUserToken extends InheritClass4 { + static { + __name(this, "SessionUserToken"); + } + static user = {}; + __cache__; + __instanceID; + constructor(o) { + super(o); + const __instance__ = this; + this.__cache__ = new ComplexStorageCache({ + index: __instance__.__instanceID.toString(), + load() { + let __token__; + if (typeof navigator !== "undefined" && typeof origin !== "undefined") { + __token__ = _Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+/* @__PURE__ */ new Date()).toString()}`, origin); + } else { + __token__ = _Crypt.encrypt(`${o.username}|${(+/* @__PURE__ */ new Date()).toString()}`, CONFIG8.get("domain", "localhost")); + } + _SessionUserToken.user = { + priority: __instance__.__instanceID.toString(), + token: __token__ + }; + return _SessionUserToken.user; + }, + alternate(cacheController) { + _SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); + } + }); + } + static generateIndex(s) { + return typeof Buffer !== "undefined" ? Buffer.from(s, "ascii").toString("base64") : btoa(s); + } + static getGlobalUser(...args) { + const username = [args].join("|"); + const __index__ = "userToken_" + _SessionUserToken.generateIndex(username); + if (typeof global4.get(__index__) === "undefined" || global4.get(__index__) === null) { + global4.set(__index__, New9(_SessionUserToken, { + username + })); + } + _SessionUserToken.user = global4.get(__index__).user; + return global4.get(__index__).user; + } + static getGlobalUserToken(...args) { + return _SessionUserToken.getGlobalUser(args).token; + } + static getGlobalUserId(...args) { + return _SessionUserToken.getGlobalUser(args).id; + } + static getGlobalUserPriority(...args) { + return _SessionUserToken.getGlobalUser(args).priority; + } + static getLoginCredentialsToken(username, password) { + return _Crypt.encrypt(`${username}${password}`, _SessionUserToken.getGlobalUserToken(username)); + } + static closeGlobalSession(...args) { + _SessionUserToken.getGlobalUser(args); + const username = [args].join("|"); + const __index__ = "userToken_" + _SessionUserToken.generateIndex(username); + if (typeof global4.get(__index__) !== "undefined") { + global4.get(__index__).__cache__.clear(); + global4.set(__index__, null); + _SessionUserToken.user = {}; + } + } +}; +Package23("org.qcobjects.cloud.auth.session.usertoken", [ + SessionUserToken +]); + +// src/js/org.qcobjects.cloud.auth.session.data.ts +import { Package as Package24, InheritClass as InheritClass5, _DataStringify as _DataStringify3 } from "qcobjects"; +var SessionData = class extends InheritClass5 { + static { + __name(this, "SessionData"); + } + __session_container__ = null; + sessionData; + /** + * Sets the session container + * + * @param {*} sessionContainer1, sessionContainer2, ... + * + */ + setSessionContainer() { + this.__session_container__ = [...arguments]; + } + /** + * Gets the session container + * + * @return {*} sessionContainer + */ + getSessionContainer() { + if (typeof this.__session_container__ === "undefined" || this.__session_container__ === null) { + throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)"); + } + return this.__session_container__; + } + /** + * Gets the session data + * + * @return {*} sessionData + */ + getSessionData(...args) { + const s = sessionStorage.getItem(`${this.index(args)}`); + let sessionData; + if (s !== null) { + sessionData = JSON.parse(s); + } + if (typeof sessionData === "undefined" || sessionData === null) { + sessionData = {}; + } + return sessionData; + } + /** + * Returns an index of the session + * + * @param {string} valueForIndex + * @return {string} index + * @example sessionInstance.index("me@email.com", "myusername") + * + */ + index(...args) { + if (typeof SessionUserToken === "undefined") { + throw new Error('You need to import SessionUserToken first: Import ("org.qcobjects.cloud.auth.session.usertoken")'); + } + return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`; + } + /** + * Saves the session instance + * + */ + save(...args) { + const s = _DataStringify3(this.sessionData); + sessionStorage.setItem(`${this.index(args)}`, s); + } + /** + * + * Gets the session value + * + * @param {*} name + * @param {*} defaultValue + * @return {*} + */ + get(name, defaultValue) { + const sessionData = this.getSessionData(this.getSessionContainer()); + return typeof sessionData[name] !== "undefined" ? sessionData[name] : defaultValue; + } + /** + * + * Sets the session value + * + * @param {*} name + * @param {*} value + */ + set(name, value) { + const sessionContainer = this.getSessionContainer(); + const sessionData = this.getSessionData(sessionContainer); + this.sessionData = sessionData; + this.sessionData[name] = value; + this.save(sessionContainer); + } +}; +Package24("org.qcobjects.cloud.auth.session.data", [ + SessionData +]); + +// src/QCObjects-SDK.ts +(/* @__PURE__ */ __name(function __qcobjects_sdk__(_top2) { + "use strict"; + if (typeof Object.defineProperty !== "undefined" && typeof _top2 !== "undefined") { + try { + Object.defineProperty(_top2, "__qcobjects_sdk__", { + enumerable: true, + configurable: false, + writable: false, + // eslint-disable-next-line camelcase + value: __qcobjects_sdk__ + }); + } catch (e) { + if (typeof _top2.__qcobjects_sdk__ !== "undefined") { + _top2.__qcobjects_sdk__.__loaded__ = true; + } + } + } + if (typeof _top2.__qcobjects_sdk__.__loaded__ === "undefined") { + _top2.__qcobjects_sdk__.__loaded__ = true; + if (typeof _top2 === "undefined") { + throw Error("Top context empty: It should either global, module or window"); + } + const __start__ = GlobalSettings.__start__.bind(_top2); + _top2._sdk_ = Promise.resolve().then(() => { + CONFIG9.set("useSDK", true); + __start__(); + }); + } +}, "__qcobjects_sdk__"))(_top); +var QCObjects_SDK_default = _top; + +// src/index.ts +var src_default = QCObjects_SDK_exports; +export { + src_default as default +}; +//# sourceMappingURL=index.mjs.map diff --git a/public/esm/index.mjs.map b/public/esm/index.mjs.map new file mode 100644 index 0000000..708e17f --- /dev/null +++ b/public/esm/index.mjs.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/QCObjects-SDK.ts", "../../src/js/org.qcobjects.i18n_messages.ts", "../../src/js/org.qcobjects.models.ts", "../../src/js/org.qcobjects.components.ts", "../../src/js/org.qcobjects.effects.base.ts", "../../src/js/org.qcobjects.effects.extended.ts", "../../src/js/org.qcobjects.modal.effects.ts", "../../src/js/org.qcobjects.base.components.ts", "../../src/js/org.qcobjects.components.grid.ts", "../../src/js/org.qcobjects.components.list.ts", "../../src/js/org.qcobjects.components.slider.ts", "../../src/js/org.qcobjects.components.notifications.ts", "../../src/js/org.qcobjects.components.splashscreen.ts", "../../src/js/org.qcobjects.controllers.ts", "../../src/js/org.qcobjects.controllers.list.ts", "../../src/js/org.qcobjects.controllers.grid.ts", "../../src/js/org.qcobjects.controllers.slider.ts", "../../src/js/org.qcobjects.controllers.form.ts", "../../src/js/org.qcobjects.controllers.swagger.ts", "../../src/js/org.qcobjects.modal.controllers.ts", "../../src/js/org.qcobjects.views.ts", "../../src/js/org.qcobjects.tools.canvas.ts", "../../src/js/org.qcobjects.tools.layouts.ts", "../../src/js/org.qcobjects.cloud.auth.session.usertoken.ts", "../../src/js/org.qcobjects.cloud.auth.session.data.ts", "../../src/index.ts"], + "sourcesContent": ["/* eslint-disable @typescript-eslint/no-empty-function */\n/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\nimport { CONFIG, GlobalSettings, _top } from \"qcobjects\";\nexport {i18n_messages} from \"./js/org.qcobjects.i18n_messages\";\nexport {Contact} from \"./js/org.qcobjects.models\";\nexport {\n ShadowedComponent,\n ButtonField,\n InputField,\n TextField,\n EmailField,\n ModalEnclosureComponent,\n ModalComponent,\n SwaggerUIComponent\n} from \"./js/org.qcobjects.components\";\nexport {FormField, FieldComponentParams} from \"./js/org.qcobjects.base.components\";\nexport {\n GridComponent,\n GridItemComponent\n} from \"./js/org.qcobjects.components.grid\";\nexport {\n ListItemComponent,\n ListComponent\n} from \"./js/org.qcobjects.components.list\";\nexport {\n SlideListComponent,\n SlideItemComponent,\n SliderComponent\n} from \"./js/org.qcobjects.components.slider\";\nexport { NotificationComponent } from \"./js/org.qcobjects.components.notifications\";\nexport {\n SplashScreenComponent,\n VideoSplashScreenComponent,\n CubeSplashScreenComponent\n} from \"./js/org.qcobjects.components.splashscreen\";\nexport { GenericController } from \"./js/org.qcobjects.controllers\";\nexport { ListController, ListControllerParams } from \"./js/org.qcobjects.controllers.list\";\nexport { GridController, DataGridController } from \"./js/org.qcobjects.controllers.grid\";\nexport { SliderController } from \"./js/org.qcobjects.controllers.slider\";\nexport { FormController, FormValidations } from \"./js/org.qcobjects.controllers.form\";\nexport { SwaggerUIController } from \"./js/org.qcobjects.controllers.swagger\";\nexport {\n Fade, Move, MoveXInFromRight,\n MoveXInFromLeft,\n MoveYInFromBottom,\n MoveYInFromTop,\n RotateX,\n RotateY,\n RotateZ,\n Rotate,\n Radius,\n Resize,\n WipeLeft,\n WipeRight,\n WipeUp,\n WipeDown,\n ModalFade, ModalMoveUp, ModalMoveDown\n} from \"./js/org.qcobjects.effects\";\nexport { ModalController } from \"./js/org.qcobjects.modal.controllers\";\nexport { GridView } from \"./js/org.qcobjects.views\";\nexport { CanvasTool } from \"./js/org.qcobjects.tools.canvas\";\nexport { BasicLayout } from \"./js/org.qcobjects.tools.layouts\";\nexport { SessionUserToken } from \"./js/org.qcobjects.cloud.auth.session.usertoken\";\nexport { SessionData } from \"./js/org.qcobjects.cloud.auth.session.data\";\n\n// eslint-disable-next-line camelcase\n(function __qcobjects_sdk__(_top: any) {\n \"use strict\";\n if (typeof Object.defineProperty !== \"undefined\" && typeof _top !== \"undefined\") {\n try {\n Object.defineProperty(_top, \"__qcobjects_sdk__\", {\n enumerable: true,\n configurable: false,\n writable: false,\n // eslint-disable-next-line camelcase\n value: __qcobjects_sdk__,\n });\n } catch (e) {\n if (typeof _top.__qcobjects_sdk__ !== \"undefined\") {\n _top.__qcobjects_sdk__.__loaded__ = true;\n }\n }\n }\n\n if (typeof _top.__qcobjects_sdk__.__loaded__ === \"undefined\") {\n _top.__qcobjects_sdk__.__loaded__ = true;\n if (typeof _top === \"undefined\") {\n throw Error(\"Top context empty: It should either global, module or window\");\n }\n\n const __start__ = GlobalSettings.__start__.bind(_top);\n\n\n _top._sdk_ = Promise.resolve().then(() => {\n CONFIG.set(\"useSDK\", true);\n __start__();\n });\n\n }\n\n})(_top);\n\nexport default _top;", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, InheritClass, CONFIG, Import, global } from \"qcobjects\";\n\n\n\nexport class i18n_messages extends InheritClass {\n\n constructor({\n messages = []\n }) {\n super({\n messages\n });\n if (CONFIG.get(\"use_i18n\", false)) {\n CONFIG.set(\"lang\", \"en\");\n if (!global.get(\"i18n\")) {\n global.set(\"i18n\", {\n messages\n });\n } else {\n global.set(\"i18n\", {\n messages: global.get(\"i18n\").messages.concat(messages)\n });\n }\n }\n\n }\n\n _load_i18n_packages_() {\n // eslint-disable-next-line array-callback-return\n return CONFIG.get(\"i18n_languages\", []).map((i18n_packagename: any) => {\n\n Import(`org.quickcorp.i18n_messages.${i18n_packagename}`);\n });\n }\n\n}\n\nPackage(\"org.qcobjects.i18n_messages\", [\n\n i18n_messages\n]);\n\n(new i18n_messages({}))._load_i18n_packages_();\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, VO } from \"qcobjects\";\nexport class Contact extends VO {\n\n}\n\nPackage(\"org.qcobjects.models\", [\n Contact\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\n\nimport { Package, Component, _DOMCreateElement, CONFIG, New, ClassFactory, Tag, ComponentURI } from \"qcobjects\";\nimport { ModalFade, ModalMoveDown, ModalMoveUp } from \"./org.qcobjects.effects\";\nimport {FormField, FieldComponentParams} from \"./org.qcobjects.base.components\";\nexport {FormField};\n\nexport class ShadowedComponent extends Component {\n container = null;\n shadowed = true;\n cached = false;\n controller = null;\n view = null;\n data = {};\n\n constructor(o: FieldComponentParams) {\n o.body = _DOMCreateElement(\"div\");\n super(o);\n }\n\n\n}\n\nexport class ButtonField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"button\";\n super(o);\n }\n}\n\nexport class InputField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"input\";\n super(o);\n }\n\n}\n\nexport class TextField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"textarea\";\n super(o);\n }\n\n}\n\nexport class EmailField extends FormField {\n constructor(o: FieldComponentParams) {\n o.fieldType = \"input\";\n super(o);\n }\n\n}\n\nexport class ModalEnclosureComponent extends Component {\n name = \"modalenclosure\";\n tplsource = \"inline\";\n cached = false;\n basePath = CONFIG.get(\"modalBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n template = `\n\n\n
                    \n\n\n
                    \n×\n{{content}}\n
                    \n\n
                    \n`;\n\n data = {};\n constructor(o: FieldComponentParams) {\n o.body = _DOMCreateElement(\"div\");\n super(o);\n }\n\n}\n\nexport class ModalComponent extends Component {\n name = \"modal\";\n cached = false;\n modalEnclosureComponentClass = \"ModalEnclosureComponent\";\n controller = null;\n view = null;\n tplsource = \"none\";\n closeOnClickOutside = false;\n data = {\n content: \"\",\n modalId: 0\n };\n\n submodal = null;\n __instanceID!: number;\n basePath: any;\n subcomponents: any;\n body: any;\n templateURI: any;\n\n constructor(o: FieldComponentParams) {\n o.basePath = CONFIG.get(\"modalBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n super(o);\n this.data.modalId = this.__instanceID;\n const submodal = New(ClassFactory(this.modalEnclosureComponentClass), {\n name: this.name,\n basePath: this.basePath,\n data: this.data\n });\n this.subcomponents.push(submodal);\n this.submodal = submodal;\n if (submodal.tplsource === \"none\") {\n this.body.innerHTML = submodal.parsedAssignmentText;\n } else {\n this.body.append(submodal.body);\n }\n\n }\n\n modal() {\n const modalId = this.data.modalId;\n\n Tag(\"#modalInstance_\" + modalId + \".modal\").map((modal: any) => {\n modal.style.display = \"block\";\n\n return (new ModalFade()).apply(modal, 0, 1);\n });\n Tag(\"#modalInstance_\" + modalId + \".modal .modal-content\").map((modalcontent: any) => {\n\n return ModalMoveDown.apply(modalcontent, 0, -document.body.clientHeight, 0, 0);\n });\n Tag(\"#modalInstance_\" + modalId + \".modal .modal-content .close\").map((closebtn: any) => {\n\n return closebtn.addEventListener(\"click\", () => {\n this.close();\n }, false);\n });\n if (this.closeOnClickOutside) {\n window.addEventListener(\"click\", () => {\n this.close();\n }, false);\n }\n }\n\n close() {\n const modalId = this.data.modalId;\n Tag(\"#modalInstance_\" + modalId + \".modal\").map((modal: any) => {\n modal.style.display = \"block\";\n\n return (new ModalFade({ duration: 3000 })).apply(modal, 1, 0);\n });\n Tag(\"#modalInstance_\" + modalId + \".modal .modal-content\").map(function (modalcontent: any) {\n\n return ModalMoveUp.apply(modalcontent, 0, 0, 0, -document.body.clientHeight);\n });\n setTimeout(function () {\n Tag(\"#modalInstance_\" + modalId + \".modal\").map((modal: any) => {\n modal.style.display = \"none\";\n return true;\n });\n }, 900);\n }\n\n rebuild() {\n const _ret_ = super.rebuild();\n this.templateURI = ComponentURI({\n \"COMPONENTS_BASE_PATH\": CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": \"modal\",\n \"TPLEXTENSION\": CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": \"default\" // here is always default in order to get the right uri\n });\n\n return _ret_; // parent call\n }\n\n\n}\n\nexport class SwaggerUIComponent extends Component {\n cached = false;\n basePath = CONFIG.get(\"remoteSDKPath\", \"\");\n tplextension = \"tpl.html\";\n name = \"swagger-ui\";\n\n}\n\n\nPackage(\"org.qcobjects.form.components\", [\n ShadowedComponent,\n ButtonField,\n InputField,\n TextField,\n EmailField,\n ModalEnclosureComponent,\n ModalComponent,\n SwaggerUIComponent\n]);\n\n\n", "import { Package, Effect, logger } from \"qcobjects\";\n\nexport type MoveElement = HTMLElement & {\n width?:number;\n height?:number;\n };\n\n export class Fade extends Effect {\n duration = 1000;\n static duration: any;\n\n constructor(o?:{duration:number}){\n super(o);\n this.duration = o?.duration as number;\n }\n apply(element:HTMLElement, alphaFrom:number, alphaTo:number) {\n const da = alphaTo - alphaFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const alpha = alphaFrom + (progress * da / 100);\n logger.debug(\"alpha: \" + alpha.toString());\n element.style.opacity = alpha.toString();\n }\n });\n\n }\n\n static apply(element:HTMLElement, alphaFrom:number, alphaTo:number) {\n const da = alphaTo - alphaFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const alpha = alphaFrom + (progress * da / 100);\n logger.debug(\"alpha: \" + alpha.toString());\n element.style.opacity = alpha.toString();\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n\n export class Move extends Effect {\n duration = 1000;\n static duration: any;\n\n static apply(element:MoveElement, xfrom:number, yfrom:number, xto:number, yto:number) {\n const dx = xto - xfrom;\n const dy = yto - yfrom;\n element.style.transform = \"translate(\" + xfrom + \"px,\" + yfrom + \"px)\";\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const y = yfrom + (progress * dy / 100);\n const x = xfrom + (progress * dx / 100);\n logger.debug(\"x: \" + x.toString() + \" y:\" + y.toString());\n element.style.transform = \"translate(\" + x + \"px,\" + y + \"px)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n Package(\"org.qcobjects.effects.base\", [\n Fade,\n Move\n ]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport {Effect, logger, Package} from \"qcobjects\";\nimport {Move, MoveElement} from \"./org.qcobjects.effects.base\";\n\nexport class MoveXInFromRight extends Move {\n duration = 1000;\n\n static apply(element:MoveElement) {\n Move.apply.call(this, element, element.width as number, 0, 0, 0);\n }\n }\n\n export class MoveXInFromLeft extends Move {\n duration = 1000;\n\n static apply(element:MoveElement) {\n Move.apply.call(this, element, -(element.width as number), 0, 0, 0);\n }\n }\n\n export class MoveYInFromBottom extends Move {\n duration = 1000;\n\n static apply(element:MoveElement) {\n Move.apply.call(this, element, 0, element.height as number, 0, 0);\n }\n\n }\n\n export class MoveYInFromTop extends Move {\n duration = 1000;\n\n static apply(element:MoveElement ) {\n Move.apply.call(this, element, 0, -(element.height as number), 0, 0);\n }\n }\n\n export class RotateX extends Effect {\n duration = 1000;\n static duration: any;\n\n static apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(1,0,0,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class RotateY extends Effect {\n duration = 1000;\n static duration: any;\n\n static apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(0,1,0,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n static animate(arg0: { duration: any; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n\n export class RotateZ extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(0,0,1,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class Rotate extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, angleFrom:number, angleTo:number) {\n const da = angleTo - angleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const angle = Math.round(angleFrom + (progress * da / 100));\n logger.debug(\"angle: \" + angle.toString());\n element.style.transform = \"rotate3d(1,1,1,\" + angle.toString() + \"deg)\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n\n export class Radius extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, radiusFrom:number, radiusTo:number) {\n const dr = radiusTo - radiusFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const radius = radiusFrom + (progress * dr / 100);\n logger.debug(\"radius: \" + radius.toString());\n element.style.borderRadius = radius.toString() + \"px\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class Resize extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"resize: \" + scale.toString());\n element.style.transformOrigin = \"center\";\n element.style.transform = \"scale(\" + scale + \",\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeLeft extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"right\";\n element.style.transform = \"scaleX(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeRight extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"left\";\n element.style.transform = \"scaleX(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeUp extends Effect {\n\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"bottom\";\n element.style.transform = \"scaleY(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n }\n\n export class WipeDown extends Effect {\n duration = 1000;\n\n apply(element:HTMLElement, scaleFrom:number, scaleTo:number) {\n const ds = scaleTo - scaleFrom;\n this.animate({\n duration: this.duration,\n timing(timeFraction) {\n \n return timeFraction;\n },\n draw(progress) {\n logger.debug(\"animation progress: \" + progress.toString());\n const scale = scaleFrom + (progress * ds / 100);\n logger.debug(\"wipe: \" + scale.toString());\n element.style.transformOrigin = \"top\";\n element.style.transform = \"scaleY(\" + scale + \")\";\n }\n });\n }\n // eslint-disable-next-line no-unused-vars\n animate(arg0: { duration: number; timing(timeFraction: any): any; draw(progress: any): void; }) {\n throw new Error(\"Method not implemented.\");\n }\n }\n Package(\"org.qcobjects.effects.extended\", [\n MoveXInFromRight,\n MoveXInFromLeft,\n MoveYInFromBottom,\n MoveYInFromTop,\n RotateX,\n RotateY,\n RotateZ,\n Rotate,\n Radius,\n Resize,\n WipeLeft,\n WipeRight,\n WipeUp,\n WipeDown\n\n ]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package } from \"qcobjects\";\nimport { Fade, Move } from \"./org.qcobjects.effects\";\n\nexport class ModalFade extends Fade {\n duration = 500;\n\n}\n\n\nexport class ModalMoveUp extends Move {\n\n duration = 800;\n\n}\n\n\nexport class ModalMoveDown extends Move {\n\n duration = 300;\n\n}\n\n\nPackage(\"org.qcobjects.modal.effects\", [\n ModalFade,\n ModalMoveDown,\n ModalMoveUp\n]);\n\n\n", "import {Package, Component, logger} from \"qcobjects\";\nexport type FieldComponentParams = {\n name: string;\n body: any;\n data: any;\n basePath?: string;\n fieldType: string;\n}\nexport class FormField extends Component {\n fieldType!: string;\n cached = false;\n reload = true;\n body: any;\n name!: string;\n data: any;\n constructor(o: FieldComponentParams) {\n o.name = (typeof o.name !== \"undefined\") ? (o.name) : (\"form-field\");\n super(o);\n }\n\n createBindingEvents() {\n let _objList;\n if (typeof this.fieldType === \"undefined\" || this.fieldType == null) {\n _objList = this.body.subelements(\"*[data-field]\"); // every child with data-field set\n } else {\n _objList = this.body.subelements(this.fieldType + \"[data-field]\"); // every child with data-field set and tagname is equal to fieldType property\n }\n for (let _datak = 0; _datak < _objList.length; _datak++) {\n const _obj = _objList[_datak];\n _obj.addEventListener(\"change\", () => {\n logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"blur\", () => {\n logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"focus\", () => {\n logger.debug(\"Executing change event binding\");\n this.executeBindings();\n });\n _obj.addEventListener(\"keydown\", () => {\n logger.debug(\"Executing keydown event binding\");\n this.executeBindings();\n });\n }\n }\n\n executeBinding(_obj: HTMLElement & { value: any }) {\n const _datamodel = _obj.getAttribute(\"data-field\");\n logger.debug(\"Binding \" + _datamodel + \" for \" + this.name);\n this.data[_datamodel as keyof typeof this.data] = _obj.value;\n }\n\n executeBindings() {\n let _objList;\n if (typeof this.fieldType === \"undefined\" || this.fieldType == null) {\n _objList = this.body.subelements(\"*[data-field]\"); // every child with data-field set\n } else {\n _objList = this.body.subelements(this.fieldType + \"[data-field]\"); // every child with data-field set and tagname is equal to fieldType property\n }\n for (let _datak = 0; _datak < _objList.length; _datak++) {\n const _obj = _objList[_datak] as HTMLElement & { value: any };\n const _datamodel = _obj.getAttribute(\"data-field\");\n logger.debug(\"Binding \" + _datamodel + \" for \" + this.name);\n this.data[_datamodel as keyof typeof this.data] = _obj.value;\n }\n }\n\n done(standardResponse: any): Promise {\n const _ret_ = super.done(standardResponse);\n this.executeBindings();\n this.createBindingEvents();\n logger.debug(\"Field loaded: \" + this.fieldType + \"[name=\" + this.name + \"]\");\n return _ret_ as Promise;\n }\n\n\n}\n\nPackage(\"org.qcobjects.base.components\", [\n FormField\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, Component } from \"qcobjects\";\n\nexport class GridItemComponent extends Component {\n name = \"grid-item\";\n shadowed = true;\n tplsource = \"inline\";\n template = `\n\n

                    {{description}}

                    \n`;\n\n cached = false;\n\n}\n\nexport class GridComponent extends Component {\n name = \"grid\";\n cached = false;\n view = null;\n shadowed = true;\n rows = 3;\n cols = 3;\n templateURI = \"\";\n data = {};\n tplsource = \"inline\";\n template = \"

                    Loading...

                    \";\n body: any;\n\n constructor(o: any) {\n super(o);\n this.body.setAttribute(\"controllerClass\", \"DataGridController\");\n const subcomponentClass = (this.body.getAttribute(\"subcomponentClass\") !== null) ? (this.body.getAttribute(\"subcomponentClass\")) : (\"GridItemComponent\");\n this.body.setAttribute(\"subcomponentClass\", subcomponentClass as string);\n\n }\n\n\n}\n\nPackage(\"org.qcobjects.components.grid\", [\n GridComponent,\n GridItemComponent\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Component, Package } from \"qcobjects\";\n\n\nexport class ListItemComponent extends Component {\n shadowed= false;\n tplsource= \"inline\";\n template=\"{{label}}\";\n cached= false;\n\n constructor (o:any){\n o.name=\"list-item\";\n super(o);\n }\n\n}\n\nexport class ListComponent extends Component {\n data!:any;\n shadowed= true;\n tplsource= \"inline\";\n template= \"

                    Loading...

                    \";\n body: any;\n shadowRoot: HTMLElement | undefined;\n rows!: string | number | null;\n subcomponents!: never[];\n done: any;\n serviceData: any;\n\n constructor (o:any){\n o.name = \"list\";\n super(o);\n this.body.setAttribute(\"controllerClass\",\"ListController\");\n this.body.setAttribute(\"subcomponentClass\",\"ListItemComponent\");\n\n }\n\n}\n\nPackage(\"org.qcobjects.components.list\",[\n ListItemComponent,\n ListComponent\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Component } from \"qcobjects\";\n\nexport class SlideListComponent extends Component {\n tplsource = \"inline\";\n template = \"

                    Loading...

                    \";\n name = \"slidelist\";\n body: any;\n\n constructor(o: any) {\n super(o);\n this.body.setAttribute(\"controllerClass\", \"DataGridController\");\n const subcomponentClass = (this.body.getAttribute(\"subcomponentClass\") !== null) ? (this.body.getAttribute(\"subcomponentClass\")) : (\"GridItemComponent\");\n this.body.setAttribute(\"subcomponentClass\", subcomponentClass as string);\n }\n\n}\n\nexport class SlideItemComponent extends Component {\n effectClass = \"Fade\";\n name = \"slider_item\";\n data: any;\n template: string;\n tplsource: string;\n\n constructor(o: any) {\n super(o);\n this.data.slideNumber = this.data.__dataIndex + 1;\n this.template = `\n
                    \n
                    {{slideNumber}} / {{__dataLength}}
                    \n \"{{title}}\"/\n
                    \n

                    {{label}} {{category}}

                    \n
                    \n
                    \n `;\n this.tplsource = \"inline\";\n\n }\n\n}\n\nexport class SliderComponent extends Component {\n name = \"slider\";\n template: string;\n tplsource: string;\n shadowed: boolean;\n data: any;\n body: any;\n __instanceID: any;\n\n constructor(o: any) {\n super(o);\n this.template = `\n \n\n
                    \n \n\n \n \n
                    \n
                    \n\n
                    \n
                    \n\n `;\n this.tplsource = \"inline\";\n this.shadowed = true;\n this.data.SERVICE_CLASS = this.body.getAttribute(\"serviceClass\");\n this.data.sliderHandler = \"slider_\" + this.__instanceID.toString();\n this.body.setAttribute(\"controllerClass\", \"SliderController\");\n\n }\n\n}\n\n\nPackage(\"org.qcobjects.components.slider\", [\n SlideListComponent,\n SlideItemComponent,\n SliderComponent\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Component, _DOMCreateElement, New, _super_ } from \"qcobjects\";\nimport { Fade, Move } from \"./org.qcobjects.effects\";\n\n\nexport class NotificationComponent extends Component {\n cached= false;\n tplsource= \"inline\";\n shadowed= false;\n kinds:string[];\n template: string;\n\n constructor (o:any){\n o.name= \"notification\";\n o.body = _DOMCreateElement(\"div\") as HTMLElement;\n super(o);\n\n this.template= `\n \n
                    \n
                    \n

                    {{title}} {{message}}

                    \n
                    \n
                    \n `;\n this.kinds=[\"danger\", \"success\", \"info\", \"warning\"];\n\n }\n\n display(element:HTMLElement) {\n const _display_ = function (element:HTMLElement){\n element.style.display=\"block\";\n const appearEffect = New(Move,{\n duration:900,\n apply (element:HTMLElement){\n _super_(\"Fade\",\"apply\").call(this,element,0,1);\n _super_(\"Move\",\"apply\").call(this,element,0,-document.body.clientHeight,0,0);\n }\n });\n const disappearEffect = New(Move,{\n duration:650,\n apply (element:HTMLElement){\n _super_(\"Fade\",\"apply\").call(this,element,1,0);\n _super_(\"Move\",\"apply\").call(this,element,0,0,0,-document.body.clientHeight);\n }\n });\n appearEffect.apply(element);\n setTimeout(function (){\n disappearEffect.apply(element);\n },2000);\n };\n \n (element as any).subelements(\"div.notification_background\").map((element:HTMLElement):any=> {return (new Fade ({duration:500})).apply(element,0,1);} );\n (element as any).subelements(\"div.notification\").map((element:any)=>_display_(element));\n setTimeout(function (){\n element.remove();\n },2200);\n }\n\n static success(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"success\",\n title: \"Success!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n\n static danger(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"danger\",\n title: \"Danger!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n\n static info(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"info\",\n title: \"Info!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n\n static warning(message:string) {\n const c = New(NotificationComponent, {\n name: \"notification\",\n shadowed: true,\n body: _DOMCreateElement(\"div\"),\n data: {\n kind: \"warning\",\n title: \"Warning!\",\n message: `${message}...`\n }\n });\n document.body.append(c);\n const _componentRoot = (c.shadowed)?(c.shadowRoot.host):(c.body);\n c.display(_componentRoot);\n }\n \n\n}\n\nPackage(\"org.quickcorp.components.notifications\", [\n NotificationComponent\n]);\n", "/**\n * QCObjects SDK 2.5.0\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\n\"use strict\";\nimport { Package, Component, CONFIG, logger, global } from \"qcobjects\";\nimport { Resize, Fade } from \"./org.qcobjects.effects\";\n\n type SplashScreenParams = {\n name:string;\n basePath: string;\n data:any;\n body:any;\n }\n type MainSplashComponent = {\n body: any;\n splashScreenComponent: any;\n shadowed: any;\n shadowRoot: any;\n // eslint-disable-next-line no-unused-vars\n addComponentHelper(arg0: () => void): unknown;\n name:string;\n _mainPosition: string;\n _mainOpacity: string;\n }\n\nexport class SplashScreenComponent extends Component {\n _enabled_: boolean;\n _bgcolor: string;\n cached = false;\n shadowed = true;\n body: any;\n shadowRoot: any;\n\n constructor(component: SplashScreenParams) {\n component.name = (typeof component.name === \"undefined\") ? (\"splashscreen\") : (component.name);\n\n const isBrowser = typeof window !== \"undefined\" && typeof window.self !== \"undefined\" && window === window.self;\n const isStartURL = (location.hash === \"\"\n && location.pathname === \"/\" && location.search === \"\")\n || CONFIG.get(\"routingWay\", \"pathname\") === \"hash\" && CONFIG.get(\"start_url\", \"/\") === location.hash\n || CONFIG.get(\"routingWay\", \"pathname\") === \"pathname\" && CONFIG.get(\"start_url\", \"/\") === location.pathname\n || CONFIG.get(\"routingWay\", \"pathname\") === \"search\" && CONFIG.get(\"start_url\", \"/\") === location.search;\n const _enabled_ = isBrowser && isStartURL;\n\n if (_enabled_) {\n component.basePath = CONFIG.get(\"splashscreenBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n if (typeof component.data === \"undefined\") {\n component.data = {};\n }\n component.data.basePath = component.basePath;\n } else {\n if (typeof component !== \"undefined\" && typeof component.body !== \"undefined\") {\n component.body.style.display = \"none\";\n }\n }\n super(component);\n this._bgcolor = \"\";\n this._enabled_ = _enabled_;\n\n if (this._enabled_) {\n const displayEffectDuration = 1000;\n let duration = this.body.getAttribute(\"duration\") as unknown as number;\n if (duration === null) {\n duration = displayEffectDuration;\n } else {\n duration = parseInt(duration.toString());\n }\n this._bgcolor = this.body.style.backgroundColor;\n\n const _helper_ = () => {\n setTimeout(() => {\n if (!_helper_.executed) {\n const _componentRoot = (this.shadowed) ? (this.shadowRoot?.host as HTMLElement) : (this.body as HTMLElement);\n if (typeof global.componentsStack !== \"undefined\") {\n \n global.componentsStack.filter((c: MainSplashComponent) => c.body.hasAttribute(\"splashscreen\")).map(\n (mainComponent: MainSplashComponent) => {\n logger.debug(`Splash Screen of Main Component: ${mainComponent.name}`);\n mainComponent.splashScreenComponent = this;\n const SplashScreenHandler = () => {\n if (!(SplashScreenHandler as any).executed) {\n const component = mainComponent.splashScreenComponent as SplashScreenComponent;\n const mainElement = (mainComponent.shadowed) ? (mainComponent.shadowRoot?.host as HTMLElement) : (mainComponent.body as HTMLElement);\n mainComponent._mainPosition = mainElement.style.position;\n if (typeof mainElement !== \"undefined\") {\n mainElement.style.position = \"fixed\";\n }\n mainComponent._mainOpacity = mainElement.style.opacity;\n _componentRoot.style.width = \"100%\";\n _componentRoot.style.height = \"100%\";\n document.body.style.backgroundColor = \"#111111\";\n mainElement.style.opacity = \"0\";\n setTimeout(function () {\n if (typeof _componentRoot !== \"undefined\") {\n document.body.style.backgroundColor = component?._bgcolor;\n (_componentRoot as any).subelements(\"#slot-logo\").map((slotlogo:any) => {\n slotlogo.style.display = \"block\";\n slotlogo.style.transformOrigin = \"center\";\n \n return (new Resize()).apply(slotlogo, 1, 0);\n });\n (new Fade()).apply(_componentRoot, 1, 0);\n }\n }, (duration - displayEffectDuration));\n setTimeout(function () {\n (new Fade()).apply(mainElement, 0, 1);\n mainElement.style.position = mainComponent._mainPosition;\n document.body.style.backgroundColor = component._bgcolor;\n if (_componentRoot.parentElement !== null) {\n _componentRoot.parentElement.remove();\n }\n }, duration);\n }\n (SplashScreenHandler as any).executed = true;\n };\n return mainComponent.addComponentHelper(SplashScreenHandler.bind(mainComponent));\n }\n );\n }\n _helper_.executed = true;\n }\n\n });\n };\n _helper_.executed = false;\n this.addComponentHelper(_helper_.bind(component));\n }\n\n }\n // eslint-disable-next-line no-unused-vars\n addComponentHelper(arg0: { (): void; executed: boolean; }) {\n throw new Error(\"Method not implemented.\");\n }\n\n\n }\n\n\n Package(\"org.qcobjects.components.base\", [\n SplashScreenComponent\n ]);\n\n export class VideoSplashScreenComponent extends SplashScreenComponent {\n cached = false;\n shadowed = true;\n tplsource = \"inline\";\n template = `\n \n
                    \n
                    \n \n \n
                    \n
                    \n\n `;\n\n\n constructor(o: SplashScreenParams) {\n o.name = \"videosplashscreen\";\n super(o);\n }\n }\n\n export class CubeSplashScreenComponent extends SplashScreenComponent {\n cached = false;\n shadowed = true;\n tplsource = \"inline\";\n template = `\n \n\n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n
                    \n\n `;\n\n constructor(o: SplashScreenParams) {\n o.name = \"cubesplashscreen\";\n super(o);\n }\n\n }\n\n\n Package(\"org.qcobjects.components.splashscreen\", [\n SplashScreenComponent,\n VideoSplashScreenComponent,\n CubeSplashScreenComponent\n ]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Controller, Package } from \"qcobjects\";\n\nexport class GenericController extends Controller {\n\n}\n\nPackage(\"org.qcobjects.controllers\", [\n GenericController\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, Controller, logger, CONFIG, _DataStringify, _DOMCreateElement, New, ClassFactory, ComponentURI, serviceLoader } from \"qcobjects\";\nimport { ListComponent } from \"./org.qcobjects.components.list\";\nexport type ListControllerParams = {\n component: ListComponent;\n valueField: string | undefined;\n labelField: string | undefined;\n dependencies: any[];\n};\n\nexport class ListController extends Controller {\n __instanceID!: number;\n component: ListComponent;\n valueField: string | undefined;\n labelField: string | undefined;\n rows: number | string | null;\n cols: number;\n _componentRoot: HTMLElement | undefined;\n\n constructor({ component, dependencies = [], valueField = undefined, labelField = undefined }: ListControllerParams) {\n super({ component, dependencies, valueField, labelField } as ListControllerParams);\n this.component = component;\n this._componentRoot = (this.component.shadowed) ? (this.component.shadowRoot) : (this.component.body);\n\n this.labelField = this.component.body.getAttribute(\"label-field\") as string;\n this.valueField = this.component.body.getAttribute(\"value-field\") as string;\n this.rows = this.component.body.getAttribute(\"rows\");\n this.rows = (this.rows !== null) ? (this.rows) : (this.component.rows);\n this.cols = 1;\n logger.debug(\"ListController INIT\");\n\n }\n\n getPageIndex(page: number, totalPage: number, totalElements: number) {\n page = (page > 0) ? (page - 1) : (0);\n return [totalElements * page / totalPage, (totalElements * page / totalPage) + totalElements / totalPage];\n }\n\n addSubcomponents() {\n this.component.subcomponents = [];\n const layout = this.component.body.getAttribute(\"layout\");\n const basePath = CONFIG.get(\"listBasePath\", CONFIG.get(\"remoteSDKPath\", \"\"));\n let cssLayout = \"\";\n this.labelField = this.component.body.getAttribute(\"label-field\");\n this.valueField = this.component.body.getAttribute(\"value-field\");\n\n if (layout === \"horizontal\") {\n cssLayout = `@import url(\"${basePath}css/components/horizontal-list.css\");`;\n } else {\n cssLayout = `@import url(\"${basePath}css/components/list.css\");`;\n }\n if (typeof this._componentRoot !== \"undefined\") {\n this._componentRoot.innerHTML = `
                      `;\n }\n logger.debug(_DataStringify(this.component.data));\n try {\n const subcomponentClass = this.component.body.getAttribute(\"subcomponentClass\");\n if (subcomponentClass != null) {\n let offset: number;\n let limit: number;\n let pagesNumber: number;\n let list = [...this.component.data];\n let paginateIn = this.component.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n let page: number;\n if (paginateIn === \"client\") {\n page = this.component.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n if (page !== -1) {\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, list.length)[0];\n limit = this.getPageIndex(page, pagesNumber, list.length)[1];\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list = list.slice(offset, limit);\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list.map(\n (record, dataIndex) => {\n const _ret_ = undefined;\n try {\n const _body = _DOMCreateElement(\"li\");\n record.label = record[this.labelField as string];\n record.value = record[this.valueField as string];\n const subcomponent = New(ClassFactory(subcomponentClass), {\n name: \"list-item\",\n data: {\n label: record[this.labelField as string],\n value: record[this.valueField as string],\n __dataIndex: dataIndex,\n __page: page,\n __totalPages: pagesNumber,\n __limit: limit,\n __offset: offset\n },\n templateURI: ComponentURI({\n \"COMPONENTS_BASE_PATH\": CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": ClassFactory(subcomponentClass).name,\n \"TPLEXTENSION\": CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": ClassFactory(subcomponentClass).tplsource\n }),\n body: _body,\n template: ClassFactory(subcomponentClass).template\n });\n subcomponent.done = this.component.done.bind(subcomponent);\n try {\n if (subcomponent) {\n subcomponent.data.__dataIndex = dataIndex;\n if (Object.hasOwnProperty.call(this.component.data, \"length\")) {\n subcomponent.data.__dataLength = this.component.data.length;\n }\n logger.debug(\"adding subcomponent to body\");\n\n (this._componentRoot as any).subelements(\"ul\").map((ul: HTMLElement) => ul.append(subcomponent));\n try {\n this.component.subcomponents.push(subcomponent as never);\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n } else {\n logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n return _ret_;\n }\n );\n } else {\n logger.debug(\"NO SUBCOMPONENT CLASS IN COMPONENT\");\n }\n\n } catch (e: any) {\n logger.debug(`No data for component: ${e}`);\n }\n }\n\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = _DOMCreateElement(\"style\");\n const templateRows = \"auto \".repeat(this.rows as number);\n const templateCols = \"auto \".repeat(this.cols);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n _componentRoot.append(s);\n _componentRoot.classList.add(className);\n }\n }\n\n done() {\n this.cssGrid();\n\n const componentInstance = this.component;\n logger.debug(\"ListController DONE\");\n const serviceClass = this.component.body.getAttribute(\"serviceClass\");\n if (serviceClass != null) {\n let offset;\n let limit;\n let paginateIn = componentInstance.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"server\") {\n let page = componentInstance.body.getAttribute(\"page-number\");\n page = (isNaN(page) || page === null) ? (-1) : (page);\n let pagesNumber;\n if (page !== -1) {\n const serverDataCount = (this.component.body.getAttribute(\"server-data-count\") !== null) ? (this.component.body.getAttribute(\"server-data-count\")) : (1);\n pagesNumber = this.component.body.getAttribute(\"total-pages\");\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0];\n limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1];\n // send params in jsonrpc 2.0 style\n componentInstance.serviceData = (typeof componentInstance.serviceData !== \"undefined\") ? (componentInstance.serviceData) : ({});\n componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== \"undefined\") ? (componentInstance.serviceData.params) : ({});\n componentInstance.serviceData.params.offset = offset;\n componentInstance.serviceData.params.limit = limit;\n }\n }\n\n serviceLoader(New(ClassFactory(serviceClass), {\n data: componentInstance.serviceData\n }), false).then(\n (successfulResponse: { service: any }) => {\n // This will show the service response as a plain text\n logger.debug(\"DONE SERVICE COMPONENT\");\n successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template);\n if (typeof successfulResponse.service.JSONresponse.result !== \"undefined\") {\n logger.debug(_DataStringify(successfulResponse.service.JSONresponse.result));\n componentInstance.data = successfulResponse.service.JSONresponse.result;\n } else {\n componentInstance.data = successfulResponse.service.JSONresponse;\n }\n this.addSubcomponents();\n\n },\n (failedResponse: string) => {\n logger.debug(failedResponse);\n }).catch((e: any) => {\n logger.debug(\"Something went wrong when calling the service from: \" + serviceClass);\n logger.debug(e.message);\n });\n\n }\n\n }\n\n\n}\n\n\nPackage(\"org.qcobjects.controllers.list\", [\n ListController\n\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\n\"use strict\";\nimport { Package, Controller, _DOMCreateElement, logger, _DataStringify, ClassFactory, New, ComponentURI, CONFIG, serviceLoader, Component } from \"qcobjects\";\nimport { GridComponent } from \"./org.qcobjects.components.grid\";\n\ntype DataGridControllerParams = {\n component: Component;\n rows: number | string | null;\n cols: number | string | null;\n}\n\nexport class GridController extends Controller {\n __instanceID!: number;\n rows: number | string | null;\n cols: number | string | null;\n component: any;\n\n constructor(controller: any) {\n super(controller);\n this.rows = this.component.body.getAttribute(\"rows\");\n this.rows = (this.rows !== null) ? (this.rows) : ((this.component).rows);\n this.cols = this.component.body.getAttribute(\"cols\");\n this.cols = (this.cols !== null) ? (this.cols) : ((this.component).cols);\n\n }\n\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = _DOMCreateElement(\"style\");\n const templateRows = \"auto \".repeat(this.rows as number);\n const templateCols = \"auto \".repeat(this.cols as number);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n _componentRoot?.append(s);\n if (component.shadowed) {\n (_componentRoot as ShadowRoot)?.host.classList.add(className);\n } else {\n ((_componentRoot as HTMLDivElement).classList).add(className);\n }\n }\n }\n\n done() {\n this.cssGrid();\n\n logger.debug(\"GridComponent built\");\n\n }\n\n}\n\nexport class DataGridController extends Controller {\n __instanceID!: number;\n rows: number | string | null;\n cols: number | string | null;\n _componentRoot: HTMLElement | ShadowRoot | undefined;\n component: any;\n\n constructor(controller: DataGridControllerParams) {\n super(controller);\n this._componentRoot = (controller.component.shadowed) ? (controller.component.shadowRoot) : (controller.component.body);\n this.rows = controller.component.body.getAttribute(\"rows\");\n this.rows = (controller.rows !== null) ? (controller.rows) : ((controller.component as GridComponent).rows);\n this.cols = controller.component.body.getAttribute(\"cols\");\n this.cols = (controller.cols !== null) ? (controller.cols) : ((controller.component as GridComponent).cols);\n logger.debug(\"DataGridController INIT\");\n\n }\n\n getPageIndex(page: number, totalPage: number, totalElements: number) {\n page = (page > 0) ? (page - 1) : (0);\n return [totalElements * page / totalPage, (totalElements * page / totalPage) + totalElements / totalPage];\n }\n\n addSubcomponents() {\n this.component.subcomponents = [];\n if (typeof this._componentRoot !== \"undefined\") {\n this._componentRoot.innerHTML = \"\";\n }\n this.cssGrid();\n logger.debug(_DataStringify(this.component.data));\n try {\n const subcomponentClass = this.component.body.getAttribute(\"subcomponentClass\");\n if (subcomponentClass != null) {\n let offset: number;\n let limit: number;\n let pagesNumber: number;\n let list = [...this.component.data];\n let paginateIn = this.component.body.getAttribute(\"paginate-in\");\n let page: number | string | null | undefined;\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"client\") {\n page = this.component.body.getAttribute(\"page-number\") as unknown as number;\n page = (isNaN(page) || page === null) ? (-1) : (page);\n if (page !== -1) {\n pagesNumber = this.component.body.getAttribute(\"total-pages\") as unknown as number;\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, list.length)[0];\n limit = this.getPageIndex(page, pagesNumber, list.length)[1];\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list = list.slice(offset, limit);\n } else {\n offset = 0;\n limit = list.length;\n pagesNumber = 1;\n }\n list.map(\n (record, dataIndex, list) => {\n const _ret_ = undefined;\n try {\n const _body = _DOMCreateElement(\"component\");\n _body.setAttribute(\"name\", ClassFactory(subcomponentClass).name);\n _body.setAttribute(\"shadowed\", ClassFactory(subcomponentClass).shadowed);\n _body.setAttribute(\"cached\", ClassFactory(subcomponentClass).cached);\n record = Object.assign(record, {\n __dataIndex: dataIndex,\n __dataLength: list.length,\n __page: page,\n __totalPages: pagesNumber,\n __limit: limit,\n __offset: offset\n });\n const subcomponent = New(ClassFactory(subcomponentClass), {\n name: \"item\",\n data: record,\n templateURI: ComponentURI({\n \"COMPONENTS_BASE_PATH\": CONFIG.get(\"componentsBasePath\", \"\"),\n \"COMPONENT_NAME\": ClassFactory(subcomponentClass).name,\n \"TPLEXTENSION\": CONFIG.get(\"tplextension\", \"\"),\n \"TPL_SOURCE\": ClassFactory(subcomponentClass).tplsource\n }),\n body: _body,\n template: ClassFactory(subcomponentClass).template\n });\n subcomponent.done = this.component.done.bind(subcomponent);\n try {\n if (subcomponent) {\n subcomponent.data.__dataIndex = dataIndex;\n if (Object.hasOwnProperty.call(this.component.data, \"length\")) {\n subcomponent.data.__dataLength = this.component.data.length;\n }\n logger.debug(\"adding subcomponent to body\");\n this._componentRoot?.append(subcomponent.body);\n try {\n this.component.subcomponents.push(subcomponent);\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n } else {\n logger.debug(\"ERROR LOADING SUBCOMPONENT IN DATAGRID\");\n }\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n\n } catch (e: any) {\n logger.debug(`ERROR LOADING SUBCOMPONENT IN DATAGRID: ${e}`);\n }\n return _ret_;\n }\n );\n } else {\n logger.debug(\"NO SUBCOMPONENT CLASS IN COMPONENT\");\n }\n\n } catch (e: any) {\n logger.debug(`No data for component: ${e}`);\n }\n }\n\n cssGrid() {\n const component = this.component;\n const _componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n if (typeof this.rows !== \"undefined\" && typeof this.cols !== \"undefined\") {\n const s = _DOMCreateElement(\"style\");\n const templateRows = \"auto \".repeat(this.rows as number);\n const templateCols = \"auto \".repeat(this.cols as number);\n const className = \"grid\" + this.__instanceID.toString();\n s.innerHTML = `.${className}{\n display: grid; \\\n grid-template-rows: ${templateRows}; \\\n grid-template-columns: ${templateCols}; \\\n margin:0 auto; \\\n }`;\n if (component.shadowed) {\n component.body.append(s);\n (_componentRoot as ShadowRoot).host.classList.add(className);\n } else {\n _componentRoot?.append(s);\n (_componentRoot as HTMLElement).classList.add(className);\n }\n }\n }\n\n done() {\n const componentInstance = this.component;\n logger.debug(\"DataGridController DONE\");\n const serviceClass = this.component.body.getAttribute(\"serviceClass\");\n if (serviceClass != null) {\n let offset;\n let limit;\n let paginateIn = componentInstance.body.getAttribute(\"paginate-in\");\n paginateIn = (paginateIn !== null) ? (paginateIn) : (\"client\");\n if (paginateIn === \"server\") {\n let page = componentInstance.body.getAttribute(\"page-number\") as unknown as number;\n page = (isNaN(page) || page === null) ? (-1) : (page);\n let pagesNumber;\n if (page !== -1) {\n const serverDataCount = (this.component.body.getAttribute(\"server-data-count\") !== null) ? (this.component.body.getAttribute(\"server-data-count\") as unknown as number) : (1);\n pagesNumber = this.component.body.getAttribute(\"total-pages\") as unknown as number;\n pagesNumber = (isNaN(pagesNumber)) ? (1) : (pagesNumber);\n offset = this.getPageIndex(page, pagesNumber, serverDataCount)[0];\n limit = this.getPageIndex(page, pagesNumber, serverDataCount)[1];\n // send params in jsonrpc 2.0 style\n componentInstance.serviceData = (typeof componentInstance.serviceData !== \"undefined\") ? (componentInstance.serviceData) : ({});\n componentInstance.serviceData.params = (typeof componentInstance.serviceData.params !== \"undefined\") ? (componentInstance.serviceData.params) : ({});\n componentInstance.serviceData.params.offset = offset;\n componentInstance.serviceData.params.limit = limit;\n }\n }\n\n serviceLoader(New(ClassFactory(serviceClass), {\n data: componentInstance.serviceData\n }), false).then(\n (successfulResponse: { service: any }) => {\n // This will show the service response as a plain text\n logger.debug(\"DONE SERVICE COMPONENT\");\n successfulResponse.service.JSONresponse = JSON.parse(successfulResponse.service.template);\n if (typeof successfulResponse.service.JSONresponse.result !== \"undefined\") {\n logger.debug(_DataStringify(successfulResponse.service.JSONresponse.result));\n componentInstance.data = successfulResponse.service.JSONresponse.result;\n } else {\n componentInstance.data = successfulResponse.service.JSONresponse;\n }\n this.addSubcomponents();\n\n },\n (failedResponse: string) => {\n logger.debug(failedResponse);\n }).catch((e: any) => {\n logger.debug(\"Something went wrong when calling the service from: \" + serviceClass);\n logger.debug(e.message);\n });\n\n }\n\n }\n\n\n}\n\nPackage(\"org.qcobjects.controllers.grid\", [\n GridController,\n DataGridController\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { ClassFactory, Controller, New, Package, logger, Component } from \"qcobjects\";\n\ntype SliderParams = {\n dependencies: any[];\n component: Component;\n duration: number;\n slideIndex: number;\n interval: number | null;\n sliderHandlerName: string | null;\n};\n\nexport class SliderController extends Controller {\n slideIndex = 0;\n duration = 7100;\n interval: any = null;\n sliderHandlerName = \"\";\n _componentRoot: HTMLElement | ShadowRoot | undefined;\n component: Component;\n\n constructor({ component, dependencies = [], duration = 7100, slideIndex = 0, interval = null, sliderHandlerName = null }: SliderParams) {\n super({ component, dependencies, duration, slideIndex, interval, sliderHandlerName } as SliderParams);\n this.component = component;\n this._componentRoot = (component.shadowed) ? (component.shadowRoot) : (component.body);\n this.sliderHandlerName = \"slider_\" + this.component.__instanceID.toString();\n (global as any).set(this.sliderHandlerName, this);\n\n }\n\n\n stop() {\n if (this.interval != null) {\n clearInterval(this.interval);\n }\n }\n\n plusSlidesAndStop(n: number) {\n this.stop();\n this.plusSlides(n);\n }\n\n plusSlides(n: number) {\n this.showSlides(this.slideIndex += n);\n }\n\n currentSlide(n: number) {\n this.stop();\n this.showSlides(this.slideIndex = n);\n }\n\n automate() {\n this.interval = setInterval(() => {\n this.plusSlides(1);\n }, this.duration);\n }\n\n showSlides(n: number) {\n const slides = (this._componentRoot as any)?.subelements(\".qcoSlides\");\n const dots = (this._componentRoot as any)?.subelements(\".qcoSlider__dots--dot\");\n\n if (n > (slides.length - 1)) {\n this.slideIndex = 0;\n }\n if (n < 0) {\n this.slideIndex = 0;\n }\n slides.filter((slide: any, index: number) => { return index !== this.slideIndex; }).map((slide: any) => {\n\n return (New(ClassFactory(\"Fade\"), {})).apply(slide, 1, 0);\n });\n // eslint-disable-next-line no-unused-vars\n dots.filter((dot: any, index: number) => { return index !== this.slideIndex; }).map((dot: { classList: { remove: (arg0: string) => any; }; }) => {\n\n return dot.classList.remove(\"active\");\n });\n try {\n dots[this.slideIndex].classList.add(\"active\");\n } catch (e: any) {\n logger.debug(`Something went wrong when trying to activate a slide: ${this.slideIndex} - ${e.message}`);\n }\n setTimeout(() => {\n slides.filter((slide: any, index: number) => { return index !== this.slideIndex; }).map((slide: { style: { display: string; }; }) => {\n slide.style.display = \"none\";\n return slide.style.display;\n });\n try {\n slides[this.slideIndex].style.display = \"block\";\n (New(ClassFactory(\"Fade\"), {})).apply(slides[this.slideIndex], 0, 1);\n\n } catch (e: any) {\n logger.debug(`Something went wrong when trying to show a slide: ${this.slideIndex} - ${e.message}`);\n }\n }, 700);\n }\n\n fillDots() {\n const slides = (this._componentRoot as any)?.subelements(\".qcoSlides\");\n slides.map((slide: HTMLElement, index: number) => {\n const dotHTML = document.createElement(\"span\");\n const dotContent = ``;\n dotHTML.innerHTML = dotContent;\n\n return (this._componentRoot as any)?.subelements(\".qcoSlider__dots\")[0].append(dotHTML);\n });\n\n }\n\n done() {\n const slides = (this._componentRoot as any)?.subelements(\".qcoSlides\");\n slides.filter((slide: HTMLElement, index: number) => { return index !== this.slideIndex; }).map((slide: { style: { display: string; }; }) => {\n slide.style.display = \"none\";\n return slide.style.display;\n });\n setTimeout(() => {\n this.fillDots();\n this.slideIndex = 0;\n this.showSlides(this.slideIndex);\n this.automate();\n }, 3000);\n\n }\n\n}\n\n\nPackage(\"org.qcobjects.controllers.slider\", [\n\n SliderController\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Controller, serviceLoader, New, ClassFactory, logger, _DOMCreateElement, Tag } from \"qcobjects\";\nimport { FormField, ModalComponent } from \"./org.qcobjects.components\";\n\nexport class FormValidations extends Controller {\n getDefault() {\n return function (fieldName: string, dataValue: any, element: HTMLElement) {\n const _regex = {\n name: \"^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$\",\n email: \"^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$\"\n };\n const _pattern_ = (element.getAttribute(\"pattern\") || _regex[fieldName as keyof typeof _regex]);\n const pattern = new RegExp(_pattern_);\n return pattern.test(dataValue);\n };\n }\n\n}\n\nexport class FormController extends Controller {\n validations: any[] = [];\n formValidatorModal!: ModalComponent;\n serviceClass = \"\";\n formSettings = {\n backRouting: \"#\",\n loadingRouting: \"#loading\",\n nextRouting: \"#signupsuccessful\"\n };\n component: any;\n\n hasValidation(element: HTMLElement) {\n const fieldName = element.getAttribute(\"data-field\") as string;\n let _hasValidation = false;\n if (typeof this.validations !== \"undefined\"\n && Object.hasOwnProperty.call(this.validations, fieldName)) {\n _hasValidation = true;\n }\n return _hasValidation;\n }\n\n isInvalid(element: HTMLElement) {\n let _isInvalid = false;\n const fieldName = element.getAttribute(\"data-field\");\n const dataValue = this.component.data[fieldName as string];\n\n const _execValidation = (fieldName: string, dataValue: any, element: HTMLElement) => {\n\n return (typeof this.validations !== \"undefined\"\n && Object.hasOwnProperty.call(this.validations, fieldName)\n && this.validations[fieldName as keyof typeof this.validations].call(null, fieldName, dataValue, element));\n };\n\n if (typeof this.validations !== \"undefined\" && (\n !_execValidation(fieldName as string, dataValue, element)\n )) {\n _isInvalid = true;\n }\n return _isInvalid;\n }\n\n isValid(element: HTMLElement) {\n return !this.isInvalid(element);\n }\n\n save() {\n if (this.serviceClass !== \"\") {\n location.href = this.formSettings.loadingRouting;\n serviceLoader(New(ClassFactory(this.serviceClass), {\n data: this.component.data\n }), false).then(\n () => {\n // This will show the service response as a plain text\n console.log(\"DONE SERVICE COMPONENT\");\n location.href = this.formSettings.nextRouting;\n\n },\n (failedResponse: string) => {\n logger.debug(failedResponse);\n location.href = this.formSettings.backRouting;\n });\n } else {\n logger.debug(\"No service name declared on serviceClass property\");\n }\n\n }\n\n formSaveTouchHandler() {\n logger.debug(\"Saving data...\");\n const _componentRoot_ = (this.component.shadowed) ? ((this.component?.shadowRoot as ShadowRoot).host) : (this.component.body);\n (this.component).executeBindings();\n if (this.formValidatorModal != null) {\n const componentElementFields = _componentRoot_.subelements(\"*[data-field]\");\n const fieldsToValidate = componentElementFields.filter(\n (f: any) => this.hasValidation(f)\n );\n\n const _labelledby = function (parentElement: HTMLElement, element: HTMLElement) {\n const _arialabelledby = (parentElement: HTMLElement, element: HTMLElement) => {\n return (element.getAttribute(\"aria-labelledby\") !== null) ? ((element.getAttribute(\"aria-labelledby\") || \"\").split(\" \").map(\n\n e => (parentElement as any).subelements(`#${e}`).map((_e: any) => _e.innerHTML)\n ).join(\" \")) : (null);\n };\n\n return (_arialabelledby(parentElement, element)\n || element.getAttribute(\"aria-label\")\n || element.getAttribute(\"placeholder\")\n || element.getAttribute(\"name\")\n || element.getAttribute(\"data-field\"));\n };\n\n const _ariatitle = function (element: HTMLElement) {\n return (element.getAttribute(\"title\") || element.getAttribute(\"aria-title\") || \"\");\n };\n\n const invalidFields = fieldsToValidate.filter((f: any) => this.isInvalid(f));\n if (invalidFields.length > 0) {\n const validationMessage = `\n
                      \n Please verify the following incorrect fields:\n
                        \n
                        \n ${invalidFields.map((element: any) => \"
                      • \" + _labelledby(_componentRoot_ as HTMLElement, element) + \"
                        \" + _ariatitle(element) + \"
                      • \").join(\"\")}\n
                        \n
                      \n
                      \n`;\n this.formValidatorModal.body.subelements(\".validationMessage\")[0].innerHTML = validationMessage;\n this.formValidatorModal.modal();\n } else {\n this.save();\n }\n } else {\n logger.debug(\"Unable to find the modal validator...\");\n logger.debug(\"Saving data...\");\n this.save();\n }\n }\n\n constructor(o: any) {\n super(o);\n this.component = o.component;\n this.component = this.component.Cast(FormField);\n }\n\n done() {\n logger.debugEnabled = true;\n try {\n (this.component).createBindingEvents();\n const modalBody = _DOMCreateElement(\"div\");\n modalBody.className = \"modal_body\";\n this.formValidatorModal = New(ModalComponent, {\n body: modalBody,\n subcomponents: [],\n data: {\n content: \"
                      \"\n }\n });\n\n\n Tag(\".modal_body\").map((e: any) => document.body.removeChild(e));\n document.body.append(this.formValidatorModal.body);\n\n } catch (e: any) {\n logger.debug(`Unable to create the modal: ${e}`);\n }\n this.onpress(\".submit\", () => {\n this.formSaveTouchHandler();\n });\n\n }\n // eslint-disable-next-line no-unused-vars\n onpress(arg0: string, arg1: () => void) {\n throw new Error(\"Method not implemented.\");\n }\n\n\n}\n\nPackage(\"org.qcobjects.controllers.form\", [\n FormController,\n FormValidations\n\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { CONFIG, Controller, New, Package, SourceCSS, SourceJS } from \"qcobjects\";\ndeclare let SwaggerUIBundle: any;\ndeclare let SwaggerUIStandalonePreset: any;\nexport class SwaggerUIController extends Controller {\n component: any;\n dependencies: any;\n\n startSwaggerUI() {\n // Begin Swagger UI call region\n if (typeof SwaggerUIBundle !== \"undefined\") {\n\n const ui = SwaggerUIBundle({\n url: CONFIG.get(\"swagger-ui-url\", \"https://petstore.swagger.io/v2/swagger.json\"),\n dom_id: \"#\" + CONFIG.get(\"swagger-ui-dom_id\", \"swagger-ui\"),\n deepLinking: true,\n presets: [\n SwaggerUIBundle.presets.apis,\n SwaggerUIStandalonePreset\n ],\n plugins: [\n SwaggerUIBundle.plugins.DownloadUrl\n ],\n layout: \"StandaloneLayout\"\n });\n // End Swagger UI call region\n (window as any).ui = ui;\n }\n\n }\n\n done() {\n this.component.body.innerHTML = \"
                      \";\n const swaggerUIPackagePath = CONFIG.get(\"swagger-ui-package-path\", \"node_modules/swagger-ui-dist/\");\n\n this.dependencies?.push(New(SourceJS, {\n url: swaggerUIPackagePath + \"swagger-ui-standalone-preset.js\",\n external: CONFIG.get(\"swagger-ui-external\", false)\n }));\n this.dependencies?.push(New(SourceCSS, {\n url: swaggerUIPackagePath + \"swagger-ui.css\",\n external: CONFIG.get(\"swagger-ui-external\", false)\n }));\n this.dependencies?.push(New(SourceJS, {\n url: swaggerUIPackagePath + \"swagger-ui-bundle.js\",\n external: CONFIG.get(\"swagger-ui-external\", false),\n done: () => {\n this.startSwaggerUI();\n }\n }));\n }\n\n}\n\nPackage(\"org.qcobjects.controllers.swagger\", [\n SwaggerUIController\n\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, Controller } from \"qcobjects\";\n\nexport class ModalController extends Controller {\n component: any;\n\n done() {\n const component = this.component;\n component.body.innerHTML = component.body.innerHTML.replace(\"/{{content}}/g\", component.submodal.template);\n\n }\n\n}\n\nPackage(\"org.qcobjects.modal.controllers\", [\n ModalController\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\nimport { Package, View } from \"qcobjects\";\n\n\nexport class GridView extends View {\n\n\n}\n\n\nPackage(\"org.qcobjects.views\", [\n\n GridView\n]);\n\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\n\nimport { Package, InheritClass } from \"qcobjects\";\n\nexport class CanvasTool extends InheritClass {\n\n drawImageFilled(img: HTMLImageElement, canvas: HTMLCanvasElement, zoom = 1, px = 0, py = 0) {\n // get the scale\n let scale = Math.max(canvas.width / img.width, canvas.height / img.height);\n scale = scale * zoom;\n // get the top left position of the image\n const x = (canvas.width / 2) - (img.width / 2) * scale;\n const y = (canvas.height / 2) - (img.height / 2) * scale;\n const ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(img, (px + x), (py + y), img.width * scale, img.height * scale);\n }\n\n getImageResized(img: HTMLImageElement, width: number, height: number, resizedImage: HTMLImageElement, zoom = 1, px = 0, py = 0) {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n canvas.style.width = width.toString();\n canvas.style.height = height.toString();\n this.drawImageFilled(img, canvas, zoom, px, py);\n resizedImage.src = canvas.toDataURL(\"image/png\");\n return canvas;\n }\n\n}\n\nPackage(\"org.qcobjects.tools.canvas\", [\n CanvasTool\n]);", "/* eslint-disable array-callback-return */\n/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n\"use strict\";\n\nimport { CONFIG, InheritClass, New, Package, SourceCSS, Tag } from \"qcobjects\";\nimport { Fade, MoveXInFromLeft, MoveXInFromRight, MoveYInFromBottom } from \"./org.qcobjects.effects\";\nexport class BasicLayout extends InheritClass {\n dependencies: any[] = [];\n\n constructor({ component = null, dependencies = [] }) {\n super({ component, dependencies });\n }\n\n load() {\n this.dependencies.push(New(SourceCSS, {\n external: !(CONFIG.get(\"useLocalSDK\", false)),\n url: (CONFIG.get(\"useLocalSDK\", false)) ? (\"css/basic-layout.css\") : (CONFIG.get(\"remoteSDKPath\", false) + \"css/basic-layout.css\")\n }));\n }\n\n coloredBorder() {\n /*\n * A helper function to visualize the layout borders\n * Usage: BasicLayout.coloredBorder()\n */\n setTimeout(function () {\n Tag(\"nav\").map((element: HTMLElement) => { element.style.border = \"20px solid #3333\"; });\n Tag(\"nav\").map((element: HTMLElement) => { element.style.backgroundColor = \"#129999\"; });\n Tag(\"component>footer\").map((element: HTMLElement) => { element.style.background = \"#876\"; });\n Tag(\"component>div\").map((element: HTMLElement) => { element.style.border = \"3px dashed #fff\"; });\n Tag(\"component>section\").map((element: HTMLElement) => { element.style.border = \"3px solid #000\"; });\n Tag(\"component>section\").map((element: HTMLElement) => { element.style.backgroundColor = \"#fffaaa\"; });\n\n Tag(\"component>article\").map((element: HTMLElement) => { element.style.border = \"3px dotted #000\"; });\n Tag(\"component>header\").map((element: HTMLElement) => { element.style.background = \"#789\"; });\n Tag(\"component>footer\").map((element: HTMLElement) => { element.style.background = \"#876\"; });\n Tag(\"component>article:nth-child(1)\").map((element: HTMLElement) => { element.style.border = \"1px solid #444\"; });\n Tag(\"component>article:nth-child(1)\").map((element: HTMLElement) => { element.style.backgroundColor = \"#555aaa\"; });\n Tag(\"component>article:nth-child(2)\").map((element: HTMLElement) => { element.style.backgroundColor = \"#aaa333\"; });\n Tag(\"component>article:nth-child(3)\").map((element: HTMLElement) => { element.style.backgroundColor = \"#54da82\"; });\n Tag(\"*\").map((element: HTMLElement) => { element.style.color = \"#fff\"; });\n\n\n Tag(\"component>article\").map((element: HTMLElement) => Fade.apply(element, 0, 1));\n Tag(\"component>footer\").map((element: HTMLElement) => Fade.apply(element, 0, 1));\n Tag(\"component>header\").map((element: HTMLElement) => Fade.apply(element, 0, 1));\n Tag(\"nav\").map((element: HTMLElement) => { element.style.display = \"block\"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); MoveXInFromLeft.apply(element); });\n Tag(\"component>article\").map((element: HTMLElement) => { element.style.display = \"block\"; element.style.height = element.offsetParent?.scrollHeight.toString() || element.clientHeight.toString(); MoveYInFromBottom.apply(element); });\n Tag(\"component>article:nth-child(2)\").map((element: HTMLElement) => { element.style.display = \"block\"; element.style.width = element.offsetParent?.scrollWidth.toString() || element.clientWidth.toString(); MoveXInFromRight.apply(element); });\n }, 300);\n }\n\n\n}\n\nPackage(\"org.qcobjects.tools.layouts\", [\n BasicLayout\n\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { CONFIG, ComplexStorageCache, InheritClass, New, Package, _Crypt, global } from \"qcobjects\";\n\n\ntype TGlobalUser = { username: string, token: string, id: string, priority: number };\n\nexport class SessionUserToken extends InheritClass {\n static user = {};\n __cache__: ComplexStorageCache;\n __instanceID: any;\n\n constructor(o: any) {\n super(o);\n\n const __instance__ = this;\n this.__cache__ = new ComplexStorageCache({\n index: __instance__.__instanceID.toString(),\n load() {\n let __token__;\n if (typeof navigator !== \"undefined\" && typeof origin !== \"undefined\") {\n __token__ = _Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin);\n } else {\n __token__ = _Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, CONFIG.get(\"domain\", \"localhost\"));\n }\n SessionUserToken.user = {\n priority: __instance__.__instanceID.toString(),\n token: __token__\n };\n return SessionUserToken.user;\n },\n alternate(cacheController: any) {\n SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); // setting dataObject with the cached value \n }\n });\n\n }\n\n static generateIndex(s: any) {\n return (typeof Buffer !== \"undefined\") ? (Buffer.from(s, \"ascii\").toString(\"base64\")) : (btoa(s));\n }\n\n static getGlobalUser(...args: any[]): TGlobalUser {\n const username = [args].join(\"|\");\n const __index__ = \"userToken_\" + SessionUserToken.generateIndex(username);\n if (typeof (global as any).get(__index__) === \"undefined\" || (global as any).get(__index__) === null) {\n (global as any).set(__index__, New(SessionUserToken, {\n username\n }));\n }\n SessionUserToken.user = (global as any).get(__index__).user;\n return global.get(__index__).user as TGlobalUser;\n }\n\n static getGlobalUserToken(...args: any[]): string {\n return SessionUserToken.getGlobalUser(args).token;\n }\n\n static getGlobalUserId(...args: any[]) {\n return SessionUserToken.getGlobalUser(args).id;\n }\n\n static getGlobalUserPriority(...args: any[]) {\n return SessionUserToken.getGlobalUser(args).priority;\n }\n\n static getLoginCredentialsToken(username: string, password: string): string {\n return _Crypt.encrypt(`${username}${password}`, SessionUserToken.getGlobalUserToken(username)) as string;\n }\n\n static closeGlobalSession(...args: any[]) {\n SessionUserToken.getGlobalUser(args);\n const username = [args].join(\"|\");\n const __index__ = \"userToken_\" + SessionUserToken.generateIndex(username);\n if (typeof (global as any).get(__index__) !== \"undefined\") {\n (global as any).get(__index__).__cache__.clear();\n (global as any).set(__index__, null);\n SessionUserToken.user = {};\n }\n }\n}\n\nPackage(\"org.qcobjects.cloud.auth.session.usertoken\", [\n SessionUserToken\n]);\n", "/**\n * QCObjects SDK 2.5\n * ________________\n *\n * Author: Jean Machuca \n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n */\n\"use strict\";\nimport { Package, InheritClass, _DataStringify } from \"qcobjects\";\nimport { SessionUserToken } from \"./org.qcobjects.cloud.auth.session.usertoken\";\n\nexport class SessionData extends InheritClass {\n\n __session_container__: any = null;\n sessionData: any;\n\n /**\n * Sets the session container\n * \n * @param {*} sessionContainer1, sessionContainer2, ...\n *\n */\n setSessionContainer() {\n // eslint-disable-next-line prefer-rest-params\n this.__session_container__ = [...arguments];\n }\n\n /**\n * Gets the session container\n *\n * @return {*} sessionContainer\n */\n getSessionContainer() {\n if (typeof this.__session_container__ === \"undefined\" || this.__session_container__ === null) {\n throw new Error(\"You need to set a session container first: sessionData.setSessionContainer(...arguments)\");\n }\n return this.__session_container__;\n }\n\n /**\n * Gets the session data\n *\n * @return {*} sessionData\n */\n getSessionData(...args: any[]) {\n\n const s = sessionStorage.getItem(`${this.index(args)}`);\n let sessionData;\n if (s !== null) {\n sessionData = JSON.parse(s);\n }\n if (typeof sessionData === \"undefined\" || sessionData === null) {\n sessionData = {};\n }\n return sessionData;\n }\n\n /**\n * Returns an index of the session\n * \n * @param {string} valueForIndex\n * @return {string} index\n * @example sessionInstance.index(\"me@email.com\", \"myusername\")\n * \n */\n index(...args: any[]) {\n if (typeof SessionUserToken === \"undefined\") {\n throw new Error(\"You need to import SessionUserToken first: Import (\\\"org.qcobjects.cloud.auth.session.usertoken\\\")\");\n }\n return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`;\n }\n\n /**\n * Saves the session instance\n *\n */\n save(...args: any[]) {\n const s = _DataStringify(this.sessionData);\n sessionStorage.setItem(`${this.index(args)}`, s);\n }\n\n\n /**\n *\n * Gets the session value\n *\n * @param {*} name\n * @param {*} defaultValue\n * @return {*} \n */\n get(name: string, defaultValue: any) {\n const sessionData = this.getSessionData(this.getSessionContainer());\n return (typeof sessionData[name] !== \"undefined\") ? (sessionData[name]) : (defaultValue);\n }\n\n /**\n *\n * Sets the session value\n * \n * @param {*} name\n * @param {*} value\n */\n set(name: string, value: any) {\n const sessionContainer = this.getSessionContainer();\n const sessionData = this.getSessionData(sessionContainer);\n this.sessionData = sessionData;\n this.sessionData[name] = value;\n this.save(sessionContainer);\n }\n\n}\n\nPackage(\"org.qcobjects.cloud.auth.session.data\", [\n SessionData\n\n]);\n\n", "import * as sdk from \"./QCObjects-SDK\";\nexport default sdk;"], + "mappings": "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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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", + "names": ["CONFIG", "global", "global", "Package", "Package", "Package", "Component", "CONFIG", "Package", "Package", "Effect", "logger", "Package", "Effect", "logger", "Package", "Package", "Package", "Package", "logger", "logger", "Package", "Component", "CONFIG", "Package", "Package", "Component", "Component", "Package", "Component", "Package", "Component", "Package", "Package", "Component", "Component", "Package", "Package", "Component", "_DOMCreateElement", "New", "Component", "_DOMCreateElement", "element", "New", "Package", "Package", "Component", "CONFIG", "logger", "global", "Component", "CONFIG", "global", "logger", "component", "Package", "Package", "Package", "Package", "Controller", "logger", "CONFIG", "_DOMCreateElement", "New", "ClassFactory", "ComponentURI", "Controller", "logger", "CONFIG", "_DOMCreateElement", "New", "ClassFactory", "ComponentURI", "Package", "Package", "Controller", "_DOMCreateElement", "logger", "_DataStringify", "ClassFactory", "New", "ComponentURI", "CONFIG", "serviceLoader", "Controller", "_DOMCreateElement", "logger", "_DataStringify", "list", "ClassFactory", "New", "ComponentURI", "CONFIG", "serviceLoader", "Package", "ClassFactory", "Controller", "New", "Package", "logger", "Controller", "New", "ClassFactory", "logger", "Package", "Package", "Controller", "serviceLoader", "New", "ClassFactory", "logger", "_DOMCreateElement", "Tag", "Controller", "fieldName", "dataValue", "element", "serviceLoader", "New", "ClassFactory", "logger", "parentElement", "_DOMCreateElement", "Tag", "Package", "CONFIG", "Controller", "New", "Package", "Controller", "CONFIG", "New", "Package", "Package", "Controller", "Controller", "Package", "Package", "Package", "Package", "InheritClass", "InheritClass", "Package", "CONFIG", "InheritClass", "New", "Package", "SourceCSS", "Tag", "InheritClass", "New", "SourceCSS", "CONFIG", "Tag", "Package", "CONFIG", "InheritClass", "New", "Package", "global", "InheritClass", "CONFIG", "global", "New", "Package", "Package", "InheritClass", "_DataStringify", "InheritClass", "_DataStringify", "Package", "_top", "CONFIG"] +} diff --git a/public/index.cjs b/public/index.cjs deleted file mode 100644 index 54ae179..0000000 --- a/public/index.cjs +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const sdk = require("./QCObjects-SDK"); -module.exports = sdk; diff --git a/public/index.d.ts b/public/index.d.ts deleted file mode 100644 index f770c85..0000000 --- a/public/index.d.ts +++ /dev/null @@ -1,79 +0,0 @@ -declare module "QCObjects-SDK" { - const _top: {}; - export default _top; -} -declare module "index" { - import * as sdk from "QCObjects-SDK"; - export default sdk; -} -declare module "js/org.qcobjects.cloud.auth.session.usertoken" { - const SessionUserToken: any; - export { SessionUserToken }; -} -declare module "js/org.qcobjects.cloud.auth.session.data" { } -declare module "js/org.qcobjects.components.grid" { - const GridComponent: any; - const GridItemComponent: any; - export { GridComponent, GridItemComponent }; -} -declare module "js/org.qcobjects.components.list" { - const ListComponent: any; - const ListItemComponent: any; - export { ListComponent, ListItemComponent }; -} -declare module "js/org.qcobjects.effects" { - const Fade: any; - const Move: any; - const MoveXInFromRight: any; - const MoveXInFromLeft: any; - const MoveYInFromBottom: any; - const MoveYInFromTop: any; - const RotateX: any; - const RotateY: any; - const RotateZ: any; - const Rotate: any; - const Radius: any; - const Resize: any; - const WipeLeft: any; - const WipeRight: any; - const WipeUp: any; - const WipeDown: any; - const ModalFade: any; - const ModalMoveDown: any; - const ModalMoveUp: any; - export { Fade, Move, MoveXInFromRight, MoveXInFromLeft, MoveYInFromBottom, MoveYInFromTop, RotateX, RotateY, RotateZ, Rotate, Radius, Resize, WipeLeft, WipeRight, WipeUp, WipeDown, ModalFade, ModalMoveDown, ModalMoveUp }; -} -declare module "js/org.qcobjects.components.notifications" { } -declare module "js/org.qcobjects.components.slider" { } -declare module "js/org.qcobjects.components.splashscreen" { - const SplashScreenComponent: any; - const VideoSplashScreenComponent: any; - const CubeSplashScreenComponent: any; - export { SplashScreenComponent, VideoSplashScreenComponent, CubeSplashScreenComponent }; -} -declare module "js/org.qcobjects.components" { - const FormField: any; - const ShadowedComponent: any; - const ButtonField: any; - const InputField: any; - const TextField: any; - const EmailField: any; - const ModalEnclosureComponent: any; - const ModalComponent: any; - const SwaggerUIComponent: any; - export { FormField, ShadowedComponent, ButtonField, InputField, TextField, EmailField, ModalComponent, ModalEnclosureComponent, SwaggerUIComponent }; -} -declare module "js/org.qcobjects.controllers.form" { } -declare module "js/org.qcobjects.controllers.grid" { } -declare module "js/org.qcobjects.controllers.list" { } -declare module "js/org.qcobjects.controllers.slider" { } -declare module "js/org.qcobjects.controllers.swagger" { } -declare module "js/org.qcobjects.controllers" { } -declare module "js/org.qcobjects.i18n_messages" { } -declare module "js/org.qcobjects.modal.controllers" { } -declare module "js/org.qcobjects.modal.effects" { } -declare module "js/org.qcobjects.models" { } -declare module "js/org.qcobjects.tools.canvas" { } -declare module "js/org.qcobjects.tools.layouts" { } -declare module "js/org.qcobjects.tools" { } -declare module "js/org.qcobjects.views" { } diff --git a/public/index.js b/public/index.js deleted file mode 100644 index b145465..0000000 --- a/public/index.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const sdk = __importStar(require("./QCObjects-SDK")); -exports.default = sdk; diff --git a/public/index.mjs b/public/index.mjs deleted file mode 100644 index ad2da3a..0000000 --- a/public/index.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import sdk from "./QCObjects-SDK.js"; -export default sdk; diff --git a/public/templates/components/modalyoulose.tpl.html b/public/templates/components/modalyoulose.tpl.html deleted file mode 100644 index d2108e7..0000000 --- a/public/templates/components/modalyoulose.tpl.html +++ /dev/null @@ -1,3 +0,0 @@ -
                      -

                      YOU LOSE!

                      -
                      diff --git a/public/templates/components/modalyouwin.tpl.html b/public/templates/components/modalyouwin.tpl.html deleted file mode 100644 index 4a91baa..0000000 --- a/public/templates/components/modalyouwin.tpl.html +++ /dev/null @@ -1,4 +0,0 @@ -
                      -

                      Title

                      -

                      YOU WIN!

                      -
                      diff --git a/public/templates/components/splashscreen.tpl.html b/public/templates/components/splashscreen.tpl.html deleted file mode 100644 index 450b936..0000000 --- a/public/templates/components/splashscreen.tpl.html +++ /dev/null @@ -1,128 +0,0 @@ - -
                      -
                      - - -
                      -
                      diff --git a/public/templates/components/swagger-ui.tpl.html b/public/templates/components/swagger-ui.tpl.html deleted file mode 100644 index fbfe9ad..0000000 --- a/public/templates/components/swagger-ui.tpl.html +++ /dev/null @@ -1,22 +0,0 @@ - -
                      diff --git a/public/types/index.d.ts b/public/types/index.d.ts index f770c85..ccf4f0d 100644 --- a/public/types/index.d.ts +++ b/public/types/index.d.ts @@ -1,79 +1,698 @@ -declare module "QCObjects-SDK" { - const _top: {}; - export default _top; +declare module "js/org.qcobjects.i18n_messages" { + import { InheritClass } from "qcobjects"; + export class i18n_messages extends InheritClass { + constructor({ messages }: { + messages?: never[] | undefined; + }); + _load_i18n_packages_(): any; + } } -declare module "index" { - import * as sdk from "QCObjects-SDK"; - export default sdk; +declare module "js/org.qcobjects.models" { + import { VO } from "qcobjects"; + export class Contact extends VO { + } } -declare module "js/org.qcobjects.cloud.auth.session.usertoken" { - const SessionUserToken: any; - export { SessionUserToken }; +declare module "js/org.qcobjects.effects.base" { + import { Effect } from "qcobjects"; + export type MoveElement = HTMLElement & { + width?: number; + height?: number; + }; + export class Fade extends Effect { + duration: number; + static duration: any; + constructor(o?: { + duration: number; + }); + apply(element: HTMLElement, alphaFrom: number, alphaTo: number): void; + static apply(element: HTMLElement, alphaFrom: number, alphaTo: number): void; + static animate(arg0: { + duration: any; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class Move extends Effect { + duration: number; + static duration: any; + static apply(element: MoveElement, xfrom: number, yfrom: number, xto: number, yto: number): void; + static animate(arg0: { + duration: any; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } +} +declare module "js/org.qcobjects.effects.extended" { + import { Effect } from "qcobjects"; + import { Move, MoveElement } from "js/org.qcobjects.effects.base"; + export class MoveXInFromRight extends Move { + duration: number; + static apply(element: MoveElement): void; + } + export class MoveXInFromLeft extends Move { + duration: number; + static apply(element: MoveElement): void; + } + export class MoveYInFromBottom extends Move { + duration: number; + static apply(element: MoveElement): void; + } + export class MoveYInFromTop extends Move { + duration: number; + static apply(element: MoveElement): void; + } + export class RotateX extends Effect { + duration: number; + static duration: any; + static apply(element: HTMLElement, angleFrom: number, angleTo: number): void; + static animate(arg0: { + duration: any; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class RotateY extends Effect { + duration: number; + static duration: any; + static apply(element: HTMLElement, angleFrom: number, angleTo: number): void; + static animate(arg0: { + duration: any; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class RotateZ extends Effect { + duration: number; + apply(element: HTMLElement, angleFrom: number, angleTo: number): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class Rotate extends Effect { + duration: number; + apply(element: HTMLElement, angleFrom: number, angleTo: number): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class Radius extends Effect { + duration: number; + apply(element: HTMLElement, radiusFrom: number, radiusTo: number): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class Resize extends Effect { + duration: number; + apply(element: HTMLElement, scaleFrom: number, scaleTo: number): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class WipeLeft extends Effect { + duration: number; + apply(element: HTMLElement, scaleFrom: number, scaleTo: number): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class WipeRight extends Effect { + duration: number; + apply(element: HTMLElement, scaleFrom: number, scaleTo: number): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class WipeUp extends Effect { + duration: number; + apply(element: HTMLElement, scaleFrom: number, scaleTo: number): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } + export class WipeDown extends Effect { + duration: number; + apply(element: HTMLElement, scaleFrom: number, scaleTo: number): void; + animate(arg0: { + duration: number; + timing(timeFraction: any): any; + draw(progress: any): void; + }): void; + } +} +declare module "js/org.qcobjects.modal.effects" { + import { Fade, Move } from "js/org.qcobjects.effects"; + export class ModalFade extends Fade { + duration: number; + } + export class ModalMoveUp extends Move { + duration: number; + } + export class ModalMoveDown extends Move { + duration: number; + } +} +declare module "js/org.qcobjects.effects" { + export { Fade, Move } from "js/org.qcobjects.effects.base"; + export { MoveXInFromRight, MoveXInFromLeft, MoveYInFromBottom, MoveYInFromTop, RotateX, RotateY, RotateZ, Rotate, Radius, Resize, WipeLeft, WipeRight, WipeUp, WipeDown } from "js/org.qcobjects.effects.extended"; + export { ModalFade, ModalMoveUp, ModalMoveDown } from "js/org.qcobjects.modal.effects"; +} +declare module "js/org.qcobjects.base.components" { + import { Component } from "qcobjects"; + export type FieldComponentParams = { + name: string; + body: any; + data: any; + basePath?: string; + fieldType: string; + }; + export class FormField extends Component { + fieldType: string; + cached: boolean; + reload: boolean; + body: any; + name: string; + data: any; + constructor(o: FieldComponentParams); + createBindingEvents(): void; + executeBinding(_obj: HTMLElement & { + value: any; + }): void; + executeBindings(): void; + done(standardResponse: any): Promise; + } +} +declare module "js/org.qcobjects.components" { + import { Component } from "qcobjects"; + import { FormField, FieldComponentParams } from "js/org.qcobjects.base.components"; + export { FormField }; + export class ShadowedComponent extends Component { + container: null; + shadowed: boolean; + cached: boolean; + controller: null; + view: null; + data: {}; + constructor(o: FieldComponentParams); + } + export class ButtonField extends FormField { + constructor(o: FieldComponentParams); + } + export class InputField extends FormField { + constructor(o: FieldComponentParams); + } + export class TextField extends FormField { + constructor(o: FieldComponentParams); + } + export class EmailField extends FormField { + constructor(o: FieldComponentParams); + } + export class ModalEnclosureComponent extends Component { + name: string; + tplsource: string; + cached: boolean; + basePath: any; + template: string; + data: {}; + constructor(o: FieldComponentParams); + } + export class ModalComponent extends Component { + name: string; + cached: boolean; + modalEnclosureComponentClass: string; + controller: null; + view: null; + tplsource: string; + closeOnClickOutside: boolean; + data: { + content: string; + modalId: number; + }; + submodal: null; + __instanceID: number; + basePath: any; + subcomponents: any; + body: any; + templateURI: any; + constructor(o: FieldComponentParams); + modal(): void; + close(): void; + rebuild(): any; + } + export class SwaggerUIComponent extends Component { + cached: boolean; + basePath: any; + tplextension: string; + name: string; + } } -declare module "js/org.qcobjects.cloud.auth.session.data" { } declare module "js/org.qcobjects.components.grid" { - const GridComponent: any; - const GridItemComponent: any; - export { GridComponent, GridItemComponent }; + import { Component } from "qcobjects"; + export class GridItemComponent extends Component { + name: string; + shadowed: boolean; + tplsource: string; + template: string; + cached: boolean; + } + export class GridComponent extends Component { + name: string; + cached: boolean; + view: null; + shadowed: boolean; + rows: number; + cols: number; + templateURI: string; + data: {}; + tplsource: string; + template: string; + body: any; + constructor(o: any); + } } declare module "js/org.qcobjects.components.list" { - const ListComponent: any; - const ListItemComponent: any; - export { ListComponent, ListItemComponent }; + import { Component } from "qcobjects"; + export class ListItemComponent extends Component { + shadowed: boolean; + tplsource: string; + template: string; + cached: boolean; + constructor(o: any); + } + export class ListComponent extends Component { + data: any; + shadowed: boolean; + tplsource: string; + template: string; + body: any; + shadowRoot: HTMLElement | undefined; + rows: string | number | null; + subcomponents: never[]; + done: any; + serviceData: any; + constructor(o: any); + } +} +declare module "js/org.qcobjects.components.slider" { + import { Component } from "qcobjects"; + export class SlideListComponent extends Component { + tplsource: string; + template: string; + name: string; + body: any; + constructor(o: any); + } + export class SlideItemComponent extends Component { + effectClass: string; + name: string; + data: any; + template: string; + tplsource: string; + constructor(o: any); + } + export class SliderComponent extends Component { + name: string; + template: string; + tplsource: string; + shadowed: boolean; + data: any; + body: any; + __instanceID: any; + constructor(o: any); + } +} +declare module "js/org.qcobjects.components.notifications" { + import { Component } from "qcobjects"; + export class NotificationComponent extends Component { + cached: boolean; + tplsource: string; + shadowed: boolean; + kinds: string[]; + template: string; + constructor(o: any); + display(element: HTMLElement): void; + static success(message: string): void; + static danger(message: string): void; + static info(message: string): void; + static warning(message: string): void; + } } -declare module "js/org.qcobjects.effects" { - const Fade: any; - const Move: any; - const MoveXInFromRight: any; - const MoveXInFromLeft: any; - const MoveYInFromBottom: any; - const MoveYInFromTop: any; - const RotateX: any; - const RotateY: any; - const RotateZ: any; - const Rotate: any; - const Radius: any; - const Resize: any; - const WipeLeft: any; - const WipeRight: any; - const WipeUp: any; - const WipeDown: any; - const ModalFade: any; - const ModalMoveDown: any; - const ModalMoveUp: any; - export { Fade, Move, MoveXInFromRight, MoveXInFromLeft, MoveYInFromBottom, MoveYInFromTop, RotateX, RotateY, RotateZ, Rotate, Radius, Resize, WipeLeft, WipeRight, WipeUp, WipeDown, ModalFade, ModalMoveDown, ModalMoveUp }; -} -declare module "js/org.qcobjects.components.notifications" { } -declare module "js/org.qcobjects.components.slider" { } declare module "js/org.qcobjects.components.splashscreen" { - const SplashScreenComponent: any; - const VideoSplashScreenComponent: any; - const CubeSplashScreenComponent: any; - export { SplashScreenComponent, VideoSplashScreenComponent, CubeSplashScreenComponent }; + import { Component } from "qcobjects"; + type SplashScreenParams = { + name: string; + basePath: string; + data: any; + body: any; + }; + export class SplashScreenComponent extends Component { + _enabled_: boolean; + _bgcolor: string; + cached: boolean; + shadowed: boolean; + body: any; + shadowRoot: any; + constructor(component: SplashScreenParams); + addComponentHelper(arg0: { + (): void; + executed: boolean; + }): void; + } + export class VideoSplashScreenComponent extends SplashScreenComponent { + cached: boolean; + shadowed: boolean; + tplsource: string; + template: string; + constructor(o: SplashScreenParams); + } + export class CubeSplashScreenComponent extends SplashScreenComponent { + cached: boolean; + shadowed: boolean; + tplsource: string; + template: string; + constructor(o: SplashScreenParams); + } +} +declare module "js/org.qcobjects.controllers" { + import { Controller } from "qcobjects"; + export class GenericController extends Controller { + } +} +declare module "js/org.qcobjects.controllers.list" { + import { Controller } from "qcobjects"; + import { ListComponent } from "js/org.qcobjects.components.list"; + export type ListControllerParams = { + component: ListComponent; + valueField: string | undefined; + labelField: string | undefined; + dependencies: any[]; + }; + export class ListController extends Controller { + __instanceID: number; + component: ListComponent; + valueField: string | undefined; + labelField: string | undefined; + rows: number | string | null; + cols: number; + _componentRoot: HTMLElement | undefined; + constructor({ component, dependencies, valueField, labelField }: ListControllerParams); + getPageIndex(page: number, totalPage: number, totalElements: number): number[]; + addSubcomponents(): void; + cssGrid(): void; + done(): void; + } +} +declare module "js/org.qcobjects.controllers.grid" { + import { Controller, Component } from "qcobjects"; + type DataGridControllerParams = { + component: Component; + rows: number | string | null; + cols: number | string | null; + }; + export class GridController extends Controller { + __instanceID: number; + rows: number | string | null; + cols: number | string | null; + component: any; + constructor(controller: any); + cssGrid(): void; + done(): void; + } + export class DataGridController extends Controller { + __instanceID: number; + rows: number | string | null; + cols: number | string | null; + _componentRoot: HTMLElement | ShadowRoot | undefined; + component: any; + constructor(controller: DataGridControllerParams); + getPageIndex(page: number, totalPage: number, totalElements: number): number[]; + addSubcomponents(): void; + cssGrid(): void; + done(): void; + } +} +declare module "js/org.qcobjects.controllers.slider" { + import { Controller, Component } from "qcobjects"; + type SliderParams = { + dependencies: any[]; + component: Component; + duration: number; + slideIndex: number; + interval: number | null; + sliderHandlerName: string | null; + }; + export class SliderController extends Controller { + slideIndex: number; + duration: number; + interval: any; + sliderHandlerName: string; + _componentRoot: HTMLElement | ShadowRoot | undefined; + component: Component; + constructor({ component, dependencies, duration, slideIndex, interval, sliderHandlerName }: SliderParams); + stop(): void; + plusSlidesAndStop(n: number): void; + plusSlides(n: number): void; + currentSlide(n: number): void; + automate(): void; + showSlides(n: number): void; + fillDots(): void; + done(): void; + } +} +declare module "js/org.qcobjects.controllers.form" { + import { Controller } from "qcobjects"; + import { ModalComponent } from "js/org.qcobjects.components"; + export class FormValidations extends Controller { + getDefault(): (fieldName: string, dataValue: any, element: HTMLElement) => boolean; + } + export class FormController extends Controller { + validations: any[]; + formValidatorModal: ModalComponent; + serviceClass: string; + formSettings: { + backRouting: string; + loadingRouting: string; + nextRouting: string; + }; + component: any; + hasValidation(element: HTMLElement): boolean; + isInvalid(element: HTMLElement): boolean; + isValid(element: HTMLElement): boolean; + save(): void; + formSaveTouchHandler(): void; + constructor(o: any); + done(): void; + onpress(arg0: string, arg1: () => void): void; + } +} +declare module "js/org.qcobjects.controllers.swagger" { + import { Controller } from "qcobjects"; + export class SwaggerUIController extends Controller { + component: any; + dependencies: any; + startSwaggerUI(): void; + done(): void; + } +} +declare module "js/org.qcobjects.modal.controllers" { + import { Controller } from "qcobjects"; + export class ModalController extends Controller { + component: any; + done(): void; + } +} +declare module "js/org.qcobjects.views" { + import { View } from "qcobjects"; + export class GridView extends View { + } +} +declare module "js/org.qcobjects.tools.canvas" { + import { InheritClass } from "qcobjects"; + export class CanvasTool extends InheritClass { + drawImageFilled(img: HTMLImageElement, canvas: HTMLCanvasElement, zoom?: number, px?: number, py?: number): void; + getImageResized(img: HTMLImageElement, width: number, height: number, resizedImage: HTMLImageElement, zoom?: number, px?: number, py?: number): HTMLCanvasElement; + } +} +declare module "js/org.qcobjects.tools.layouts" { + import { InheritClass } from "qcobjects"; + export class BasicLayout extends InheritClass { + dependencies: any[]; + constructor({ component, dependencies }: { + component?: null | undefined; + dependencies?: never[] | undefined; + }); + load(): void; + coloredBorder(): void; + } +} +declare module "js/org.qcobjects.cloud.auth.session.usertoken" { + import { ComplexStorageCache, InheritClass } from "qcobjects"; + type TGlobalUser = { + username: string; + token: string; + id: string; + priority: number; + }; + export class SessionUserToken extends InheritClass { + static user: {}; + __cache__: ComplexStorageCache; + __instanceID: any; + constructor(o: any); + static generateIndex(s: any): string; + static getGlobalUser(...args: any[]): TGlobalUser; + static getGlobalUserToken(...args: any[]): string; + static getGlobalUserId(...args: any[]): string; + static getGlobalUserPriority(...args: any[]): number; + static getLoginCredentialsToken(username: string, password: string): string; + static closeGlobalSession(...args: any[]): void; + } +} +declare module "js/org.qcobjects.cloud.auth.session.data" { + import { InheritClass } from "qcobjects"; + export class SessionData extends InheritClass { + __session_container__: any; + sessionData: any; + /** + * Sets the session container + * + * @param {*} sessionContainer1, sessionContainer2, ... + * + */ + setSessionContainer(): void; + /** + * Gets the session container + * + * @return {*} sessionContainer + */ + getSessionContainer(): any; + /** + * Gets the session data + * + * @return {*} sessionData + */ + getSessionData(...args: any[]): any; + /** + * Returns an index of the session + * + * @param {string} valueForIndex + * @return {string} index + * @example sessionInstance.index("me@email.com", "myusername") + * + */ + index(...args: any[]): string; + /** + * Saves the session instance + * + */ + save(...args: any[]): void; + /** + * + * Gets the session value + * + * @param {*} name + * @param {*} defaultValue + * @return {*} + */ + get(name: string, defaultValue: any): any; + /** + * + * Sets the session value + * + * @param {*} name + * @param {*} value + */ + set(name: string, value: any): void; + } +} +declare module "QCObjects-SDK" { + /** + * QCObjects SDK 2.5 + * ________________ + * + * Author: Jean Machuca + * + * Cross Browser Javascript Framework for MVC Patterns + * QuickCorp/QCObjects is licensed under the + * GNU Lesser General Public License v3.0 + * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt) + * + * Permissions of this copyleft license are conditioned on making available + * complete source code of licensed works and modifications under the same + * license or the GNU GPLv3. Copyright and license notices must be preserved. + * Contributors provide an express grant of patent rights. However, a larger + * work using the licensed work through interfaces provided by the licensed + * work may be distributed under different terms and without source code for + * the larger work. + * + * Copyright (C) 2015 Jean Machuca, + * + * Everyone is permitted to copy and distribute verbatim copies of this + * license document, but changing it is not allowed. + */ + import { _top } from "qcobjects"; + export { i18n_messages } from "js/org.qcobjects.i18n_messages"; + export { Contact } from "js/org.qcobjects.models"; + export { ShadowedComponent, ButtonField, InputField, TextField, EmailField, ModalEnclosureComponent, ModalComponent, SwaggerUIComponent } from "js/org.qcobjects.components"; + export { FormField, FieldComponentParams } from "js/org.qcobjects.base.components"; + export { GridComponent, GridItemComponent } from "js/org.qcobjects.components.grid"; + export { ListItemComponent, ListComponent } from "js/org.qcobjects.components.list"; + export { SlideListComponent, SlideItemComponent, SliderComponent } from "js/org.qcobjects.components.slider"; + export { NotificationComponent } from "js/org.qcobjects.components.notifications"; + export { SplashScreenComponent, VideoSplashScreenComponent, CubeSplashScreenComponent } from "js/org.qcobjects.components.splashscreen"; + export { GenericController } from "js/org.qcobjects.controllers"; + export { ListController, ListControllerParams } from "js/org.qcobjects.controllers.list"; + export { GridController, DataGridController } from "js/org.qcobjects.controllers.grid"; + export { SliderController } from "js/org.qcobjects.controllers.slider"; + export { FormController, FormValidations } from "js/org.qcobjects.controllers.form"; + export { SwaggerUIController } from "js/org.qcobjects.controllers.swagger"; + export { Fade, Move, MoveXInFromRight, MoveXInFromLeft, MoveYInFromBottom, MoveYInFromTop, RotateX, RotateY, RotateZ, Rotate, Radius, Resize, WipeLeft, WipeRight, WipeUp, WipeDown, ModalFade, ModalMoveUp, ModalMoveDown } from "js/org.qcobjects.effects"; + export { ModalController } from "js/org.qcobjects.modal.controllers"; + export { GridView } from "js/org.qcobjects.views"; + export { CanvasTool } from "js/org.qcobjects.tools.canvas"; + export { BasicLayout } from "js/org.qcobjects.tools.layouts"; + export { SessionUserToken } from "js/org.qcobjects.cloud.auth.session.usertoken"; + export { SessionData } from "js/org.qcobjects.cloud.auth.session.data"; + export default _top; +} +declare module "index" { + import * as sdk from "QCObjects-SDK"; + export default sdk; } -declare module "js/org.qcobjects.components" { - const FormField: any; - const ShadowedComponent: any; - const ButtonField: any; - const InputField: any; - const TextField: any; - const EmailField: any; - const ModalEnclosureComponent: any; - const ModalComponent: any; - const SwaggerUIComponent: any; - export { FormField, ShadowedComponent, ButtonField, InputField, TextField, EmailField, ModalComponent, ModalEnclosureComponent, SwaggerUIComponent }; -} -declare module "js/org.qcobjects.controllers.form" { } -declare module "js/org.qcobjects.controllers.grid" { } -declare module "js/org.qcobjects.controllers.list" { } -declare module "js/org.qcobjects.controllers.slider" { } -declare module "js/org.qcobjects.controllers.swagger" { } -declare module "js/org.qcobjects.controllers" { } -declare module "js/org.qcobjects.i18n_messages" { } -declare module "js/org.qcobjects.modal.controllers" { } -declare module "js/org.qcobjects.modal.effects" { } -declare module "js/org.qcobjects.models" { } -declare module "js/org.qcobjects.tools.canvas" { } -declare module "js/org.qcobjects.tools.layouts" { } declare module "js/org.qcobjects.tools" { } -declare module "js/org.qcobjects.views" { } + +export {}; \ No newline at end of file diff --git a/src/QCObjects-SDK.ts b/src/QCObjects-SDK.ts index 1bcb3e5..c1c4679 100644 --- a/src/QCObjects-SDK.ts +++ b/src/QCObjects-SDK.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-empty-function */ /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -24,83 +24,102 @@ * license document, but changing it is not allowed. */ -import { CONFIG, GlobalSettings } from "qcobjects"; - -const _top = (typeof module === "object" && typeof module.exports === "object") ? ( - module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {}) -) : ((typeof global === "object") ? (global) : ( - (typeof window === "object") ? (window) : ({}) -)); +import { CONFIG, GlobalSettings, _top } from "qcobjects"; +export {i18n_messages} from "./js/org.qcobjects.i18n_messages"; +export {Contact} from "./js/org.qcobjects.models"; +export { + ShadowedComponent, + ButtonField, + InputField, + TextField, + EmailField, + ModalEnclosureComponent, + ModalComponent, + SwaggerUIComponent +} from "./js/org.qcobjects.components"; +export {FormField, FieldComponentParams} from "./js/org.qcobjects.base.components"; +export { + GridComponent, + GridItemComponent +} from "./js/org.qcobjects.components.grid"; +export { + ListItemComponent, + ListComponent +} from "./js/org.qcobjects.components.list"; +export { + SlideListComponent, + SlideItemComponent, + SliderComponent +} from "./js/org.qcobjects.components.slider"; +export { NotificationComponent } from "./js/org.qcobjects.components.notifications"; +export { + SplashScreenComponent, + VideoSplashScreenComponent, + CubeSplashScreenComponent +} from "./js/org.qcobjects.components.splashscreen"; +export { GenericController } from "./js/org.qcobjects.controllers"; +export { ListController, ListControllerParams } from "./js/org.qcobjects.controllers.list"; +export { GridController, DataGridController } from "./js/org.qcobjects.controllers.grid"; +export { SliderController } from "./js/org.qcobjects.controllers.slider"; +export { FormController, FormValidations } from "./js/org.qcobjects.controllers.form"; +export { SwaggerUIController } from "./js/org.qcobjects.controllers.swagger"; +export { + Fade, Move, MoveXInFromRight, + MoveXInFromLeft, + MoveYInFromBottom, + MoveYInFromTop, + RotateX, + RotateY, + RotateZ, + Rotate, + Radius, + Resize, + WipeLeft, + WipeRight, + WipeUp, + WipeDown, + ModalFade, ModalMoveUp, ModalMoveDown +} from "./js/org.qcobjects.effects"; +export { ModalController } from "./js/org.qcobjects.modal.controllers"; +export { GridView } from "./js/org.qcobjects.views"; +export { CanvasTool } from "./js/org.qcobjects.tools.canvas"; +export { BasicLayout } from "./js/org.qcobjects.tools.layouts"; +export { SessionUserToken } from "./js/org.qcobjects.cloud.auth.session.usertoken"; +export { SessionData } from "./js/org.qcobjects.cloud.auth.session.data"; // eslint-disable-next-line camelcase -(function __qcobjects_sdk__ (_top:any) { +(function __qcobjects_sdk__(_top: any) { "use strict"; - if (typeof Object.defineProperty !== "undefined" && typeof _top !== "undefined"){ + if (typeof Object.defineProperty !== "undefined" && typeof _top !== "undefined") { try { - Object.defineProperty(_top,"__qcobjects_sdk__", { + Object.defineProperty(_top, "__qcobjects_sdk__", { enumerable: true, configurable: false, writable: false, // eslint-disable-next-line camelcase value: __qcobjects_sdk__, }); - } catch (e){ - if (typeof _top.__qcobjects_sdk__ !== "undefined"){ + } catch (e) { + if (typeof _top.__qcobjects_sdk__ !== "undefined") { _top.__qcobjects_sdk__.__loaded__ = true; } } } - if (typeof _top.__qcobjects_sdk__.__loaded__ === "undefined"){ + if (typeof _top.__qcobjects_sdk__.__loaded__ === "undefined") { _top.__qcobjects_sdk__.__loaded__ = true; - if (typeof _top === "undefined"){ + if (typeof _top === "undefined") { throw Error("Top context empty: It should either global, module or window"); } const __start__ = GlobalSettings.__start__.bind(_top); - let _imports_: any[] = []; - // non-browsers environment // esbuild compatible - _imports_ = [ - new Promise ((resolve)=> { - require("./js/org.qcobjects.i18n_messages"); - require("./js/org.qcobjects.models"); - require("./js/org.qcobjects.components"); - require("./js/org.qcobjects.components.grid"); - require("./js/org.qcobjects.components.list"); - require("./js/org.qcobjects.components.slider"); - require("./js/org.qcobjects.components.notifications"); - require("./js/org.qcobjects.components.splashscreen"); - require("./js/org.qcobjects.controllers"); - require("./js/org.qcobjects.controllers.grid"); - require("./js/org.qcobjects.controllers.list"); - require("./js/org.qcobjects.controllers.slider"); - require("./js/org.qcobjects.controllers.form"); - require("./js/org.qcobjects.controllers.swagger"); - require("./js/org.qcobjects.effects"); - require("./js/org.qcobjects.modal.controllers"); - require("./js/org.qcobjects.views"); - require("./js/org.qcobjects.tools.canvas"); - require("./js/org.qcobjects.tools.layouts"); - require("./js/org.qcobjects.cloud.auth.session.usertoken"); - require("./js/org.qcobjects.cloud.auth.session.data"); - resolve(); - }) - ]; - _top._sdk_ = Promise.all(_imports_).then(()=>{ + _top._sdk_ = Promise.resolve().then(() => { CONFIG.set("useSDK", true); __start__(); }); - + } })(_top); diff --git a/src/js/org.qcobjects.base.components.ts b/src/js/org.qcobjects.base.components.ts new file mode 100644 index 0000000..1ccc193 --- /dev/null +++ b/src/js/org.qcobjects.base.components.ts @@ -0,0 +1,83 @@ +import {Package, Component, logger} from "qcobjects"; +export type FieldComponentParams = { + name: string; + body: any; + data: any; + basePath?: string; + fieldType: string; +} +export class FormField extends Component { + fieldType!: string; + cached = false; + reload = true; + body: any; + name!: string; + data: any; + constructor(o: FieldComponentParams) { + o.name = (typeof o.name !== "undefined") ? (o.name) : ("form-field"); + super(o); + } + + createBindingEvents() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); // every child with data-field set + } else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); // every child with data-field set and tagname is equal to fieldType property + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak]; + _obj.addEventListener("change", () => { + logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("blur", () => { + logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("focus", () => { + logger.debug("Executing change event binding"); + this.executeBindings(); + }); + _obj.addEventListener("keydown", () => { + logger.debug("Executing keydown event binding"); + this.executeBindings(); + }); + } + } + + executeBinding(_obj: HTMLElement & { value: any }) { + const _datamodel = _obj.getAttribute("data-field"); + logger.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel as keyof typeof this.data] = _obj.value; + } + + executeBindings() { + let _objList; + if (typeof this.fieldType === "undefined" || this.fieldType == null) { + _objList = this.body.subelements("*[data-field]"); // every child with data-field set + } else { + _objList = this.body.subelements(this.fieldType + "[data-field]"); // every child with data-field set and tagname is equal to fieldType property + } + for (let _datak = 0; _datak < _objList.length; _datak++) { + const _obj = _objList[_datak] as HTMLElement & { value: any }; + const _datamodel = _obj.getAttribute("data-field"); + logger.debug("Binding " + _datamodel + " for " + this.name); + this.data[_datamodel as keyof typeof this.data] = _obj.value; + } + } + + done(standardResponse: any): Promise { + const _ret_ = super.done(standardResponse); + this.executeBindings(); + this.createBindingEvents(); + logger.debug("Field loaded: " + this.fieldType + "[name=" + this.name + "]"); + return _ret_ as Promise; + } + + +} + +Package("org.qcobjects.base.components", [ + FormField +]); diff --git a/src/js/org.qcobjects.cloud.auth.session.data.d.ts b/src/js/org.qcobjects.cloud.auth.session.data.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/src/js/org.qcobjects.cloud.auth.session.data.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/js/org.qcobjects.cloud.auth.session.data.ts b/src/js/org.qcobjects.cloud.auth.session.data.ts index 613c0d2..7d236ba 100644 --- a/src/js/org.qcobjects.cloud.auth.session.data.ts +++ b/src/js/org.qcobjects.cloud.auth.session.data.ts @@ -1,8 +1,5 @@ -import { Package, InheritClass, _DataStringify } from "qcobjects"; -import { SessionUserToken } from "./org.qcobjects.cloud.auth.session.usertoken"; - /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -25,111 +22,113 @@ import { SessionUserToken } from "./org.qcobjects.cloud.auth.session.usertoken"; * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function () { - "use strict"; - Package("org.qcobjects.cloud.auth.session.data", [ +"use strict"; +import { Package, InheritClass, _DataStringify } from "qcobjects"; +import { SessionUserToken } from "./org.qcobjects.cloud.auth.session.usertoken"; + +export class SessionData extends InheritClass { - class SessionData extends InheritClass{ + __session_container__: any = null; + sessionData: any; - __session_container__:any = null; - sessionData:any; + /** + * Sets the session container + * + * @param {*} sessionContainer1, sessionContainer2, ... + * + */ + setSessionContainer() { + // eslint-disable-next-line prefer-rest-params + this.__session_container__ = [...arguments]; + } - /** - * Sets the session container - * - * @param {*} sessionContainer1, sessionContainer2, ... - * - */ - setSessionContainer() { - // eslint-disable-next-line prefer-rest-params - this.__session_container__ = [...arguments]; - } + /** + * Gets the session container + * + * @return {*} sessionContainer + */ + getSessionContainer() { + if (typeof this.__session_container__ === "undefined" || this.__session_container__ === null) { + throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)"); + } + return this.__session_container__; + } + + /** + * Gets the session data + * + * @return {*} sessionData + */ + getSessionData(...args: any[]) { - /** - * Gets the session container - * - * @return {*} sessionContainer - */ - getSessionContainer() { - if (typeof this.__session_container__ === "undefined" || this.__session_container__ === null) { - throw new Error("You need to set a session container first: sessionData.setSessionContainer(...arguments)"); - } - return this.__session_container__; - } + const s = sessionStorage.getItem(`${this.index(args)}`); + let sessionData; + if (s !== null) { + sessionData = JSON.parse(s); + } + if (typeof sessionData === "undefined" || sessionData === null) { + sessionData = {}; + } + return sessionData; + } - /** - * Gets the session data - * - * @return {*} sessionData - */ - getSessionData(...args: any[]) { - // eslint-disable-next-line prefer-rest-params - const s = sessionStorage.getItem(`${this.index(args)}`); - let sessionData; - if (s!== null) { - sessionData = JSON.parse(s); - } - if (typeof sessionData === "undefined" || sessionData === null) { - sessionData = {}; - } - return sessionData; - } + /** + * Returns an index of the session + * + * @param {string} valueForIndex + * @return {string} index + * @example sessionInstance.index("me@email.com", "myusername") + * + */ + index(...args: any[]) { + if (typeof SessionUserToken === "undefined") { + throw new Error("You need to import SessionUserToken first: Import (\"org.qcobjects.cloud.auth.session.usertoken\")"); + } + return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`; + } - /** - * Returns an index of the session - * - * @param {string} valueForIndex - * @return {string} index - * @example sessionInstance.index("me@email.com", "myusername") - * - */ - index(...args: any[]) { - if (typeof SessionUserToken === "undefined") { - throw new Error("You need to import SessionUserToken first: Import (\"org.qcobjects.cloud.auth.session.usertoken\")"); - } - return `session_${btoa(SessionUserToken.getGlobalUserToken(args))}`; - } + /** + * Saves the session instance + * + */ + save(...args: any[]) { + const s = _DataStringify(this.sessionData); + sessionStorage.setItem(`${this.index(args)}`, s); + } - /** - * Saves the session instance - * - */ - save(...args:any[]) { - const s = _DataStringify(this.sessionData); - sessionStorage.setItem(`${this.index(args)}`, s); - } + /** + * + * Gets the session value + * + * @param {*} name + * @param {*} defaultValue + * @return {*} + */ + get(name: string, defaultValue: any) { + const sessionData = this.getSessionData(this.getSessionContainer()); + return (typeof sessionData[name] !== "undefined") ? (sessionData[name]) : (defaultValue); + } - /** - * - * Gets the session value - * - * @param {*} name - * @param {*} defaultValue - * @return {*} - */ - get(name:string, defaultValue:any) { - const sessionData = this.getSessionData(this.getSessionContainer()); - return (typeof sessionData[name] !== "undefined") ? (sessionData[name]) : (defaultValue); - } + /** + * + * Sets the session value + * + * @param {*} name + * @param {*} value + */ + set(name: string, value: any) { + const sessionContainer = this.getSessionContainer(); + const sessionData = this.getSessionData(sessionContainer); + this.sessionData = sessionData; + this.sessionData[name] = value; + this.save(sessionContainer); + } - /** - * - * Sets the session value - * - * @param {*} name - * @param {*} value - */ - set(name:string, value:any) { - const sessionContainer = this.getSessionContainer(); - const sessionData = this.getSessionData(sessionContainer); - this.sessionData = sessionData; - this.sessionData[name] = value; - this.save(sessionContainer); - } +} - } +Package("org.qcobjects.cloud.auth.session.data", [ + SessionData - ]); +]); -})(); diff --git a/src/js/org.qcobjects.cloud.auth.session.usertoken.d.ts b/src/js/org.qcobjects.cloud.auth.session.usertoken.d.ts deleted file mode 100644 index ceb7a7b..0000000 --- a/src/js/org.qcobjects.cloud.auth.session.usertoken.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const SessionUserToken: any; -export { SessionUserToken }; diff --git a/src/js/org.qcobjects.cloud.auth.session.usertoken.ts b/src/js/org.qcobjects.cloud.auth.session.usertoken.ts index 43931ae..312ed92 100644 --- a/src/js/org.qcobjects.cloud.auth.session.usertoken.ts +++ b/src/js/org.qcobjects.cloud.auth.session.usertoken.ts @@ -1,7 +1,5 @@ -import { CONFIG, ComplexStorageCache, InheritClass, New, Package, _Crypt } from "qcobjects"; - /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -24,105 +22,87 @@ import { CONFIG, ComplexStorageCache, InheritClass, New, Package, _Crypt } from * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ - -const _top = (typeof module === "object" && typeof module.exports === "object") ? ( - module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {}) -) : ((typeof global === "object") ? (global) : ( - (typeof window === "object") ? (window) : ({}) -)); - -(function (global) { - "use strict"; - - class SessionUserToken extends InheritClass{ - static user = {}; - __cache__:ComplexStorageCache; - - constructor(o:any){ - super(o); - // eslint-disable-next-line @typescript-eslint/no-this-alias - const __instance__ = this; - this.__cache__ = new ComplexStorageCache({ - index: __instance__.__instanceID.toString(), - load() { - let __token__; - if (typeof navigator !== "undefined" && typeof origin !== "undefined") { - __token__ = _Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin); - } else { - __token__ = _Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, CONFIG.get("domain", "localhost")); - } - SessionUserToken.user = { - priority: __instance__.__instanceID.toString(), - token: __token__ - }; - return SessionUserToken.user; - }, - alternate(cacheController) { +"use strict"; +import { CONFIG, ComplexStorageCache, InheritClass, New, Package, _Crypt, global } from "qcobjects"; + + +type TGlobalUser = { username: string, token: string, id: string, priority: number }; + +export class SessionUserToken extends InheritClass { + static user = {}; + __cache__: ComplexStorageCache; + __instanceID: any; + + constructor(o: any) { + super(o); + + const __instance__ = this; + this.__cache__ = new ComplexStorageCache({ + index: __instance__.__instanceID.toString(), + load() { + let __token__; + if (typeof navigator !== "undefined" && typeof origin !== "undefined") { + __token__ = _Crypt.encrypt(`${navigator.userAgent}|${o.username}|${(+(new Date())).toString()}`, origin); + } else { + __token__ = _Crypt.encrypt(`${o.username}|${(+(new Date())).toString()}`, CONFIG.get("domain", "localhost")); + } + SessionUserToken.user = { + priority: __instance__.__instanceID.toString(), + token: __token__ + }; + return SessionUserToken.user; + }, + alternate(cacheController: any) { SessionUserToken.user = cacheController?.cache.getCached(__instance__.__instanceID.toString()); // setting dataObject with the cached value - } - }); - - } - - static generateIndex(s:any) { - return (typeof Buffer !== "undefined") ? (Buffer.from(s, "ascii").toString("base64")) : (btoa(s)); - } - - static getGlobalUser(...args:any[]) { - const username = [args].join("|"); - const __index__ = "userToken_" + SessionUserToken.generateIndex(username); - if (typeof (global as any).get(__index__) === "undefined" || (global as any).get(__index__) === null) { - (global as any).set(__index__, New(SessionUserToken, { - username - })); } - SessionUserToken.user = (global as any).get(__index__).user; - return (global as any).get(__index__).user; - } - - static getGlobalUserToken(...args:any[]) { - return SessionUserToken.getGlobalUser(args).token; - } + }); - static getGlobalUserId(...args:any[]) { - return SessionUserToken.getGlobalUser(args).id; - } + } - static getGlobalUserPriority(...args:any[]) { - return SessionUserToken.getGlobalUser(args).priority; - } + static generateIndex(s: any) { + return (typeof Buffer !== "undefined") ? (Buffer.from(s, "ascii").toString("base64")) : (btoa(s)); + } - static getLoginCredentialsToken(username:string, password:string) { - return _Crypt.encrypt(`${username}${password}`, SessionUserToken.getGlobalUserToken(username)); + static getGlobalUser(...args: any[]): TGlobalUser { + const username = [args].join("|"); + const __index__ = "userToken_" + SessionUserToken.generateIndex(username); + if (typeof (global as any).get(__index__) === "undefined" || (global as any).get(__index__) === null) { + (global as any).set(__index__, New(SessionUserToken, { + username + })); } + SessionUserToken.user = (global as any).get(__index__).user; + return global.get(__index__).user as TGlobalUser; + } - static closeGlobalSession(...args:any[]) { - SessionUserToken.getGlobalUser(args); - const username = [args].join("|"); - const __index__ = "userToken_" + SessionUserToken.generateIndex(username); - if (typeof (global as any).get(__index__) !== "undefined") { - (global as any).get(__index__).__cache__.clear(); - (global as any).set(__index__, null); - SessionUserToken.user = {}; - } - } + static getGlobalUserToken(...args: any[]): string { + return SessionUserToken.getGlobalUser(args).token; } - Package("org.qcobjects.cloud.auth.session.usertoken", [ - SessionUserToken - ]); + static getGlobalUserId(...args: any[]) { + return SessionUserToken.getGlobalUser(args).id; + } + static getGlobalUserPriority(...args: any[]) { + return SessionUserToken.getGlobalUser(args).priority; + } -})(_top); + static getLoginCredentialsToken(username: string, password: string): string { + return _Crypt.encrypt(`${username}${password}`, SessionUserToken.getGlobalUserToken(username)) as string; + } -const SessionUserToken = (_top as any).SessionUserToken; + static closeGlobalSession(...args: any[]) { + SessionUserToken.getGlobalUser(args); + const username = [args].join("|"); + const __index__ = "userToken_" + SessionUserToken.generateIndex(username); + if (typeof (global as any).get(__index__) !== "undefined") { + (global as any).get(__index__).__cache__.clear(); + (global as any).set(__index__, null); + SessionUserToken.user = {}; + } + } +} -export {SessionUserToken}; +Package("org.qcobjects.cloud.auth.session.usertoken", [ + SessionUserToken +]); diff --git a/src/js/org.qcobjects.components.d.ts b/src/js/org.qcobjects.components.d.ts deleted file mode 100644 index 33e70e9..0000000 --- a/src/js/org.qcobjects.components.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -declare const FormField: any; -declare const ShadowedComponent: any; -declare const ButtonField: any; -declare const InputField: any; -declare const TextField: any; -declare const EmailField: any; -declare const ModalEnclosureComponent: any; -declare const ModalComponent: any; -declare const SwaggerUIComponent: any; -export { FormField, ShadowedComponent, ButtonField, InputField, TextField, EmailField, ModalComponent, ModalEnclosureComponent, SwaggerUIComponent }; diff --git a/src/js/org.qcobjects.components.grid.d.ts b/src/js/org.qcobjects.components.grid.d.ts deleted file mode 100644 index f2bccdc..0000000 --- a/src/js/org.qcobjects.components.grid.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const GridComponent: any; -declare const GridItemComponent: any; -export { GridComponent, GridItemComponent }; diff --git a/src/js/org.qcobjects.components.grid.ts b/src/js/org.qcobjects.components.grid.ts index fc0137e..101d7d5 100644 --- a/src/js/org.qcobjects.components.grid.ts +++ b/src/js/org.qcobjects.components.grid.ts @@ -1,7 +1,5 @@ -import { Package, Component, ComponentParams } from "qcobjects"; - /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -24,72 +22,47 @@ import { Package, Component, ComponentParams } from "qcobjects"; * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -const _top = (typeof module === "object" && typeof module.exports === "object") ? ( - module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {}) -) : ((typeof global === "object") ? (global) : ( - (typeof window === "object") ? (window) : ({}) -)); -(function (global:any) { - "use strict"; +"use strict"; +import { Package, Component } from "qcobjects"; - class GridItemComponent extends Component { - name = "grid-item"; - shadowed= true; - tplsource= "inline"; - template= ` +export class GridItemComponent extends Component { + name = "grid-item"; + shadowed = true; + tplsource = "inline"; + template = `

                      {{description}}

                      `; - cached= false; - - } - - class GridComponent extends Component { - name= "grid"; - cached= false; - view= null; - shadowed= true; - rows= 3; - cols= 3; - templateURI= ""; - data= {}; - tplsource= "inline"; - template= "

                      Loading...

                      "; + cached = false; - constructor (o:ComponentParams){ - super(o); - this.body.setAttribute("controllerClass", "DataGridController"); - const subcomponentClass = (this.body.getAttribute("subcomponentClass") !== null) ? (this.body.getAttribute("subcomponentClass")) : ("GridItemComponent"); - this.body.setAttribute("subcomponentClass", subcomponentClass as string); +} - } +export class GridComponent extends Component { + name = "grid"; + cached = false; + view = null; + shadowed = true; + rows = 3; + cols = 3; + templateURI = ""; + data = {}; + tplsource = "inline"; + template = "

                      Loading...

                      "; + body: any; + constructor(o: any) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = (this.body.getAttribute("subcomponentClass") !== null) ? (this.body.getAttribute("subcomponentClass")) : ("GridItemComponent"); + this.body.setAttribute("subcomponentClass", subcomponentClass as string); } - Package("org.qcobjects.components.grid", [ - GridComponent, - GridItemComponent - ]); - - global.GridComponent = GridComponent; - global.GridItemComponent = GridItemComponent; - -})(_top); -const GridComponent = (_top as any).GridComponent; -const GridItemComponent = (_top as any).GridItemComponent; +} -export { - GridComponent, +Package("org.qcobjects.components.grid", [ + GridComponent, GridItemComponent -}; \ No newline at end of file +]); diff --git a/src/js/org.qcobjects.components.list.d.ts b/src/js/org.qcobjects.components.list.d.ts deleted file mode 100644 index 0b5b840..0000000 --- a/src/js/org.qcobjects.components.list.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const ListComponent: any; -declare const ListItemComponent: any; -export { ListComponent, ListItemComponent }; diff --git a/src/js/org.qcobjects.components.list.ts b/src/js/org.qcobjects.components.list.ts index 048af82..b3c68c8 100644 --- a/src/js/org.qcobjects.components.list.ts +++ b/src/js/org.qcobjects.components.list.ts @@ -1,7 +1,5 @@ -import { Component, ComponentParams, Package } from "qcobjects"; - /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -24,40 +22,36 @@ import { Component, ComponentParams, Package } from "qcobjects"; * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -const _top = (typeof module === "object" && typeof module.exports === "object") ? ( - module.exports = (typeof globalThis !== "undefined" - ? globalThis - : typeof self !== "undefined" - ? self - : typeof window !== "undefined" - ? window - : typeof global !== "undefined" - ? global - : {}) -) : ((typeof global === "object") ? (global) : ( - (typeof window === "object") ? (window) : ({}) -)); -(function(global:any) { "use strict"; -class ListItemComponent extends Component { +import { Component, Package } from "qcobjects"; + + +export class ListItemComponent extends Component { shadowed= false; tplsource= "inline"; template="{{label}}"; cached= false; - constructor (o:ComponentParams){ + constructor (o:any){ o.name="list-item"; super(o); } } -class ListComponent extends Component { +export class ListComponent extends Component { + data!:any; shadowed= true; tplsource= "inline"; template= "

                      Loading...

                      "; + body: any; + shadowRoot: HTMLElement | undefined; + rows!: string | number | null; + subcomponents!: never[]; + done: any; + serviceData: any; - constructor (o:ComponentParams){ + constructor (o:any){ o.name = "list"; super(o); this.body.setAttribute("controllerClass","ListController"); @@ -71,13 +65,3 @@ Package("org.qcobjects.components.list",[ ListItemComponent, ListComponent ]); - -global.ListComponent = ListComponent; -global.ListItemComponent = ListItemComponent; - -})(_top); - -const ListComponent = (_top as any).ListComponent; -const ListItemComponent = (_top as any).ListItemComponent; - -export {ListComponent, ListItemComponent}; \ No newline at end of file diff --git a/src/js/org.qcobjects.components.notifications.d.ts b/src/js/org.qcobjects.components.notifications.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/src/js/org.qcobjects.components.notifications.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/js/org.qcobjects.components.notifications.ts b/src/js/org.qcobjects.components.notifications.ts index 21b2301..c5f315a 100644 --- a/src/js/org.qcobjects.components.notifications.ts +++ b/src/js/org.qcobjects.components.notifications.ts @@ -1,8 +1,5 @@ -import { Package, Component, _DOMCreateElement, New, _super_, ComponentParams, QCObjectsElement } from "qcobjects"; -import { Fade, Move } from "./org.qcobjects.effects"; - /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -25,17 +22,21 @@ import { Fade, Move } from "./org.qcobjects.effects"; * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function() { "use strict"; -class NotificationComponent extends Component { +import { Package, Component, _DOMCreateElement, New, _super_ } from "qcobjects"; +import { Fade, Move } from "./org.qcobjects.effects"; + + +export class NotificationComponent extends Component { cached= false; tplsource= "inline"; shadowed= false; kinds:string[]; + template: string; - constructor (o:ComponentParams){ + constructor (o:any){ o.name= "notification"; - o.body = _DOMCreateElement("div") as QCObjectsElement; + o.body = _DOMCreateElement("div") as HTMLElement; super(o); this.template= ` @@ -110,8 +111,9 @@ class NotificationComponent extends Component { disappearEffect.apply(element); },2000); }; - (element as QCObjectsElement).subelements("div.notification_background").map(element=>New(Fade,{duration:500}).apply(element,0,1)); - (element as QCObjectsElement).subelements("div.notification").map(element=>_display_(element)); + + (element as any).subelements("div.notification_background").map((element:HTMLElement):any=> {return (new Fade ({duration:500})).apply(element,0,1);} ); + (element as any).subelements("div.notification").map((element:any)=>_display_(element)); setTimeout(function (){ element.remove(); },2200); @@ -187,5 +189,3 @@ class NotificationComponent extends Component { Package("org.quickcorp.components.notifications", [ NotificationComponent ]); - -})(); diff --git a/src/js/org.qcobjects.components.slider.d.ts b/src/js/org.qcobjects.components.slider.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/src/js/org.qcobjects.components.slider.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/js/org.qcobjects.components.slider.ts b/src/js/org.qcobjects.components.slider.ts index 24b626c..1d772ac 100644 --- a/src/js/org.qcobjects.components.slider.ts +++ b/src/js/org.qcobjects.components.slider.ts @@ -1,7 +1,5 @@ -import { Package, Component, ComponentParams } from "qcobjects"; - /** - * QCObjects SDK 2.4 + * QCObjects SDK 2.5 * ________________ * * Author: Jean Machuca @@ -24,182 +22,195 @@ import { Package, Component, ComponentParams } from "qcobjects"; * Everyone is permitted to copy and distribute verbatim copies of this * license document, but changing it is not allowed. */ -(function() { "use strict"; -Package("org.qcobjects.components.slider",[ - - class SlideListComponent extends Component { - tplsource="inline"; - template="

                      Loading...

                      "; - name = "slidelist"; - - constructor (o:ComponentParams){ - super(o); - this.body.setAttribute("controllerClass","DataGridController"); - const subcomponentClass = (this.body.getAttribute("subcomponentClass") !== null)?(this.body.getAttribute("subcomponentClass")):("GridItemComponent"); - this.body.setAttribute("subcomponentClass",subcomponentClass as string); - } +import { Package, Component } from "qcobjects"; + +export class SlideListComponent extends Component { + tplsource = "inline"; + template = "

                      Loading...

                      "; + name = "slidelist"; + body: any; + + constructor(o: any) { + super(o); + this.body.setAttribute("controllerClass", "DataGridController"); + const subcomponentClass = (this.body.getAttribute("subcomponentClass") !== null) ? (this.body.getAttribute("subcomponentClass")) : ("GridItemComponent"); + this.body.setAttribute("subcomponentClass", subcomponentClass as string); + } + +} - }, - - class SlideItemComponent extends Component { - effectClass = "Fade"; - name = "slider_item"; - - constructor (o:ComponentParams) { - super(o); - this.data.slideNumber = this.data.__dataIndex+1; - this.template= ` -