{"version":3,"file":"bloomscorp-ngx-aster-cms.mjs","sources":["../../../projects/ngx-aster-cms/src/lib/route/model/aster-request-mapper.ts","../../../projects/ngx-aster-cms/src/lib/route/model/default-routes.ts","../../../projects/ngx-aster-cms/src/lib/authentication/login-form/login-form.component.ts","../../../projects/ngx-aster-cms/src/lib/authentication/login-form/login-form.component.html","../../../projects/ngx-aster-cms/src/lib/authentication/login/login.component.ts","../../../projects/ngx-aster-cms/src/lib/authentication/login/login.component.html","../../../projects/ngx-aster-cms/src/lib/configuration/aster-config.ts","../../../projects/ngx-aster-cms/src/lib/support/constant.ts","../../../projects/ngx-aster-cms/src/lib/support/message.ts","../../../projects/ngx-aster-cms/src/lib/configuration/aster-configuration.service.ts","../../../projects/ngx-aster-cms/src/lib/support/local-storage.service.ts","../../../projects/ngx-aster-cms/src/lib/authentication/jwt.service.ts","../../../projects/ngx-aster-cms/src/lib/route/service/aster-route.service.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-table/aster-table/aster-table.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-table/aster-table/aster-table.component.html","../../../projects/ngx-aster-cms/src/lib/navigation/model/aster-navigation-items.ts","../../../projects/ngx-aster-cms/src/lib/navigation/service/aster-navigation-mapper.service.ts","../../../projects/ngx-aster-cms/src/lib/navigation/navigation/navigation.component.ts","../../../projects/ngx-aster-cms/src/lib/navigation/navigation/navigation.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/header/header-section/header-section.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/header/header-section/header-section.component.html","../../../projects/ngx-aster-cms/src/lib/dashboard/dashboard-card/dashboard-card.component.ts","../../../projects/ngx-aster-cms/src/lib/dashboard/dashboard-card/dashboard-card.component.html","../../../projects/ngx-aster-cms/src/lib/dashboard/service/dashboard.service.ts","../../../projects/ngx-aster-cms/src/lib/dashboard/model/aster-dashboard-items.ts","../../../projects/ngx-aster-cms/src/lib/dashboard/service/aster-dashboard-mapper.service.ts","../../../projects/ngx-aster-cms/src/lib/dashboard/dashboard/dashboard.component.ts","../../../projects/ngx-aster-cms/src/lib/dashboard/dashboard/dashboard.component.html","../../../projects/ngx-aster-cms/src/lib/product/service/aster-product-service.ts","../../../projects/ngx-aster-cms/src/lib/product/service/aster-product-listing-service.ts","../../../projects/ngx-aster-cms/src/lib/product/service/aster-product-details-service.ts","../../../projects/ngx-aster-cms/src/lib/product/service/aster-manage-product-service.ts","../../../projects/ngx-aster-cms/src/lib/product/service/aster-add-product-service.ts","../../../projects/ngx-aster-cms/src/lib/product/service/aster-update-product-service.ts","../../../projects/ngx-aster-cms/src/lib/raintree/transmission/crud-transmission-service.ts","../../../projects/ngx-aster-cms/src/lib/raintree/transmission/transmission-helper.service.ts","../../../projects/ngx-aster-cms/src/lib/raintree/transmission/product/aster-product-preview-transmission.service.ts","../../../projects/ngx-aster-cms/src/lib/raintree/transmission/product/aster-product-transmission.service.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/model/aster-form-input-type.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-text/aster-form-input-text.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-text/aster-form-input-text.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-numeric/aster-form-input-numeric.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-numeric/aster-form-input-numeric.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-select/aster-form-input-select.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-select/aster-form-input-select.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-multi-select/aster-form-input-multi-select.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-multi-select/aster-form-input-multi-select.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-textarea/aster-form-input-textarea.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-textarea/aster-form-input-textarea.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-richtext/aster-form-input-richtext.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-richtext/aster-form-input-richtext.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/pipe/sanitize-url.pipe.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-image/aster-form-input-image.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-image/aster-form-input-image.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-multiple-image/aster-form-input-multiple-image.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-multiple-image/aster-form-input-multiple-image.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-chip/aster-form-input-chip.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form-input-chip/aster-form-input-chip.component.html","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/service/aster-form-input-service.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/service/aster-form-submit.service.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/service/aster-form.service.ts","../../../projects/ngx-aster-cms/src/lib/raintree/transmission/aster-form/aster-form-transmission.service.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form/aster-form.component.ts","../../../projects/ngx-aster-cms/src/lib/component-library/aster-form/aster-form/aster-form.component.html","../../../projects/ngx-aster-cms/src/lib/order/service/aster-order-service.ts","../../../projects/ngx-aster-cms/src/lib/order/service/aster-order-listing-service.ts","../../../projects/ngx-aster-cms/src/lib/order/service/aster-order-details-service.ts","../../../projects/ngx-aster-cms/src/public-api.ts","../../../projects/ngx-aster-cms/src/bloomscorp-ngx-aster-cms.ts"],"sourcesContent":["export class AsterRequestMapper {\r\n\r\n\tpublic static readonly BASE_RELATIVE_URL: string = '';\r\n\tpublic static readonly ROOT_URL: string = '/';\r\n\tpublic static readonly LOGIN: string = 'login';\r\n\tpublic static readonly INVALID_URL: string = '404';\r\n\tpublic static readonly DASHBOARD: string = 'dashboard';\r\n\tpublic static readonly MANAGE_USERS: string = 'manage-users';\r\n\tpublic static readonly USER_DETAILS: string = 'user/:userId';\r\n\tpublic static readonly MANAGE_PRODUCTS: string = 'manage-products';\r\n\tpublic static readonly PRODUCT_LIST: string = 'product-list';\r\n\tpublic static readonly PRODUCT_DETAILS: string = 'product/:productGroup/:productId';\r\n    public static readonly PRODUCT_ADD: string = 'product/add';\r\n    public static readonly PRODUCT_UPDATE: string = 'product/update/:productId';\r\n\tpublic static readonly MANAGE_ORDERS: string = 'manage-orders';\r\n\tpublic static readonly ORDER_DETAILS: string = 'order/:orderId';\r\n\r\n\t/* API ENDPOINTS - PRODUCT */\r\n\tpublic static readonly GET_PRODUCT_PREVIEW: string = 'get/product-preview-list';\r\n\r\n\r\n\tprivate constructor() {\r\n\t}\r\n\r\n\tpublic static getAbsoluteUrl(url: string): string {\r\n\t\treturn this.ROOT_URL + url;\r\n\t}\r\n}\r\n","import {Route, Routes} from \"@angular/router\";\r\nimport {AsterRequestMapper} from \"./aster-request-mapper\";\r\n\r\nexport class DefaultRoutes {\r\n\r\n\tpublic static readonly LOGIN: Route = {\r\n\t\tpath: AsterRequestMapper.LOGIN,\r\n\t\tloadComponent: () => import('../../authentication/login/login.component').then(m => m.LoginComponent),\r\n\t\tpathMatch: 'full'\r\n\t};\r\n\r\n\tpublic static readonly DASHBOARD: Route = {\r\n\t\tpath: AsterRequestMapper.DASHBOARD,\r\n\t\tloadComponent: () => import('../../dashboard/dashboard/dashboard.component').then(m => m.DashboardComponent),\r\n\t\tpathMatch: 'full'\r\n\t};\r\n\r\n\tpublic static readonly MANAGE_USERS: Route = {\r\n\t\tpath: AsterRequestMapper.MANAGE_USERS,\r\n\t\tloadComponent: () => import('../../tenant/tenant-listing/tenant-listing.component').then(m => m.TenantListingComponent),\r\n\t\tpathMatch: 'full'\r\n\t};\r\n\r\n\tpublic static readonly USER_DETAILS: Route = {\r\n\t\tpath: AsterRequestMapper.USER_DETAILS,\r\n\t\tloadComponent: () => import('../../tenant/tenant-details/tenant-details.component').then(m => m.TenantDetailsComponent),\r\n\t\tpathMatch: 'full'\r\n\t};\r\n\r\n\tpublic static readonly MANAGE_PRODUCTS: Route = {\r\n\t\tpath: AsterRequestMapper.MANAGE_PRODUCTS,\r\n\t\tloadComponent: () => import('../../product/manage-product/manage-product.component').then(c => c.ManageProductComponent),\r\n\t\tpathMatch: 'full'\r\n\t};\r\n\r\n\tpublic static readonly LIST_PRODUCTS: Route = {\r\n\t\tpath: AsterRequestMapper.PRODUCT_LIST,\r\n\t\tloadComponent: () => import('../../product/product-listing/product-listing.component').then(m => m.ProductListingComponent),\r\n\t\tpathMatch: 'full'\r\n\t}\r\n\r\n    public static readonly ADD_PRODUCT: Route = {\r\n\t\tpath: AsterRequestMapper.PRODUCT_ADD,\r\n\t\tloadComponent: () => import('../../product/add-product/add-product.component').then(m => m.AddProductComponent),\r\n\t\tpathMatch: 'full'\r\n\t}\r\n\r\n    public static readonly UPDATE_PRODUCT: Route = {\r\n        path: AsterRequestMapper.PRODUCT_UPDATE,\r\n        loadComponent: () => import('../../product/update-product/update-product.component').then(m => m.UpdateProductComponent),\r\n        pathMatch: 'full'\r\n    }\r\n\r\n\tpublic static readonly  MANAGE_ORDERS: Route = {\r\n\t\tpath: AsterRequestMapper.MANAGE_ORDERS,\r\n\t\tloadComponent: () => import('../../order/order-listing/order-listing.component').then(m => m.OrderListingComponent),\r\n\t\tpathMatch: 'full'\r\n\t}\r\n\r\n\tpublic static readonly  ORDER_DETAILS: Route = {\r\n\t\tpath: AsterRequestMapper.ORDER_DETAILS,\r\n\t\tloadComponent: () => import('../../order/order-details/order-details.component').then(m => m.OrderDetailsComponent),\r\n\t\tpathMatch: 'full'\r\n\t}\r\n\r\n\tpublic static readonly BASE: Route = {\r\n\t\tpath: AsterRequestMapper.BASE_RELATIVE_URL,\r\n\t\tredirectTo: AsterRequestMapper.LOGIN,\r\n\t\tpathMatch: 'full'\r\n\t};\r\n\r\n\tpublic static readonly NOT_FOUND: Route = {\r\n\t\tpath: AsterRequestMapper.INVALID_URL,\r\n\t\tloadComponent: () => import('../../404/not-found/not-found.component').then(m => m.NotFoundComponent),\r\n\t\tpathMatch: 'full'\r\n\t};\r\n\r\n\tpublic static readonly ANY_URL: Route = {\r\n\t\tpath: '**',\r\n\t\tredirectTo: AsterRequestMapper.INVALID_URL\r\n\t};\r\n\r\n\tpublic static readonly ROUTES: Routes = [\r\n\t\tDefaultRoutes.BASE,\r\n\t\tDefaultRoutes.LOGIN,\r\n\t\tDefaultRoutes.DASHBOARD,\r\n\t\tDefaultRoutes.MANAGE_USERS,\r\n\t\tDefaultRoutes.USER_DETAILS,\r\n\t\tDefaultRoutes.MANAGE_PRODUCTS,\r\n\t\tDefaultRoutes.LIST_PRODUCTS,\r\n\t\tDefaultRoutes.MANAGE_ORDERS,\r\n\t\tDefaultRoutes.ORDER_DETAILS,\r\n\t\tDefaultRoutes.NOT_FOUND,\r\n\t\tDefaultRoutes.ANY_URL,\r\n\t];\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {NgOptimizedImage} from \"@angular/common\";\r\nimport {RouterLink} from \"@angular/router\";\r\n\r\n@Component({\r\n    selector: 'aster-cms-login-form',\r\n    imports: [\r\n        NgOptimizedImage,\r\n        RouterLink\r\n    ],\r\n    templateUrl: './login-form.component.html',\r\n    styleUrl: './login-form.component.scss'\r\n})\r\nexport class LoginFormComponent {\r\n\r\n\t@Input() companyLogo: string = 'https://www.bloomscorp.com/assets/images/logo.png';\r\n\r\n}\r\n","<div class=\"aster-login-card w-full rounded-lg shadow-lg md:mt-0 sm:max-w-md xl:p-0\">\r\n\t<div class=\"p-6 space-y-4 md:space-y-6 sm:p-8\">\r\n\t\t<div class=\"w-full flex justify-between\">\r\n\t\t\t<h1 class=\"text-xl font-bold leading-tight tracking-tight text-gray-900 md:text-2xl\">Welcome back !</h1>\r\n\r\n\t\t\t<a href=\"#\" class=\"flex items-center\">\r\n\t\t\t\t<img class=\"mr-2\"\r\n\t\t\t\t\t [ngSrc]=\"companyLogo\"\r\n\t\t\t\t\t alt=\"logo\"\r\n\t\t\t\t\t width=\"32\"\r\n\t\t\t\t\t height=\"32\">\r\n\t\t\t</a>\r\n\t\t</div>\r\n\r\n\t\t<form class=\"space-y-4 md:space-y-6\" action=\"#\">\r\n\t\t\t<div>\r\n\t\t\t\t<label class=\"block mb-2 text-sm font-medium\">Your email</label>\r\n\t\t\t\t<input type=\"email\"\r\n\t\t\t\t\t   placeholder=\"name@company.com\"\r\n\t\t\t\t\t   class=\"border sm:text-sm rounded-lg block w-full p-2.5\"\r\n\t\t\t\t\t   [required]=\"true\">\r\n\t\t\t</div>\r\n\r\n\t\t\t<div>\r\n\t\t\t\t<label class=\"block mb-2 text-sm font-medium\">Password</label>\r\n\t\t\t\t<input type=\"password\"\r\n\t\t\t\t\t   placeholder=\"••••••••\"\r\n\t\t\t\t\t   class=\"border sm:text-sm rounded-lg block w-full p-2.5\"\r\n\t\t\t\t\t   [required]=\"true\">\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"flex items-center justify-between\">\r\n\t\t\t\t<div class=\"flex items-start\">\r\n\t\t\t\t\t<div class=\"flex items-center h-10\">\r\n\t\t\t\t\t\t<img class=\"w-7 h-7 cursor-pointer\"\r\n\t\t\t\t\t\t\t ngSrc=\"https://img.icons8.com/color/512/google-logo.png\"\r\n\t\t\t\t\t\t\t height=\"512\"\r\n\t\t\t\t\t\t\t width=\"512\"\r\n\t\t\t\t\t\t\t alt=\"google\">\r\n\t\t\t\t\t\t<img class=\"w-7 h-7 cursor-pointer ml-3\"\r\n\t\t\t\t\t\t\t ngSrc=\"https://img.icons8.com/color/512/facebook-new.png\"\r\n\t\t\t\t\t\t\t height=\"512\"\r\n\t\t\t\t\t\t\t width=\"512\"\r\n\t\t\t\t\t\t\t alt=\"facebook\">\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<a href=\"#\"\r\n\t\t\t\t   class=\"text-sm font-medium text-primary-500 hover:underline\">\r\n\t\t\t\t\tForgot password?\r\n\t\t\t\t</a>\r\n\t\t\t</div>\r\n\t\t\t<button type=\"submit\" routerLink=\"/dashboard\"\r\n\t\t\t\t\tclass=\"w-full text-[white] bg-primary-400 hover:bg-primary-300 focus:outline-none font-medium rounded-lg text-sm px-5 py-2.5 text-center\">\r\n\t\t\t\tSign in\r\n\t\t\t</button>\r\n\t\t</form>\r\n\t</div>\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {LoginFormComponent} from \"../login-form/login-form.component\";\r\n\r\n@Component({\r\n    selector: 'aster-cms-login',\r\n    imports: [\r\n        LoginFormComponent\r\n    ],\r\n    templateUrl: './login.component.html',\r\n    styleUrl: './login.component.scss'\r\n})\r\nexport class LoginComponent {\r\n\r\n\t@Input() companyLogo: string = 'https://www.bloomscorp.com/assets/images/logo.png';\r\n\r\n}\r\n","<section class=\"flex items-center justify-center px-6 py-8 mx-auto h-screen lg:py-0\">\r\n\t<aster-cms-login-form [companyLogo]=\"companyLogo\" class=\"w-full flex items-center justify-center\"></aster-cms-login-form>\r\n</section>\r\n","import {InjectionToken} from \"@angular/core\";\r\n\r\nexport const ASTER_CONFIG = new InjectionToken<AsterConfig>('configuration');\r\n\r\nexport interface AsterConfig {\r\n\tproduction: boolean,\r\n\tdomain: {\r\n\t\tproduction: string,\r\n\t\tdev: string\r\n\t},\r\n\tport: {\r\n\t\tproduction: number,\r\n\t\tdev: number\r\n\t},\r\n\tauth: {\r\n\t\tjwt: {\r\n\t\t\tkey1: string,\r\n\t\t\tkey2: string,\r\n\t\t\tkey3: string,\r\n\t\t\tkey4: string,\r\n\t\t\tkey5: string\r\n\t\t},\r\n\t\tsuccessRouteKey: string\r\n\t}\r\n}\r\n","export class Constant {\r\n\r\n\t/* JWT CONSTANTS */\r\n\r\n\tpublic static readonly AUTHORIZATION_HEADER: string = 'Authorization';\r\n\tpublic static readonly CONTENT_TYPE_HEADER: string = 'Content-Type';\r\n\tpublic static readonly AUTHORIZATION_SCHEME: string = 'Bearer ';\r\n\tpublic static readonly EXPIRED_TOKEN: string = 'expired-token';\r\n\tpublic static readonly DOMAIN_NOT_ALLOWED: string = 'domain-not-allowed';\r\n\tpublic static readonly NO_JWT_TOKEN: string = 'no-jwt-token';\r\n\r\n\tpublic static readonly PRODUCT_PREVIEW_LIST: string = 'productPreviewList';\r\n\r\n\tprivate constructor() {\r\n\t}\r\n}\r\n","export class Message {\r\n\r\n\tpublic static readonly GENERIC_FAILURE: string = 'Something went wrong!';\r\n\tpublic static readonly GENERIC_FAILURE_REQUEST_INCOMPLETE: string = 'Something went wrong. We could not complete the request.';\r\n\tpublic static readonly EXPIRED_TOKEN_RECEIVED: string = 'An expired session was received. You may need to login again.';\r\n\tpublic static readonly RESOURCE_VALIDATION_FAILED: string = 'We could not validate your authority to access resources.';\r\n\tpublic static readonly LOGIN_REQUEST: string = 'You need to login or sign up with us!';\r\n\tpublic static readonly LOGIN_SUCCESSFUL: string = 'Logged in successfully!';\r\n\tpublic static readonly INVALID_CREDENTIALS: string = 'Please provide valid login credentials.';\r\n\tpublic static readonly INVALID_FORM_FIELDS: string = 'Some of the form fields seem to be invalid.';\r\n\tpublic static readonly SIGNUP_SUCCESSFUL: string = 'You have successfully signed up with us! Please wait as we log you in.';\r\n\tpublic static readonly LOGIN_WAIT: string = 'Please wait as we log you in.';\r\n\tpublic static readonly AUTHORIZING: string = 'Authorizing, please wait';\r\n\tpublic static readonly LOGOUT_REQUEST: string = 'Do you really want to logout?';\r\n\tpublic static readonly LOGOUT_SUCCESSFUL: string = 'Logged out successfully!';\r\n\r\n\tprivate constructor() {\r\n\t}\r\n}\r\n","import {Inject, Injectable} from '@angular/core';\r\nimport {ASTER_CONFIG, AsterConfig} from \"./aster-config\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AsterConfigurationService {\r\n\r\n\tconstructor(\r\n\t\t@Inject(ASTER_CONFIG) public config: AsterConfig\r\n\t) {\r\n\t}\r\n\r\n\tpublic get secureConnect(): boolean {\r\n\t\treturn this.config.production;\r\n\t}\r\n\r\n\tpublic get protocol(): string {\r\n\t\treturn this.secureConnect ? 'https://' : 'http://';\r\n\t}\r\n\r\n\tpublic get domain(): string {\r\n\t\treturn this.config.production ? this.config.domain.production : this.config.domain.dev;\r\n\t}\r\n\r\n\tpublic get port(): string {\r\n\t\treturn this.config.production ? String(this.config.port.production) : String(this.config.port.dev);\r\n\t}\r\n\r\n\tpublic get serverEndpoint(): string {\r\n\t\treturn `${this.protocol}${this.domain}:${this.port}`;\r\n\t}\r\n}\r\n","import {Inject, Injectable} from '@angular/core';\r\nimport {ASTER_CONFIG, AsterConfig} from \"../configuration/aster-config\";\r\nimport {isEmptyString} from \"bmx-pastebox\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class LocalStorageService {\r\n\r\n\tconstructor(@Inject(ASTER_CONFIG) private _config: AsterConfig) {\r\n\t}\r\n\r\n\tprivate readonly _KEY_AUTH_SUCCESS_ROUTE: string = this._config.auth.successRouteKey;\r\n\r\n\tpublic store(key: string, value: string): void {\r\n\t\tlocalStorage.setItem(key, value);\r\n\t}\r\n\r\n\tpublic retrieve(key: string): string {\r\n\t\tconst value: string | null = localStorage.getItem(key);\r\n\t\treturn (value === null) ? '' : value;\r\n\t}\r\n\r\n\tpublic hasKey(key: string): boolean {\r\n\t\treturn this.retrieve(key) !== null;\r\n\t}\r\n\r\n\tpublic clear(): void {\r\n\t\tlocalStorage.clear();\r\n\t}\r\n\r\n\tpublic removeItems(keys: string[]) {\r\n\t\tkeys.forEach((key: string, index: number) => localStorage.removeItem(key));\r\n\t}\r\n\r\n\tpublic storeOnAuthSuccessRoute(route: string): void {\r\n\t\tthis.store(this._KEY_AUTH_SUCCESS_ROUTE, route);\r\n\t}\r\n\r\n\tpublic retrieveOnAuthSuccessRoute(): string {\r\n\t\tconst route: string = this.retrieve(this._KEY_AUTH_SUCCESS_ROUTE);\r\n\t\treturn isEmptyString(route) ? '/' : route;\r\n\t}\r\n}\r\n","import {Inject, Injectable} from '@angular/core';\r\nimport {JwtHelperService} from \"@auth0/angular-jwt\";\r\nimport {HttpHeaders} from \"@angular/common/http\";\r\nimport {ASTER_CONFIG, AsterConfig} from \"../configuration/aster-config\";\r\nimport {areStringsEqual, arrayLength, isEmptyString, valueExists} from \"bmx-pastebox\";\r\nimport {LocalStorageService} from \"../support/local-storage.service\";\r\nimport {Constant} from \"../support/constant\";\r\nimport {Message} from \"../support/message\";\r\nimport {AsterConfigurationService} from \"../configuration/aster-configuration.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class JWTService {\r\n\r\n\tconstructor(\r\n\t\t@Inject(ASTER_CONFIG) private _config: AsterConfig,\r\n\t\tprivate _asterConfiguration: AsterConfigurationService,\r\n\t\t// TODO: localStorage needs to come from ngbase -> send config from library to library\r\n\t\tprivate _localStore: LocalStorageService,\r\n\t) {\r\n\t}\r\n\r\n\tprivate readonly _jwtHelper: JwtHelperService = new JwtHelperService();\r\n\r\n\tprivate readonly _KEY_033: string = this._config.auth.jwt.key1;\r\n\tprivate readonly _KEY_06: string = this._config.auth.jwt.key2;\r\n\tprivate readonly _KEY_40: string = this._config.auth.jwt.key3;\r\n\tprivate readonly _KEY_63: string = this._config.auth.jwt.key4;\r\n\tprivate readonly _KEY_25: string = this._config.auth.jwt.key5;\r\n\r\n\tprivate _jwtToken: string | null = null;\r\n\tprivate _expirationDate: Date | null = null;\r\n\tprivate _isExpired: boolean | null = null;\r\n\r\n\tprivate static shatterToken(token: string): string[] | null {\r\n\t\treturn token.match(/.{1,50}/g);\r\n\t}\r\n\r\n\tprivate static prepareSchemeToken(token: string): string {\r\n\t\treturn Constant.AUTHORIZATION_SCHEME + token;\r\n\t}\r\n\r\n\tprivate storeChunk(chunk: string, storeKey: string): void {\r\n\t\tthis._localStore.store(storeKey, chunk);\r\n\t}\r\n\r\n\tprivate retrieveChunk(storeKey: string): string {\r\n\t\tconst chunk: string = this._localStore.retrieve(storeKey);\r\n\t\treturn isEmptyString(chunk) ? '' : chunk;\r\n\t}\r\n\r\n\tprivate storeJWT(token: string): void {\r\n\t\tconst tokenChunks: string[] | null = JWTService.shatterToken(token);\r\n\r\n\t\tif (tokenChunks !== null && tokenChunks.length === 5) {\r\n\t\t\tthis.storeChunk(tokenChunks[0], this._KEY_033);\r\n\t\t\tthis.storeChunk(tokenChunks[1], this._KEY_06);\r\n\t\t\tthis.storeChunk(tokenChunks[2], this._KEY_40);\r\n\t\t\tthis.storeChunk(tokenChunks[3], this._KEY_63);\r\n\t\t\tthis.storeChunk(tokenChunks[4], this._KEY_25);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate retrieveJWT(): string {\r\n\r\n\t\tif (this._jwtToken !== null)\r\n\t\t\treturn this._jwtToken;\r\n\r\n\t\tthis._jwtToken = this.retrieveChunk(this._KEY_033) +\r\n\t\t\tthis.retrieveChunk(this._KEY_06) +\r\n\t\t\tthis.retrieveChunk(this._KEY_40) +\r\n\t\t\tthis.retrieveChunk(this._KEY_63) +\r\n\t\t\tthis.retrieveChunk(this._KEY_25);\r\n\r\n\t\treturn this._jwtToken;\r\n\t}\r\n\r\n\tprivate isDomainAllowed(url: string): boolean {\r\n\r\n\t\tif (isEmptyString(url)) return false;\r\n\r\n\t\tconst protocolSplitted: string[] = url.split('//');\r\n\r\n\t\tif (!arrayLength(protocolSplitted, 2)) return false;\r\n\r\n\t\tconst hasPort: boolean = protocolSplitted[1].split(':').length > 1;\r\n\t\tconst domainSplitted: string[] = protocolSplitted[1].split(hasPort ? ':' : '/');\r\n\t\tlet portSplitted: string[] = [];\r\n\r\n\t\tif (domainSplitted.length < 2) return false;\r\n\t\tif (hasPort) portSplitted = domainSplitted[1].split('/');\r\n\r\n\t\tif (!areStringsEqual(\r\n\t\t\tprotocolSplitted[0],\r\n\t\t\tthis._asterConfiguration.protocol.substring(0, this._asterConfiguration.protocol.length - 2)\r\n\t\t)) return false;\r\n\r\n\t\tif (!areStringsEqual(\r\n\t\t\tdomainSplitted[0],\r\n\t\t\tthis._asterConfiguration.domain\r\n\t\t)) return false;\r\n\r\n\t\treturn hasPort ? areStringsEqual(\r\n\t\t\tportSplitted[0],\r\n\t\t\tthis._asterConfiguration.port\r\n\t\t) : true;\r\n\t}\r\n\r\n\tpublic prepareJWT(token: string): void {\r\n\t\tthis._jwtToken = token;\r\n\t\tthis._expirationDate = this._jwtHelper.getTokenExpirationDate(token);\r\n\t\tthis._isExpired = this._jwtHelper.isTokenExpired(token);\r\n\r\n\t\tif (this._isExpired) throw new Error(Message.EXPIRED_TOKEN_RECEIVED);\r\n\t\telse this.storeJWT(token);\r\n\t}\r\n\r\n\tpublic isJWTUnexpired(forceCheck: boolean = false): boolean {\r\n\r\n\t\tif (this._expirationDate !== null) return (this._expirationDate.getTime() > new Date().getTime());\r\n\t\tif (forceCheck) return !this._jwtHelper.isTokenExpired(this.retrieveJWT());\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tpublic hasLocallyStoredJWT(): boolean {\r\n\t\treturn this._localStore.hasKey(this._KEY_033) &&\r\n\t\t\tthis._localStore.hasKey(this._KEY_06) &&\r\n\t\t\tthis._localStore.hasKey(this._KEY_40) &&\r\n\t\t\tthis._localStore.hasKey(this._KEY_63) &&\r\n\t\t\tthis._localStore.hasKey(this._KEY_25);\r\n\t}\r\n\r\n\tpublic hasValidJWT(): boolean {\r\n\r\n\t\ttry {\r\n\r\n\t\t\tconst token: string = this.retrieveJWT();\r\n\r\n\t\t\tif (isEmptyString(token)) return false;\r\n\t\t\tif (this._jwtHelper.isTokenExpired(token)) return false;\r\n\r\n\t\t\tthis._jwtToken = token;\r\n\r\n\t\t\treturn true;\r\n\t\t} catch (Error) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic destroySession(): void {\r\n\r\n\t\tthis._jwtToken = null;\r\n\t\tthis._expirationDate = null;\r\n\t\tthis._isExpired = null;\r\n\r\n\t\tthis._localStore.removeItems([\r\n\t\t\tthis._KEY_25,\r\n\t\t\tthis._KEY_63,\r\n\t\t\tthis._KEY_40,\r\n\t\t\tthis._KEY_06,\r\n\t\t\tthis._KEY_033\r\n\t\t]);\r\n\t}\r\n\r\n\tpublic injectToken(url: string, contentJSON: boolean = true): HttpHeaders {\r\n\r\n\t\tlet authorizationToken: string;\r\n\r\n\t\tif (!this.isDomainAllowed(url)) authorizationToken = Constant.DOMAIN_NOT_ALLOWED;\r\n\t\telse {\r\n\t\t\tauthorizationToken = !this.isJWTUnexpired(true) ?\r\n\t\t\t\tConstant.EXPIRED_TOKEN :\r\n\t\t\t\tJWTService.prepareSchemeToken(this.retrieveJWT());\r\n\t\t}\r\n\r\n\t\tif (!valueExists(this._jwtToken))\r\n\t\t\tauthorizationToken = Constant.NO_JWT_TOKEN;\r\n\r\n\t\tif (contentJSON) {\r\n\t\t\treturn new HttpHeaders({\r\n\t\t\t\tAuthorization: authorizationToken,\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\treturn new HttpHeaders({\r\n\t\t\t\tAuthorization: authorizationToken\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {RouteReplace} from \"../interface/route-replace\";\r\nimport {Route} from \"@angular/router\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AsterRouteService {\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\t// TODO: add method to replace default routes\r\n\tpublic static replaceRoutes(routes: RouteReplace[]): void {\r\n\r\n\t}\r\n\r\n\tpublic static replaceRouteUrl(route: Route, url: string): Route {\r\n\t\troute.path = url;\r\n\t\treturn route;\r\n\t}\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {TableData} from \"../interface/table-data\";\r\nimport {CellAction} from \"../interface/cell-action\";\r\nimport {NgClass, NgForOf, NgIf} from \"@angular/common\";\r\nimport {CdkCopyToClipboard} from \"@angular/cdk/clipboard\";\r\nimport {MatTooltip} from \"@angular/material/tooltip\";\r\nimport {MatIcon} from \"@angular/material/icon\";\r\nimport {MatIconButton} from \"@angular/material/button\";\r\nimport {RouterLink} from \"@angular/router\";\r\n\r\n@Component({\r\n    selector: 'aster-cms-aster-table',\r\n    imports: [\r\n        NgClass,\r\n        CdkCopyToClipboard,\r\n        MatTooltip,\r\n        MatIcon,\r\n        MatIconButton,\r\n        NgIf,\r\n        NgForOf,\r\n        RouterLink\r\n    ],\r\n    templateUrl: './aster-table.component.html',\r\n    styleUrl: './aster-table.component.scss'\r\n})\r\nexport class AsterTableComponent {\r\n\r\n\t@Input() public set tableData(data: TableData<any>) {\r\n\t\tthis.data = data;\r\n\t\tthis._checkTableData();\r\n\t}\r\n\r\n    public getNestedValue(obj: any, key: string) {\r\n\t\tconst keys = key.split('.');\r\n\t\tlet current = obj;\r\n\r\n\t\tfor (let i = 0; i < keys.length - 1; i++) {\r\n\t\t\tconst part = keys[i];\r\n\t\t\tif (!current[part] || typeof current[part] !== 'object') {\r\n\t\t\t\tcurrent[part] = {};\r\n\t\t\t}\r\n\t\t\tcurrent = current[part];\r\n\t\t}\r\n\t\treturn current[keys[keys.length - 1]];\r\n\t}\r\n\r\n\tpublic data: TableData<any> = {} as TableData<any>;\r\n\tpublic page: number = 1;\r\n\r\n\tprivate _checkActionColumn(): void {\r\n\r\n\t\tconst actionsColumn: CellAction[] | undefined = this.data.columnData.actionsColumn;\r\n\r\n\t\tif (actionsColumn && (actionsColumn.length > 0)) {\r\n\t\t\tactionsColumn.forEach(action => {\r\n\t\t\t\tif (action.isRoute && !action.routeProvider)\r\n\t\t\t\t\tconsole.error(`CellAction with id: ${action.id} which is a route needs a routeProvider!`);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _checkTableData(): void {\r\n\t\tthis._checkActionColumn();\r\n\t}\r\n\r\n\tpublic ngOnInit(): void {\r\n\t}\r\n\r\n\tprotected getColumnIndex(): number {\r\n\t\treturn this.data.columnData.numbered ? (this.data.keys.length + 1) : (this.data.keys.length);\r\n\t}\r\n\r\n\tprotected actionColumnRouteProvider(action: CellAction, row: any, rowIndex: number): string {\r\n\t\tif (action.routeProvider)\r\n\t\t\treturn action.routeProvider(row, rowIndex, this.getColumnIndex());\r\n\t\treturn '/';\r\n\t}\r\n\r\n\tprotected actionColumnRouteClickAction(action: CellAction, row: any, rowIndex: number): void {\r\n\t\taction.run(\r\n\t\t\trow,\r\n\t\t\trowIndex,\r\n\t\t\tthis.getColumnIndex()\r\n\t\t);\r\n\t}\r\n\r\n\tprotected actionColumnClickAction(action: CellAction, row: any, rowIndex: number): void {\r\n\t\taction.run(\r\n\t\t\trow,\r\n\t\t\trowIndex,\r\n\t\t\t(this.data.columnData.numbered ? (this.data.keys.length + 1) : (this.data.keys.length))\r\n\t\t);\r\n\t}\r\n}\r\n","<section class=\"ax-table ax-default-font ax-default-transition flex flex-col justify-start w-full\">\r\n\t<div class=\"ax-table-headers flex flex-row justify-start\">\r\n\t\t<div *ngIf=\"data.columnData.numbered\" class=\"ax-table-header ax-table-header-sm\">\r\n\t\t\t<span>Sl. No.</span>\r\n\t\t</div>\r\n\t\t<div *ngFor=\"let column of data.columnData.columns; index as i;\"\r\n\t\t\t [ngClass]=\"column.sm ? 'ax-table-header-sm' : 'ax-table-header-md'\"\r\n\t\t\t class=\"ax-table-header\">\r\n\t\t\t<span>{{ column.header.title }}</span>\r\n\t\t</div>\r\n\t\t@if (data.columnData.actionsColumn && (data.columnData.actionsColumn.length > 0)) {\r\n\t\t\t<span class=\"ax-table-header ax-table-header-sm\">Action(s)</span>\r\n\t\t}\r\n\t</div>\r\n\t<div class=\"ax-table-content flex flex-col justify-start\">\r\n\t\t<div *ngFor=\"let row of data.content; index as i;\" class=\"ax-table-row flex flex-row justify-start\">\r\n\t\t\t<div *ngIf=\"data.columnData.numbered\" class=\"ax-table-cell ax-table-cell-sm flex flex-row justify-center\">\r\n\t\t\t\t<span>{{ i + 1 }}</span>\r\n\t\t\t</div>\r\n\t\t\t<div *ngFor=\"let key of data.keys; index as j;\"\r\n\t\t\t\t [ngClass]=\"data.columnData.columns[j].sm ? 'ax-table-cell-sm' : 'ax-table-cell-md'\"\r\n\t\t\t\t class=\"ax-table-cell flex flex-row justify-between items-center\">\r\n\t\t\t\t<span class=\"ax-table-cell-text\">{{ getNestedValue(row, key) }}</span>\r\n\t\t\t\t<div class=\"ax-table-cell-actions flex flex-row justify-end\">\r\n\t\t\t\t\t<button *ngIf=\"data.columnData.columns[j].defaultActions?.copy\"\r\n\t\t\t\t\t\t\tmat-icon-button\r\n\t\t\t\t\t\t\t[cdkCopyToClipboard]=\"getNestedValue(row, key)\"\r\n\t\t\t\t\t\t\t[matTooltip]=\"'copy'\"\r\n\t\t\t\t\t\t\t[matTooltipPosition]=\"'above'\"\r\n\t\t\t\t\t\t\tclass=\"ax-mat-icon-button-sm ax-table-cell-action\"\r\n\t\t\t\t\t\t\taria-label=\"copy content\">\r\n\t\t\t\t\t\t<mat-icon>content_copy</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<ng-container *ngIf=\"data.columnData.columns[j].actions\">\r\n\t\t\t\t\t\t<button *ngFor=\"let action of data.columnData.columns[j].actions; index as k;\"\r\n\t\t\t\t\t\t\t\tmat-icon-button\r\n\t\t\t\t\t\t\t\t(click)=\"action.run(getNestedValue(row, key), i, (data.columnData.numbered ? j + 1 : j))\"\r\n\t\t\t\t\t\t\t\t[matTooltip]=\"action.tooltip\"\r\n\t\t\t\t\t\t\t\t[matTooltipPosition]=\"'above'\"\r\n\t\t\t\t\t\t\t\tclass=\"ax-mat-icon-button-sm mx-1 ax-table-cell-action\"\r\n\t\t\t\t\t\t\t\t[attr.aria-label]=\"action.ariaLabel\">\r\n\t\t\t\t\t\t\t<mat-icon>{{ action.matIcon }}</mat-icon>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t@if (data.columnData.actionsColumn && (data.columnData.actionsColumn.length > 0)) {\r\n\t\t\t\t<div class=\"ax-table-cell ax-table-cell-sm flex flex-row justify-end\">\r\n\t\t\t\t\t@for (action of data.columnData.actionsColumn; track action.id) {\r\n\t\t\t\t\t\t@if (action.isRoute) {\r\n\t\t\t\t\t\t\t<a [routerLink]=\"actionColumnRouteProvider(action, row, i)\"\r\n\t\t\t\t\t\t\t   (click)=\"actionColumnRouteClickAction(action, row, i)\"\r\n\t\t\t\t\t\t\t   [matTooltip]=\"action.tooltip\"\r\n\t\t\t\t\t\t\t   [matTooltipPosition]=\"'above'\"\r\n\t\t\t\t\t\t\t   class=\"ax-mat-icon-button-sm mx-1 ax-table-cell-action\"\r\n\t\t\t\t\t\t\t   [attr.aria-label]=\"action.ariaLabel\">\r\n\t\t\t\t\t\t\t\t<mat-icon>{{ action.matIcon }}</mat-icon>\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t<button mat-icon-button\r\n\t\t\t\t\t\t\t\t\t(click)=\"actionColumnClickAction(action, row, i)\"\r\n\t\t\t\t\t\t\t\t\t[matTooltip]=\"action.tooltip\"\r\n\t\t\t\t\t\t\t\t\t[matTooltipPosition]=\"'above'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"ax-mat-icon-button-sm mx-1 ax-table-cell-action\"\r\n\t\t\t\t\t\t\t\t\t[attr.aria-label]=\"action.ariaLabel\">\r\n\t\t\t\t\t\t\t\t<mat-icon>{{ action.matIcon }}</mat-icon>\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</div>\r\n</section>\r\n","import {AsterNavigationItem} from \"../interface/aster-navigation-item\";\r\nimport {AsterRequestMapper} from \"../../route/model/aster-request-mapper\";\r\n\r\nexport class AsterNavigationItems {\r\n\r\n\tprivate static readonly dashboardNavigation: AsterNavigationItem = {\r\n\t\ticon: 'donut_large',\r\n\t\tname: 'dashboard',\r\n\t\turl: AsterRequestMapper.getAbsoluteUrl(AsterRequestMapper.DASHBOARD),\r\n\t}\r\n\r\n\tprivate static readonly tenantNavigation: AsterNavigationItem = {\r\n\t\ticon: 'manage_accounts',\r\n\t\tname: 'users',\r\n\t\turl: AsterRequestMapper.getAbsoluteUrl(AsterRequestMapper.MANAGE_USERS),\r\n\t}\r\n\r\n\tprivate static readonly productNavigation: AsterNavigationItem = {\r\n\t\ticon: 'shopping_bag',\r\n\t\tname: 'products',\r\n\t\turl: AsterRequestMapper.getAbsoluteUrl(AsterRequestMapper.MANAGE_PRODUCTS),\r\n\t}\r\n\r\n\tprivate static readonly orderNavigation: AsterNavigationItem = {\r\n\t\ticon: 'inventory',\r\n\t\tname: 'orders',\r\n\t\turl: AsterRequestMapper.getAbsoluteUrl(AsterRequestMapper.MANAGE_ORDERS),\r\n\t}\r\n\r\n\tpublic static get items(): AsterNavigationItem[] {\r\n\t\treturn [\r\n\t\t\tAsterNavigationItems.dashboardNavigation,\r\n\t\t\tAsterNavigationItems.tenantNavigation,\r\n\t\t\tAsterNavigationItems.productNavigation,\r\n\t\t\tAsterNavigationItems.orderNavigation\r\n\t\t]\r\n\t}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {AsterNavigationItem} from \"../interface/aster-navigation-item\";\r\nimport {AsterNavigationItems} from \"../model/aster-navigation-items\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AsterNavigationMapperService {\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\tprivate _navigationItemList: AsterNavigationItem[] = AsterNavigationItems.items;\r\n\r\n\tget navigationItemList(): AsterNavigationItem[] {\r\n\t\treturn this._navigationItemList;\r\n\t}\r\n\r\n\tset navigationItemList(value: AsterNavigationItem[]) {\r\n\t\tthis._navigationItemList = value;\r\n\t}\r\n\r\n\tprivate _companyLogo: string = 'https://www.bloomscorp.com/assets/images/logo.png';\r\n\r\n\tget companyLogo(): string {\r\n\t\treturn this._companyLogo;\r\n\t}\r\n\r\n\tset companyLogo(value: string) {\r\n\t\tthis._companyLogo = value;\r\n\t}\r\n\r\n\tprivate _companyName: string = 'Bloomscorp';\r\n\r\n\tget companyName(): string {\r\n\t\treturn this._companyName;\r\n\t}\r\n\r\n\tset companyName(value: string) {\r\n\t\tthis._companyName = value;\r\n\t}\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {AsterNavigationItem} from \"../interface/aster-navigation-item\";\r\nimport {RouterLink} from \"@angular/router\";\r\nimport {MatIconModule} from \"@angular/material/icon\";\r\nimport {AsterNavigationMapperService} from \"../service/aster-navigation-mapper.service\";\r\n\r\n@Component({\r\n    selector: 'aster-cms-navigation',\r\n\timports: [\r\n\t\tRouterLink,\r\n\t\tMatIconModule\r\n\t],\r\n    templateUrl: './navigation.component.html',\r\n    styleUrl: './navigation.component.scss'\r\n})\r\nexport class NavigationComponent implements OnInit {\r\n\r\n\t@Input() public companyLogo: string = '';\r\n\t@Input() public companyName: string = '';\r\n\t@Input() public navigationItemList: AsterNavigationItem[] = [];\r\n\r\n\t@Output() navigationToggleEvent: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n\tconstructor(\r\n\t\tprivate _asterNavigationMapper: AsterNavigationMapperService\r\n\t) {\r\n\t}\r\n\r\n\tpublic toggleSidebar(): void {\r\n\t\tthis.navigationToggleEvent.emit(false);\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.navigationItemList = this._asterNavigationMapper.navigationItemList;\r\n\t\tthis.companyLogo = this._asterNavigationMapper.companyLogo;\r\n\t\tthis.companyName = this._asterNavigationMapper.companyName;\r\n\t}\r\n\r\n}\r\n","<aside id=\"default-sidebar\" class=\"fixed top-0 left-0 z-40 w-64 h-screen transition-transform translate-x-0\" aria-label=\"Sidebar\">\r\n\t<div class=\"h-full px-3 py-4 overflow-y-auto bg-gray-50\">\r\n\t\t<ul class=\"space-y-2 font-medium\">\r\n\t\t\t<li>\r\n\t\t\t\t<div class=\"flex items-center p-2 text-gray-900 rounded-lg group\">\r\n\t\t\t\t\t<img [src]=\"companyLogo\"  alt=\"\" width=\"20px\"/>\r\n\t\t\t\t\t<span class=\"flex-1 ms-3 whitespace-nowrap\">{{companyName}}</span>\r\n\t\t\t\t\t<span (click)=\"toggleSidebar()\" class=\"inline-flex items-center justify-center px-2 py-1 ms-3 text-gray-800 rounded-full font-bold hover:bg-gray-100 cursor-pointer\"><<</span>\r\n\t\t\t\t</div>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t\t<ul class=\"space-y-2 font-medium border-t border-gray-200 pt-4 mt-2\">\r\n\t\t\t@for (item of navigationItemList; track item) {\r\n\t\t\t\t<li>\r\n\t\t\t\t\t<a [routerLink]=\"item.url\" class=\"flex items-center p-2 text-gray-900 rounded-lg hover:bg-gray-100 group\">\r\n\t\t\t\t\t\t<mat-icon class=\"text-gray-500 group-hover:text-gray-900\">{{item.icon}}</mat-icon>\r\n\t\t\t\t\t\t<span class=\"ms-3 capitalize\">{{item.name}}</span>\r\n\t\t\t\t\t</a>\r\n\t\t\t\t</li>\r\n\t\t\t}\r\n\t\t</ul>\r\n\t</div>\r\n</aside>\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'aster-cms-header-section',\r\n    imports: [],\r\n    templateUrl: './header-section.component.html',\r\n    styleUrl: './header-section.component.scss'\r\n})\r\nexport class HeaderSectionComponent {\r\n\r\n\t@Input() section: string = '';\r\n\t@Input() subSection: string = '';\r\n\r\n}\r\n","<section class=\"py-5\">\r\n\t<p class=\"font-bold text-2xl text-primary-500\">{{section}}</p>\r\n\t<p class=\"text-gray-500\">{{subSection}}</p>\r\n</section>\r\n","import {Component, Input} from '@angular/core';\r\nimport {AsterDashboardItem} from \"../interface/aster-dashboard-item\";\r\nimport {MatIcon} from \"@angular/material/icon\";\r\nimport {RouterLink} from \"@angular/router\";\r\n\r\n@Component({\r\n    selector: 'aster-cms-dashboard-card',\r\n    imports: [\r\n        MatIcon,\r\n        RouterLink\r\n    ],\r\n    templateUrl: './dashboard-card.component.html',\r\n    styleUrl: './dashboard-card.component.scss'\r\n})\r\nexport class DashboardCardComponent {\r\n\r\n\t@Input() dashboardItem: AsterDashboardItem = {} as AsterDashboardItem;\r\n\r\n}\r\n","<a [routerLink]=\"dashboardItem.link\" class=\"mr-5 my-3 flex items-center bg-gray-50 border rounded-sm overflow-hidden cursor-pointer group\">\r\n\t<div class=\"p-4 group-hover:bg-primary-400 bg-primary-500 px-5\">\r\n\t\t<mat-icon class=\"scale-[1.8] text-white\">{{dashboardItem.icon}}</mat-icon>\r\n\t</div>\r\n\t<div class=\"px-4 text-gray-700\">\r\n\t\t<h3 class=\"text-sm tracking-wider\">{{dashboardItem.name}}</h3>\r\n\t\t@if (dashboardItem.count) {\r\n\t\t\t<p class=\"text-2xl\">{{dashboardItem.count}}</p>\r\n\t\t}\r\n\t</div>\r\n</a>\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class DashboardService {\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\tpublic test: string = 'LIBRARY';\r\n}\r\n","import {AsterDashboardItem} from \"../interface/aster-dashboard-item\";\r\nimport {AsterRequestMapper} from \"../../route/model/aster-request-mapper\";\r\n\r\nexport class AsterDashboardItems {\r\n\r\n\tprivate static readonly item1: AsterDashboardItem = {\r\n\t\tname: 'manage users',\r\n\t\ticon: 'manage_accounts',\r\n\t\tcount: 0,\r\n\t\tlink: AsterRequestMapper.getAbsoluteUrl(AsterRequestMapper.MANAGE_USERS)\r\n\t}\r\n\r\n\tprivate static readonly item2: AsterDashboardItem = {\r\n\t\tname: 'manage products',\r\n\t\ticon: 'shopping_bag',\r\n\t\tcount: 200,\r\n\t\tlink: AsterRequestMapper.getAbsoluteUrl(AsterRequestMapper.MANAGE_PRODUCTS)\r\n\t}\r\n\r\n\tprivate static readonly item3: AsterDashboardItem = {\r\n\t\tname: 'manage orders',\r\n\t\ticon: 'shopping_cart',\r\n\t\tcount: 213,\r\n\t\tlink: AsterRequestMapper.getAbsoluteUrl(AsterRequestMapper.MANAGE_ORDERS)\r\n\t}\r\n\r\n\tpublic static items: AsterDashboardItem[] = [\r\n\t\tAsterDashboardItems.item1,\r\n\t\tAsterDashboardItems.item2,\r\n\t\tAsterDashboardItems.item3\r\n\t];\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {AsterDashboardItems} from \"../model/aster-dashboard-items\";\r\nimport {AsterDashboardItem} from \"../interface/aster-dashboard-item\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AsterDashboardMapperService {\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\tprivate _dashboardItems: AsterDashboardItem[] = AsterDashboardItems.items;\r\n\r\n\tget dashboardItems(): AsterDashboardItem[] {\r\n\t\treturn this._dashboardItems;\r\n\t}\r\n\r\n\tset dashboardItems(value: AsterDashboardItem[]) {\r\n\t\tthis._dashboardItems = value;\r\n\t}\r\n\r\n\tprivate _heading: string = 'Manage Dashboard';\r\n\r\n\tget heading(): string {\r\n\t\treturn this._heading;\r\n\t}\r\n\r\n\tset heading(value: string) {\r\n\t\tthis._heading = value;\r\n\t}\r\n\r\n\tprivate _subHeading: string = 'Start your website management journey';\r\n\r\n\tget subHeading(): string {\r\n\t\treturn this._subHeading;\r\n\t}\r\n\r\n\tset subHeading(value: string) {\r\n\t\tthis._subHeading = value;\r\n\t}\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {DashboardCardComponent} from \"../dashboard-card/dashboard-card.component\";\r\nimport {AsterDashboardItem} from \"../interface/aster-dashboard-item\";\r\nimport {HeaderSectionComponent} from \"../../component-library/header/header-section/header-section.component\";\r\nimport {AsterDashboardMapperService} from \"../service/aster-dashboard-mapper.service\";\r\nimport {DashboardService} from \"../service/dashboard.service\";\r\n\r\n@Component({\r\n    selector: 'aster-cms-dashboard',\r\n    providers: [DashboardService],\r\n\timports: [\r\n\t\tDashboardCardComponent,\r\n\t\tHeaderSectionComponent\r\n\t],\r\n    templateUrl: './dashboard.component.html',\r\n    styleUrl: './dashboard.component.scss'\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n\t@Input() heading: string  = '';\r\n\t@Input() subHeading: string  = '';\r\n\t@Input() dashboardItems: AsterDashboardItem[] = [];\r\n\r\n\tconstructor(\r\n\t\tprivate _asterDashboardMapper: AsterDashboardMapperService,\r\n\t\tprivate _dashboard: DashboardService\r\n\t) {\r\n\t\tthis.dashboardItems = this._asterDashboardMapper.dashboardItems;\r\n\t\tthis.heading = this._asterDashboardMapper.heading;\r\n\t\tthis.subHeading= this._asterDashboardMapper.subHeading;\r\n\t}\r\n\r\n\tpublic ngOnInit(): void {\r\n\t}\r\n}\r\n","<aster-cms-header-section [section]=\"heading\"\r\n\t\t\t\t\t\t  [subSection]=\"subHeading\"></aster-cms-header-section>\r\n\r\n<div class=\"aster-dashboard-container gap-0\">\r\n\t@for (dashboardItem of dashboardItems; track dashboardItem) {\r\n\t\t<aster-cms-dashboard-card [dashboardItem]=\"dashboardItem\"></aster-cms-dashboard-card>\r\n\t}\r\n</div>\r\n","export abstract class AsterProductService {\r\n}\r\n","import {ProductListingScreenData} from \"../interface/screen/product-listing-screen-data\";\r\nimport {TableData} from \"../../component-library/aster-table/interface/table-data\";\r\n\r\nexport abstract class AsterProductListingService<P> {\r\n\r\n\tpublic screen: ProductListingScreenData = {\r\n\t\theader: {\r\n\t\t\ttitle: 'Manage Products',\r\n\t\t\tsubtitle: 'View and manage your products here'\r\n\t\t},\r\n\t\t//TODO: why is add product link dynamic?\r\n        addProductLink: '/product/add'\r\n\t};\r\n\r\n\tprivate _loading: boolean = true;\r\n\tprivate _table: TableData<P> = {} as TableData<P>;\r\n\tprivate _productList: P[] = [];\r\n\r\n\tpublic get isLoading(): boolean {\r\n\t\treturn this._loading;\r\n\t}\r\n\r\n\tpublic set isLoading(value: boolean) {\r\n\t\tthis._loading = value;\r\n\t}\r\n\r\n\tpublic get table(): TableData<P> {\r\n\t\treturn this._table;\r\n\t}\r\n\r\n\tpublic set table(value: TableData<P>) {\r\n\t\tthis._table = value;\r\n\t}\r\n\r\n\tpublic get productList(): P[] {\r\n\t\treturn this._productList;\r\n\t}\r\n\r\n\tpublic set productList(value: P[]) {\r\n\t\tthis._productList = value;\r\n\t}\r\n\r\n\tpublic abstract fetchProductList(): void;\r\n\tpublic abstract prepareProductListTable(): TableData<P>;\r\n}\r\n","export abstract class AsterProductDetailsService<P> {\r\n\r\n    private _loading: boolean = true;\r\n\r\n    private _product: P = {} as P;\r\n\r\n    public get productData(): P {\r\n        return this._product;\r\n    }\r\n\r\n    public set productData(value: P) {\r\n        this._product = value;\r\n    }\r\n\r\n    public get isLoading(): boolean {\r\n        return this._loading;\r\n    }\r\n\r\n    public set isLoading(value: boolean) {\r\n        this._loading = value;\r\n    }\r\n\r\n    public abstract prepareProduct(): P;\r\n    public abstract fetchProduct(): void;\r\n}\r\n","import {ProductSegment} from \"../interface/product-segment\";\r\nimport {ManageProductScreenData} from \"../interface/screen/manage-product-screen-data\";\r\n\r\nexport abstract class AsterManageProductService {\r\n\r\n\tpublic screen: ManageProductScreenData = {\r\n\t\theader: {\r\n\t\t\ttitle: 'Manage Products',\r\n\t\t\tsubtitle: 'Select a product segment'\r\n\t\t},\r\n\t};\r\n\r\n\tprivate _segments: ProductSegment[] = [];\r\n\r\n\tpublic get segments() {\r\n\t\treturn this._segments;\r\n\t}\r\n\r\n\tpublic set segments(segments: ProductSegment[]) {\r\n\t\tthis._segments = segments;\r\n\t}\r\n\r\n\tpublic abstract prepareSegments(): void;\r\n}\r\n","import {AsterForm} from \"../../component-library/aster-form/interface/aster-form\";\r\nimport {AsterFormCompatible} from \"../../component-library/aster-form/interface/aster-form-compatible\";\r\nimport {AddProductScreenData} from \"../interface/screen/add-product-screen-data\";\r\nimport {signal, WritableSignal} from \"@angular/core\";\r\n\r\nexport abstract class AsterAddProductService<P extends AsterFormCompatible> {\r\n\r\n    public screen: AddProductScreenData = {\r\n\t\theader: {\r\n\t\t\ttitle: 'Add Your Products',\r\n\t\t\tsubtitle: 'Create and manage your products here'\r\n\t\t},\r\n\t};\r\n\r\n\tprivate _data: WritableSignal<AsterForm<P>> = signal({} as AsterForm<P>);\r\n\r\n\tpublic get data(): AsterForm<P> {\r\n\t\treturn this._data();\r\n\t}\r\n\r\n\tpublic set data(data: AsterForm<P>) {\r\n\t\tthis._data.set(data);\r\n\t}\r\n\r\n\tpublic abstract prepareData(): AsterForm<P>;\r\n}\r\n","import {AsterFormCompatible} from '../../component-library/aster-form/interface/aster-form-compatible';\r\nimport {AsterForm} from '../../component-library/aster-form/interface/aster-form';\r\nimport {UpdateProductScreenData} from '../interface/screen/update-product-screen-data';\r\nimport { signal, WritableSignal } from '@angular/core';\r\n\r\n\r\nexport abstract class AsterUpdateProductService<P extends AsterFormCompatible> {\r\n\r\n    private _data: WritableSignal<AsterForm<P>> = signal({} as AsterForm<P>);\r\n\tpublic screen: UpdateProductScreenData = {\r\n\t\theader: {\r\n\t\t\ttitle: 'Update Your Products',\r\n\t\t\tsubtitle: 'Update and review your products here',\r\n\t\t},\r\n\t};\r\n\r\n    constructor() {}\r\n\r\n\tpublic get data(): AsterForm<P> {\r\n\t\treturn this._data();\r\n\t}\r\n\r\n\tpublic set data(data: AsterForm<P>) {\r\n\t\tthis._data.set(data);\r\n\t}\r\n\r\n\tpublic abstract prepareData(): AsterForm<P>;\r\n\tpublic abstract fetchProduct(): void;\r\n}\r\n","import {BmxTransmissionService} from 'bmx-transmission';\r\nimport {RaintreeResponse} from 'bmx-transmission/lib/raintree/interface/raintree-response';\r\nimport {JWTService} from '../../authentication/jwt.service';\r\nimport {FormPayload} from 'bmx-transmission/lib/raintree/interface/form-payload';\r\n\r\nexport abstract class CRUDTransmissionService<E> {\r\n\tprotected constructor(\r\n\t\tprivate _transmission: BmxTransmissionService,\r\n\t\tprivate _jwt: JWTService\r\n\t) {}\r\n\r\n\tpublic readAll<P extends RaintreeResponse>(\r\n\t\tonPreExecute: () => void,\r\n\t\tonPostExecute: (response: E[]) => void,\r\n\t\tonSuccess: (response: E[]) => void,\r\n\t\tonFailure: (error: string) => void,\r\n\t\tonComplete: () => void,\r\n\t\turl: string,\r\n\t\tkey: string,\r\n        jwt: boolean = true\r\n\t): void {\r\n\t\tthis._transmission.executeGetPayload<P, E[]>(\r\n\t\t\turl,\r\n\t\t\tjwt ? this._jwt.injectToken(url): undefined,\r\n\t\t\tonPreExecute,\r\n\t\t\tonPostExecute,\r\n\t\t\tonSuccess,\r\n\t\t\tonFailure,\r\n\t\t\tonComplete,\r\n\t\t\t`${key}`\r\n\t\t);\r\n\t}\r\n\r\n\tpublic read<P extends RaintreeResponse>(\r\n\t\tonPreExecute: () => void,\r\n\t\tonPostExecute: (response: E) => void,\r\n\t\tonSuccess: (response: E) => void,\r\n\t\tonFailure: (error: string) => void,\r\n\t\tonComplete: () => void,\r\n\t\turl: string,\r\n\t\tkey: string,\r\n        jwt: boolean = true\r\n\t): void {\r\n\t\tthis._transmission.executeGetPayload<P, E>(\r\n\t\t\turl,\r\n\t\t\tjwt ? this._jwt.injectToken(url): undefined,\r\n\t\t\tonPreExecute,\r\n\t\t\tonPostExecute,\r\n\t\t\tonSuccess,\r\n\t\t\tonFailure,\r\n\t\t\tonComplete,\r\n\t\t\t`${key}`\r\n\t\t);\r\n\t}\r\n\r\n\tpublic create<P extends FormPayload>(\r\n\t\tpayload: P,\r\n\t\tonPreExecute: () => void,\r\n\t\tonPostExecute: (response: RaintreeResponse) => void,\r\n\t\tonSuccess: (response: RaintreeResponse) => void,\r\n\t\tonFailure: () => void,\r\n\t\tonComplete: () => void,\r\n\t\turl: string\r\n\t): void {\r\n\t\tthis._transmission.executeFormPostPayload<P>(\r\n\t\t\turl,\r\n\t\t\tpayload,\r\n\t\t\tthis._jwt.injectToken(url, false),\r\n\t\t\tonPreExecute,\r\n\t\t\tonPostExecute,\r\n\t\t\tonSuccess,\r\n\t\t\tonFailure,\r\n\t\t\tonComplete,\r\n\t\t\ttrue\r\n\t\t);\r\n\t}\r\n\r\n\tpublic update<P extends FormPayload>(\r\n\t\tpayload: P,\r\n\t\tonPreExecute: () => void,\r\n\t\tonPostExecute: (response: RaintreeResponse) => void,\r\n\t\tonSuccess: (response: RaintreeResponse) => void,\r\n\t\tonFailure: () => void,\r\n\t\tonComplete: () => void,\r\n\t\turl: string\r\n\t): void {\r\n\t\tthis._transmission.executeFormPatchPayload<P>(\r\n\t\t\turl,\r\n\t\t\tpayload,\r\n\t\t\tthis._jwt.injectToken(url, false),\r\n\t\t\tonPreExecute,\r\n\t\t\tonPostExecute,\r\n\t\t\tonSuccess,\r\n\t\t\tonFailure,\r\n\t\t\tonComplete,\r\n\t\t\ttrue\r\n\t\t);\r\n\t}\r\n\r\n\tpublic delete(\r\n\t\tonPreExecute: () => void,\r\n\t\tonPostExecute: (response: RaintreeResponse) => void,\r\n\t\tonSuccess: (response: RaintreeResponse) => void,\r\n\t\tonFailure: (error: string) => void,\r\n\t\tonComplete: () => void,\r\n\t\turl: string\r\n\t): void {\r\n\t\tthis._transmission.executeDeletePayload(\r\n\t\t\turl,\r\n\t\t\tthis._jwt.injectToken(url),\r\n\t\t\tonPreExecute,\r\n\t\t\tonPostExecute,\r\n\t\t\tonSuccess,\r\n\t\t\tonFailure,\r\n\t\t\tonComplete\r\n\t\t);\r\n\t}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {AsterConfigurationService} from \"../../configuration/aster-configuration.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class TransmissionHelperService {\r\n\r\n\tconstructor(\r\n\t\tprivate _config: AsterConfigurationService\r\n\t) {\r\n\t}\r\n\r\n\tpublic prepareEndpoint(endpoint: string): string {\r\n\t\treturn `${this._config.serverEndpoint}/${endpoint}`;\r\n\t}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {CRUDTransmissionService} from \"../crud-transmission-service\";\r\nimport {BmxTransmissionService} from \"bmx-transmission\";\r\nimport {RaintreePayload} from \"../../interface/raintree-payload\";\r\nimport {Constant} from \"../../../support/constant\";\r\nimport {TransmissionHelperService} from \"../transmission-helper.service\";\r\nimport {AsterRequestMapper} from \"../../../route/model/aster-request-mapper\";\r\nimport {JWTService} from \"../../../authentication/jwt.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AsterProductPreviewTransmissionService<P> extends CRUDTransmissionService<P> {\r\n\r\n\tconstructor(\r\n\t\tpublic transmission: BmxTransmissionService,\r\n\t\tpublic jwt: JWTService,\r\n\t\tprivate _helper: TransmissionHelperService\r\n\t) {\r\n\t\tsuper(\r\n\t\t\ttransmission,\r\n\t\t\tjwt\r\n\t\t);\r\n\t}\r\n\r\n\tpublic fetchAll(\r\n\t\tonPreExecute: () => void,\r\n\t\tonPostExecute: (response: P[]) => void,\r\n\t\tonSuccess: (response: P[]) => void,\r\n\t\tonFailure: (error: string) => void,\r\n\t\tonComplete: () => void\r\n\t): void {\r\n\t\tsuper.readAll<RaintreePayload<'productPreviewList', P>>(\r\n\t\t\tonPreExecute,\r\n\t\t\tonPostExecute,\r\n\t\t\tonSuccess,\r\n\t\t\tonFailure,\r\n\t\t\tonComplete,\r\n\t\t\tthis._helper.prepareEndpoint(AsterRequestMapper.GET_PRODUCT_PREVIEW),\r\n\t\t\tConstant.PRODUCT_PREVIEW_LIST,\r\n            false\r\n\t\t);\r\n\t}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {CRUDTransmissionService} from '../crud-transmission-service';\r\nimport {BmxTransmissionService} from 'bmx-transmission';\r\nimport {JWTService} from '../../../authentication/jwt.service';\r\nimport {RaintreeResponse} from 'bmx-transmission/lib/raintree/interface/raintree-response';\r\nimport {FormPayload} from 'bmx-transmission/lib/raintree/interface/form-payload';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class AsterProductTransmissionService<E> extends CRUDTransmissionService<E> {\r\n\r\n    constructor(\r\n\t\tprivate transmission: BmxTransmissionService,\r\n\t\tprivate jwt: JWTService\r\n\t) {\r\n\t\tsuper(transmission, jwt);\r\n\t}\r\n\r\n    public override create<P extends FormPayload>(\r\n\t\tpayload: P,\r\n\t\tonPreExecute: () => void,\r\n\t\tonPostExecute: (response: RaintreeResponse) => void,\r\n\t\tonSuccess: (response: RaintreeResponse) => void,\r\n\t\tonFailure: () => void,\r\n\t\tonComplete: () => void,\r\n        url: string,\r\n\t): void {\r\n        this.transmission.executeFormPostPayload<P>(\r\n\t\t\turl,\r\n\t\t\tpayload,\r\n\t\t\tthis.jwt.injectToken(url, false),\r\n\t\t\tonPreExecute,\r\n\t\t\tonPostExecute,\r\n\t\t\tonSuccess,\r\n\t\t\tonFailure,\r\n\t\t\tonComplete,\r\n            true\r\n\t\t);\r\n\t}\r\n}\r\n","export enum AsterFormInputType {\r\n\tTEXT = 0,\r\n\tNUMBER = 1,\r\n\tSELECT = 2,\r\n\tMULTISELECT = 3,\r\n    TEXTAREA = 4,\r\n    RICH_TEXT = 5,\r\n    IMAGE = 6,\r\n    MULTI_IMAGE = 7,\r\n    CHIP = 8\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {AsterFormInput} from \"../interface/aster-form-input\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\n@Component({\r\n    selector: 'aster-form-input-text',\r\n    imports: [\r\n        FormsModule\r\n    ],\r\n    templateUrl: './aster-form-input-text.component.html',\r\n    styleUrl: './aster-form-input-text.component.scss'\r\n})\r\nexport class AsterFormInputTextComponent<T> {\r\n\r\n\t@Input() data: AsterFormInput<T, string> = {} as AsterFormInput<T, string>;\r\n\r\n\tpublic keyPress(event: any): void {\r\n\t\t// console.log(`v => ${event.target.value}`);\r\n\t\t// console.log(`d => ${this.data.defaultValue}`);\r\n\t}\r\n}\r\n","<div class=\"ax-text-input\">\r\n\t<label>{{ data.label }}</label>\r\n\t<input type=\"text\"\r\n\t\t   [attr.id]=\"data.id\"\r\n\t\t   [attr.name]=\"data.name\"\r\n\t\t   [attr.placeholder]=\"data.placeholder\"\r\n\t\t   [attr.minlength]=\"data.min\"\r\n\t\t   [attr.maxlength]=\"data.max\"\r\n\t\t   [attr.pattern]=\"data.pattern\"\r\n\t\t   [readonly]=\"data.readonly\"\r\n\t\t   [disabled]=\"data.disabled\"\r\n\t\t   [attr.spellcheck]=\"data.spellcheck\"\r\n\t\t   [attr.value]=\"data.defaultValue\"\r\n\t\t   [(ngModel)]=\"data.defaultValue\"\r\n\t\t   (keyup)=\"keyPress($event)\"\r\n\t\t   class=\"ax-text-input-field\" />\r\n</div>\r\n","import {Component, Input} from '@angular/core';\r\nimport {AsterFormInput} from \"../interface/aster-form-input\";\r\nimport {FormsModule} from \"@angular/forms\";\r\n\r\n@Component({\r\n    selector: 'aster-form-input-numeric',\r\n    imports: [\r\n        FormsModule\r\n    ],\r\n    templateUrl: './aster-form-input-numeric.component.html',\r\n    styleUrl: './aster-form-input-numeric.component.scss'\r\n})\r\nexport class AsterFormInputNumericComponent<T> {\r\n\r\n\t@Input() data: AsterFormInput<T, number> = {} as AsterFormInput<T, number>;\r\n\r\n\t// TODO: check if defaultValue is a number\r\n}\r\n","<div class=\"ax-number-input\">\r\n\t<label>{{ data.label }}</label>\r\n\t<input type=\"number\"\r\n\t\t   [attr.id]=\"data.id\"\r\n\t\t   [attr.name]=\"data.name\"\r\n\t\t   [attr.placeholder]=\"data.placeholder\"\r\n\t\t   [attr.min]=\"data.min\"\r\n\t\t   [attr.max]=\"data.max\"\r\n\t\t   [attr.pattern]=\"data.pattern\"\r\n\t\t   [readonly]=\"data.readonly\"\r\n\t\t   [disabled]=\"data.disabled\"\r\n\t\t   [attr.value]=\"data.defaultValue\"\r\n\t\t   [(ngModel)]=\"data.defaultValue\"\r\n\t\t   [attr.step]=\"data.step\"\r\n\t\t   class=\"ax-number-input-field\" />\r\n</div>\r\n","import {Component, effect, Input, OnInit, signal, WritableSignal} from '@angular/core';\r\nimport {AsterFormInput} from \"../interface/aster-form-input\";\r\nimport {AsterFormSelectOption} from \"../interface/aster-form-select-option\";\r\nimport {NgForOf} from \"@angular/common\";\r\n\r\n@Component({\r\n    selector: 'aster-form-input-select',\r\n    imports: [\r\n        NgForOf\r\n    ],\r\n    templateUrl: './aster-form-input-select.component.html',\r\n    styleUrl: './aster-form-input-select.component.scss'\r\n})\r\nexport class AsterFormInputSelectComponent<T> implements OnInit {\r\n\r\n\t@Input() data: AsterFormInput<T, AsterFormSelectOption> = {} as AsterFormInput<T, AsterFormSelectOption>;\r\n\r\n    private _defaultValue: WritableSignal<AsterFormSelectOption> = signal({} as AsterFormSelectOption);\r\n\r\n    @Input() set defaultValue(defaultValue: AsterFormSelectOption) {\r\n        this._defaultValue.set(defaultValue);\r\n    }\r\n\r\n    get defaultValue(): AsterFormSelectOption {\r\n        return this._defaultValue();\r\n    }\r\n\r\n    constructor() {\r\n        effect(() => {\r\n            if (this._defaultValue()) {\r\n                this.data.defaultValue = this._defaultValue();\r\n            }\r\n        })\r\n    }\r\n    \r\n    ngOnInit(): void {\r\n    }\r\n    \r\n    public onChange(event: any) {\r\n        this.data.defaultValue = this.data.options.find(option => option.value === event.target.value) as AsterFormSelectOption;\r\n    }\r\n}\r\n","<div class=\"ax-select-input\">\r\n\t<label>{{ data.label }}</label>\r\n\t<select [attr.id]=\"data.id\"\r\n\t\t\t[attr.name]=\"data.name\"\r\n\t\t\t[disabled]=\"data.disabled\"\r\n            [attr.readonly]=\"data.readonly\"\r\n            (change)=\"onChange($event)\"\r\n\t\t\tclass=\"ax-select-input-field\">\r\n\t\t<option *ngFor=\"let option of data.options; index as i;\"\r\n                [value]=\"option.value\"\r\n                [selected]=\"option.value === data.defaultValue.value\">\r\n            {{ option.name }}\r\n        </option>\r\n\t</select>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, effect, Input, signal, WritableSignal } from '@angular/core';\r\nimport { AsterFormInput } from '../interface/aster-form-input';\r\nimport { AsterFormSelectOption } from '../interface/aster-form-select-option';\r\nimport { NgSelectComponent, } from '@ng-select/ng-select';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n    selector: 'aster-form-input-multi-select',\r\n    imports: [\r\n        CommonModule,\r\n        NgSelectComponent,\r\n        FormsModule\r\n    ],\r\n    templateUrl: './aster-form-input-multi-select.component.html',\r\n    styleUrls: ['./aster-form-input-multi-select.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AsterFormInputMultiSelectComponent<T> {\r\n\r\n    private _multiSelectDefaultValue: WritableSignal<AsterFormSelectOption[]> = signal({} as AsterFormSelectOption[]);\r\n\r\n    @Input() data: AsterFormInput<T, AsterFormSelectOption> = {} as AsterFormInput<T, AsterFormSelectOption>;\r\n\r\n    @Input() set multiSelectDefaultValue(value: AsterFormSelectOption[]) {\r\n        this._multiSelectDefaultValue.set(value);\r\n    }\r\n\r\n    get multiSelectDefaultValue(): AsterFormSelectOption[] {\r\n        return this._multiSelectDefaultValue();\r\n    }\r\n\r\n    constructor() {\r\n        effect(() => {\r\n            if (this._multiSelectDefaultValue()) {\r\n            }\r\n        })\r\n    }\r\n\r\n    compareFn(item: AsterFormSelectOption, selected: AsterFormSelectOption) {\r\n        return item.value === selected.value;\r\n    }\r\n\r\n    // TODO: set option to default value if no options available\r\n    // TODO: set option to default value\r\n}\r\n","<div class=\"ax-multi-select-input\">\r\n\t<label>{{ data.label }}</label>\r\n\t<ng-select [attr.id]=\"data.id\"\r\n\t\t\t[attr.name]=\"data.name\"\r\n\t\t\t[readonly]=\"data.disabled\"\r\n            [items]=\"data.options\" \r\n            [multiple]=\"true\"\r\n            [(ngModel)]=\"data.multiSelectDefaultValue\"\r\n            [appendTo]=\"data.appendTo ? data.appendTo : 'body'\" \r\n            bindLabel=\"name\"\r\n            [compareWith]=\"compareFn\"\r\n\t\t\tclass=\"ax-multi-select-input-field\">\r\n\t</ng-select>\r\n</div>","import {CommonModule} from '@angular/common';\r\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\nimport {AsterFormInput} from '../interface/aster-form-input';\r\nimport {FormsModule} from '@angular/forms';\r\n\r\n@Component({\r\n    selector: 'aster-form-input-textarea',\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule\r\n    ],\r\n    templateUrl: './aster-form-input-textarea.component.html',\r\n    styleUrls: ['./aster-form-input-textarea.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AsterFormInputTextareaComponent<T> {\r\n\r\n    @Input() data: AsterFormInput<T, string> = {} as AsterFormInput<T, string>;\r\n}\r\n","<div class=\"ax-textarea-input\">\r\n\t<label>{{ data.label }}</label>\r\n\t<textarea\r\n\t\t   [attr.id]=\"data.id\"\r\n\t\t   [attr.name]=\"data.name\"\r\n\t\t   [attr.placeholder]=\"data.placeholder\"\r\n\t\t   [attr.minlength]=\"data.min\"\r\n\t\t   [attr.maxlength]=\"data.max\"\r\n\t\t   [attr.pattern]=\"data.pattern\"\r\n\t\t   [readonly]=\"data.readonly\"\r\n\t\t   [disabled]=\"data.disabled\"\r\n           [attr.spellcheck]=\"data.spellcheck\"\r\n           [attr.rows]=\"data.rows ? data.rows : 3\"\r\n           [(ngModel)]=\"data.defaultValue\"\r\n\t\t   class=\"ax-textarea-input-field\"></textarea>\r\n</div>","import {CommonModule} from '@angular/common';\r\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\nimport {AsterFormInput} from '../interface/aster-form-input';\r\nimport {CKEditorModule} from '@ckeditor/ckeditor5-angular';\r\nimport ClassicEditor from '@ckeditor/ckeditor5-build-classic';\r\nimport {FormsModule} from '@angular/forms';\r\n\r\n@Component({\r\n    selector: 'aster-form-input-richtext',\r\n    imports: [\r\n        CommonModule,\r\n        CKEditorModule,\r\n        FormsModule\r\n    ],\r\n    templateUrl: './aster-form-input-richtext.component.html',\r\n    styleUrls: ['./aster-form-input-richtext.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AsterFormInputRichtextComponent<T> {\r\n\r\n    @Input() data: AsterFormInput<T, string> = {} as AsterFormInput<T, string>;\r\n\r\n    public Editor;\r\n    public editorConfig = {\r\n        toolbar: {\r\n            items: [\r\n                'undo',\r\n                'redo',\r\n                '|',\r\n                'heading',\r\n                '|',\r\n                'bold',\r\n                'italic',\r\n                '|',\r\n                'link',\r\n                '|',\r\n                'bulletedList',\r\n                'numberedList',\r\n            ],\r\n            shouldNotGroupWhenFull: false,\r\n        },\r\n        language: 'en',\r\n    };\r\n\r\n    constructor() {\r\n\r\n        this.Editor = ClassicEditor;\r\n    }\r\n\r\n}\r\n","<div class=\"ax-richtext-input\">\r\n\t<label>{{ data.label }}</label>\r\n\t<ckeditor \r\n        [config]=\"editorConfig\" \r\n        [editor]=\"Editor\" \r\n        [(ngModel)]=\"data.defaultValue\" class=\"prose\"></ckeditor>\r\n</div>","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n\tname: 'sanitizeUrl',\r\n    standalone: true\r\n})\r\nexport class SanitizeUrlPipe implements PipeTransform {\r\n\r\n\tconstructor (\r\n\t\tprivate sanitize: DomSanitizer\r\n\t) {}\r\n\r\n\ttransform(value: string): SafeUrl {\r\n\t\treturn this.sanitize.bypassSecurityTrustUrl(value);\r\n\t}\r\n\r\n}","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, effect, Input, signal, WritableSignal, type OnInit, } from '@angular/core';\r\nimport { AsterFormInput } from '../interface/aster-form-input';\r\nimport { SanitizeUrlPipe } from '../../pipe/sanitize-url.pipe';\r\nimport { AsterFormImageItem } from '../interface/aster-form-image-item';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n    selector: 'aster-form-input-image',\r\n    imports: [CommonModule, SanitizeUrlPipe, FormsModule, MatIconModule],\r\n    templateUrl: './aster-form-input-image.component.html',\r\n    styleUrls: ['./aster-form-input-image.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AsterFormInputImageComponent<T> implements OnInit {\r\n\r\n    @Input() public data: AsterFormInput<T, AsterFormImageItem> = {} as AsterFormInput<T, AsterFormImageItem>;\r\n\r\n    private _defaultValue: WritableSignal<AsterFormImageItem> = signal({} as AsterFormImageItem);\r\n\r\n    @Input() set defaultValue(defaultValue: AsterFormImageItem) { \r\n        this._defaultValue.set(defaultValue); \r\n    }\r\n\r\n    get defaultValue(): AsterFormImageItem { return this._defaultValue(); }\r\n\r\n    public imageURL: string = '';\r\n    public hideDeleteButton: boolean = true;\r\n\r\n    constructor() {\r\n        effect(() => {\r\n            if (this._defaultValue()) {\r\n                this.setDefault();\r\n            }\r\n        });\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        // this.setDefault();\r\n    }\r\n\r\n    public setDefault(): void {\r\n        if (this.data.defaultValue?.imageFile instanceof File) {\r\n            this.imageURL = URL.createObjectURL(\r\n                this.data.defaultValue?.imageFile\r\n            );\r\n        } else {\r\n            this.imageURL = this.data.defaultValue.imageUrl;\r\n        }\r\n\r\n        if (this.data.defaultValue.deleted || !this.imageURL) {\r\n            this.hideDeleteButton = true;\r\n        }\r\n    }\r\n\r\n    public uploadData(event: Event) {\r\n        const target = event.target as HTMLInputElement;\r\n        const files = target.files as FileList;\r\n        this.imageURL = URL.createObjectURL(files[0]);\r\n        this.data.defaultValue.imageFile = files[0];\r\n        this.hideDeleteButton = false;\r\n        this.data.defaultValue.deleted = false;\r\n        this.data.defaultValue.imageUrl = '';\r\n    }\r\n\r\n    public removeImage(e: Event) {\r\n        e.preventDefault();\r\n        this.imageURL = '';\r\n        this.data.defaultValue.imageFile = null;\r\n        this.data.defaultValue.deleted = true;\r\n        this.hideDeleteButton = true;\r\n    }\r\n}\r\n","<div class=\"grid grid-cols-1 space-y-2\">\r\n    <label>{{data.label}}</label>\r\n    <div class=\"flex items-center justify-center w-full\">\r\n        <label\r\n            class=\"flex flex-col rounded-lg border-2 border-dashed w-full h-60 p-10 group text-center\">\r\n            <div class=\"h-full w-full text-center flex flex-col items-center justify-center\">\r\n                <div class=\"flex flex-auto max-h-48 mx-auto mt-4\">\r\n                    <img class=\"has-mask h-36 object-center\"\r\n                        [src]=\"imageURL | sanitizeUrl\">\r\n                        @if (!hideDeleteButton) {\r\n                            <mat-icon class=\"cursor-pointer text-red-600\" (click)=\"removeImage($event)\">backspace</mat-icon>\r\n                        }\r\n                </div>\r\n                <p class=\"pointer-none text-gray-500 \"><span class=\"text-sm\">Drag and drop</span> files here</p>\r\n            </div>\r\n            <input type=\"file\" class=\"hidden\" (change)=\"uploadData($event)\">\r\n        </label>\r\n    </div>\r\n</div>\r\n<div class=\"ax-text-input\">\r\n\t<input type=\"text\"\r\n\t\t   [(ngModel)]=\"data.defaultValue.altText\"\r\n\t\t   class=\"ax-text-input-field\" />\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, effect, Input, signal, WritableSignal, type OnInit, } from '@angular/core';\r\nimport { AsterFormImageItem } from '../interface/aster-form-image-item';\r\nimport { AsterFormInput } from '../interface/aster-form-input';\r\nimport { SanitizeUrlPipe } from '../../pipe/sanitize-url.pipe';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n    selector: 'aster-form-input-multiple-image',\r\n    imports: [CommonModule, SanitizeUrlPipe, MatIconModule],\r\n    templateUrl: './aster-form-input-multiple-image.component.html',\r\n    styleUrls: ['./aster-form-input-multiple-image.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AsterFormInputMultipleImageComponent<T> implements OnInit {\r\n\r\n    private _multiImageDefaultValue: WritableSignal<AsterFormImageItem[]> = signal([]);\r\n\r\n    @Input()\r\n    data: AsterFormInput<T, AsterFormImageItem> =\r\n        {} as AsterFormInput<T, AsterFormImageItem>;\r\n\r\n    @Input()\r\n    set multiImageDefaultValue(multiImageDefaultValue: AsterFormImageItem[]) {\r\n        this._multiImageDefaultValue.set(multiImageDefaultValue);\r\n    }\r\n\r\n    get multiImageDefaultValue(): AsterFormImageItem[] {\r\n        return this._multiImageDefaultValue();\r\n    }\r\n\r\n    constructor() {\r\n        effect(() => {\r\n            if(this._multiImageDefaultValue()) {\r\n            }\r\n        })\r\n    }\r\n\r\n    ngOnInit(): void {\r\n    }\r\n\r\n    public prepareImage(input: AsterFormImageItem): string {\r\n        if (input.imageFile instanceof File) {\r\n            return URL.createObjectURL(input?.imageFile);\r\n        } else {\r\n            return input.imageUrl;\r\n        }\r\n    }\r\n\r\n    public uploadData(event: Event) {\r\n        const target = event.target as HTMLInputElement;\r\n        const files = target.files as FileList;\r\n        Array.from(files).forEach(file => {\r\n            this.data.multiImageDefaultValue.push({\r\n                id: 0,\r\n                imageFile: file,\r\n                imageUrl: '',\r\n                altText: '',\r\n                order: this.data.multiImageDefaultValue.length + 1,\r\n                deleted: false\r\n            });\r\n        });\r\n\r\n        target.value = '';\r\n    }\r\n\r\n    public removeImage(index: number) {\r\n        if (this.data.multiImageDefaultValue[index].imageUrl) {\r\n            this.data.multiImageDefaultValue[index].deleted = true;\r\n        } else {\r\n            this.data.multiImageDefaultValue.splice(index, 1);\r\n        }\r\n    }\r\n}\r\n","<div>\r\n    <label>{{ data.label }}</label>\r\n    <div id=\"file-dnd\"\r\n        class=\"mt-2 relative flex flex-col p-4 text-gray-400 border-2 border-dashed border-gray-200 rounded\">\r\n        <div id=\"dnd\"\r\n            class=\"relative flex flex-col text-gray-400 border border-gray-200 border-dashed rounded cursor-pointer\">\r\n            <input accept=\"*\" type=\"file\" multiple\r\n                class=\"absolute inset-0 z-50 w-full h-full p-0 m-0 outline-none opacity-0 cursor-pointer\" (change)=\"uploadData($event)\" />\r\n\r\n            <div class=\"flex flex-col items-center justify-center py-2 text-center\">\r\n                <svg class=\"w-6 h-6 mr-1 text-current-50\" \r\n                    xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"\r\n                    viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n                    <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\r\n                        d=\"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\" />\r\n                </svg>\r\n                <p class=\"m-0\">Drag your files here or click in this area.</p>\r\n            </div>\r\n        </div>\r\n\r\n        <div id=\"file-preview-container\" \r\n            class=\"grid grid-cols-2 gap-4 mt-4 md:grid-cols-6\">\r\n            @for ( defaultImage of data.multiImageDefaultValue; track defaultImage; let index = $index) {\r\n                @if (!defaultImage.deleted) {\r\n                    <div>\r\n                        <div>\r\n                            <mat-icon class=\"cursor-pointer text-red-600 float-right\" (click)=\"removeImage(index)\">backspace</mat-icon>\r\n                            <img class=\"has-mask h-36 object-center border\" \r\n                            [src]=\"prepareImage(defaultImage) | sanitizeUrl\"\r\n                            alt=\"freepik image\" />\r\n                        </div>\r\n                        <div class=\"ax-text-input\">\r\n                            <input type=\"text\" [attr.value]=\"defaultImage.altText\" class=\"ax-text-input-field text-black\" />\r\n                        </div>\r\n                    </div>\r\n                }\r\n            }\r\n        </div>\r\n    </div>\r\n</div>","import {CommonModule} from '@angular/common';\r\nimport {ChangeDetectionStrategy, Component, effect, Input, signal, WritableSignal} from '@angular/core';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {TagInputModule} from 'ngx-chips';\r\nimport {AsterFormInput} from \"../interface/aster-form-input\";\r\n\r\n@Component({\r\n    selector: 'aster-form-input-chip',\r\n    imports: [\r\n        CommonModule,\r\n        TagInputModule,\r\n        FormsModule,\r\n        ReactiveFormsModule\r\n    ],\r\n    templateUrl: './aster-form-input-chip.component.html',\r\n    styleUrl: './aster-form-input-chip.component.css',\r\n    changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AsterFormInputChipComponent<T> {\r\n\r\n    private _chipDefaultValue: WritableSignal<string[]> = signal([]);\r\n\r\n    @Input() data: AsterFormInput<T, string[]> = {} as AsterFormInput<T, string[]>;\r\n\r\n    @Input() set chipDefaultValue(value: string[]) {\r\n        this._chipDefaultValue.set(value);\r\n    }\r\n\r\n    get chipDefaultValue(): string[] {\r\n        return this._chipDefaultValue();\r\n    }\r\n\r\n    constructor() {\r\n        effect(() => {\r\n            if (this._chipDefaultValue()) {\r\n            }\r\n        })\r\n    }\r\n\r\n\tngOnInit(): void { }\r\n\r\n}\r\n","<div class=\"ax-number-input\">\r\n    <label>{{ data.label }}</label>\r\n    <tag-input class=\"ax-number-input-field\" \r\n        [(ngModel)]='data.chipDefaultValue'></tag-input>\r\n</div>","import {AsterFormInput} from \"../interface/aster-form-input\";\r\nimport {AsterFormInputType} from \"../model/aster-form-input-type\";\r\nimport {AsterFormTextInput} from \"../interface/aster-form-text-input\";\r\nimport {alphaNumericID} from \"bmx-pastebox\";\r\nimport {AsterFormNumberInput} from \"../interface/aster-form-number-input\";\r\nimport {AsterFormSelectInput} from \"../interface/aster-form-select-input\";\r\nimport {AsterFormSelectOption} from \"../interface/aster-form-select-option\";\r\nimport {AsterFormMultiSelectInput} from '../interface/aster-form-multi-select-input';\r\nimport {AsterFormTextAreaInput} from '../interface/aster-form-textarea-input';\r\nimport {AsterFormRichtextInput} from '../interface/aster-form-richtext-input';\r\nimport {AsterFormImageInput} from '../interface/aster-form-image-input';\r\nimport {AsterFormImageItem} from '../interface/aster-form-image-item';\r\nimport {AsterFormMultiImageInput} from '../interface/aster-form-multi-image-input';\r\nimport {AsterFormChipInput} from \"../interface/aster-form-chip-input\";\r\nimport {AsterFormChipValue} from \"../interface/aster-form-chip-value\";\r\n\r\nexport class AsterFormInputService {\r\n\r\n    private static _prepareId(): string {\r\n        return alphaNumericID(8) + alphaNumericID(10);\r\n    }\r\n\r\n    private static _prepareName(): string {\r\n        return alphaNumericID(12);\r\n    }\r\n\r\n    public static prepareSelectDefaultValue<P>(data: AsterFormSelectInput<P>): AsterFormSelectOption {\r\n        return {\r\n            name: data.label ? `Select ${data.label}` : 'Choose from dropdown',\r\n            value: ''\r\n        };\r\n    }\r\n\r\n\tpublic static prepareImageDefaultValue(empty: boolean = true): AsterFormImageItem {\r\n\t\treturn {\r\n            id: 0,\r\n            imageUrl: empty ? '' : 'https://s3-ap-south-1.amazonaws.com/bloomscorp-cdn/aster/assets/images/upload-image.svg',\r\n            order: 1,\r\n            imageFile: null,\r\n\t\t\tdeleted: false,\r\n\t\t\taltText: empty ? '' : 'default image'\r\n\t\t};\r\n\t}\r\n\r\n\tpublic static prepareGetValue<V>(\r\n\t\tinput: AsterFormInput<any, V>,\r\n\t\totherDefault: V\r\n\t): () => V {\r\n\t\tif (input.getValue && !input.isOtherDefaultSet)\r\n\t\t\treturn input.getValue;\r\n\t\tif (input.defaultValue)\r\n\t\t\treturn (): V => input.defaultValue;\r\n\t\telse {\r\n\t\t\tinput.isOtherDefaultSet = true;\r\n\t\t\treturn (): V => otherDefault;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static prepareGetValues<V>(\r\n\t\tinput: AsterFormInput<any, V>,\r\n\t\tdefaultValueKey: string,\r\n\t\totherDefault: V[]\r\n\t): () => V[] {\r\n\t\tif (input.getValues && !input.isOtherDefaultSet)\r\n\t\t\treturn input.getValues;\r\n\t\tif (input[defaultValueKey])\r\n\t\t\treturn (): V[] => input[defaultValueKey];\r\n\t\telse {\r\n\t\t\tinput.isOtherDefaultSet = true;\r\n\t\t\treturn (): V[] => otherDefault;\r\n\t\t}\r\n\t}\r\n\r\n    public static prepareTextInput<P>(data: AsterFormTextInput<P>): AsterFormInput<P, string> {\r\n\r\n        const x: AsterFormInput<P, string> = {\r\n            id: data.id ? data.id : AsterFormInputService._prepareId(),\r\n            model: data.model,\r\n            type: AsterFormInputType.TEXT,\r\n            key: data.key,\r\n            label: data.label ? data.label : '',\r\n            name: data.name ? data.name : AsterFormInputService._prepareName(),\r\n            placeholder: data.placeholder ? data.placeholder : '',\r\n            defaultValue: data.defaultValue ? data.defaultValue : '',\r\n            multiSelectDefaultValue: [],\r\n\t\t\tmultiImageDefaultValue: [],\r\n            chipDefaultValue: [],\r\n            min: data.minlength ? data.minlength : 1,\r\n            max: data.maxlength ? data.maxlength : 999,\r\n            pattern: data.pattern ? data.pattern : '',\r\n            readonly: data.readonly ? data.readonly : false,\r\n            disabled: data.disabled ? data.disabled : false,\r\n            spellcheck: data.spellcheck ? data.spellcheck : true,\r\n            appendTo: '',\r\n            rows: 1,\r\n            cols: 1,\r\n            step: 0,\r\n            options: [],\r\n\t\t\tgetValue: undefined,\r\n\t\t\tgetValues: undefined,\r\n\t\t\tisOtherDefaultSet: false\r\n        };\r\n\r\n\t\treturn x;\r\n    }\r\n\r\n    public static prepareNumericInput<P>(data: AsterFormNumberInput<P>): AsterFormInput<P, number> {\r\n        return {\r\n            id: data.id ? data.id : AsterFormInputService._prepareId(),\r\n            model: data.model,\r\n            type: AsterFormInputType.NUMBER,\r\n            key: data.key,\r\n            label: data.label ? data.label : '',\r\n            name: data.name ? data.name : AsterFormInputService._prepareName(),\r\n            placeholder: data.placeholder ? data.placeholder : '',\r\n            defaultValue: data.defaultValue ? data.defaultValue : (data.min ? data.min : 0),\r\n            multiSelectDefaultValue: [],\r\n\t\t\tmultiImageDefaultValue: [],\r\n            chipDefaultValue: [],\r\n            min: data.min ? data.min : 0,\r\n            max: data.max ? data.max : 9999,\r\n            pattern: data.pattern ? data.pattern : '',\r\n            readonly: data.readonly ? data.readonly : false,\r\n            disabled: data.disabled ? data.disabled : false,\r\n            spellcheck: false,\r\n            appendTo: '',\r\n            rows: 1,\r\n            cols: 1,\r\n            step: data.step ? data.step : 1,\r\n            options: [],\r\n\t\t\tgetValue: undefined,\r\n\t\t\tgetValues: undefined,\r\n\t\t\tisOtherDefaultSet: false\r\n        };\r\n    }\r\n\r\n    public static prepareTextareaInput<P>(data: AsterFormTextAreaInput<P>): AsterFormInput<P, string> {\r\n        return {\r\n            id: data.id ? data.id : AsterFormInputService._prepareId(),\r\n            model: data.model,\r\n            type: AsterFormInputType.TEXTAREA,\r\n            key: data.key,\r\n            label: data.label ? data.label : '',\r\n            name: data.name ? data.name : AsterFormInputService._prepareName(),\r\n            placeholder: data.placeholder ? data.placeholder : '',\r\n            defaultValue: data.defaultValue ? data.defaultValue : '',\r\n            multiSelectDefaultValue: [],\r\n\t\t\tmultiImageDefaultValue: [],\r\n            chipDefaultValue: [],\r\n            min: data.minlength ? data.minlength : 1,\r\n            max: data.maxlength ? data.maxlength : 999,\r\n            pattern: data.pattern ? data.pattern : '',\r\n            readonly: data.readonly ? data.readonly : false,\r\n            disabled: data.disabled ? data.disabled : false,\r\n            spellcheck: data.spellcheck ? data.spellcheck : true,\r\n            rows: data.rows ? data.rows : 3,\r\n            cols: data.cols ? data.cols : 30,\r\n            step: 0,\r\n            options: [],\r\n            appendTo: '',\r\n\t\t\tgetValue: undefined,\r\n\t\t\tgetValues: undefined,\r\n\t\t\tisOtherDefaultSet: false\r\n        };\r\n    }\r\n\r\n    public static prepareRichTextInput<P>(data: AsterFormRichtextInput<P>): AsterFormInput<P, string> {\r\n        return {\r\n            id: data.id ? data.id : AsterFormInputService._prepareId(),\r\n            model: data.model,\r\n            type: AsterFormInputType.RICH_TEXT,\r\n            key: data.key,\r\n            label: data.label ? data.label : '',\r\n            name: data.name ? data.name : AsterFormInputService._prepareName(),\r\n            placeholder: data.placeholder ? data.placeholder : '',\r\n            defaultValue: data.defaultValue ? data.defaultValue : '',\r\n            multiSelectDefaultValue: [],\r\n\t\t\tmultiImageDefaultValue: [],\r\n            chipDefaultValue: [],\r\n            min: 1,\r\n            max: 999,\r\n            pattern: data.pattern ? data.pattern : '',\r\n            readonly: data.readonly ? data.readonly : false,\r\n            disabled: data.disabled ? data.disabled : false,\r\n            spellcheck: data.spellcheck ? data.spellcheck : true,\r\n            rows: 3,\r\n            cols: 30,\r\n            appendTo: '',\r\n            step: 0,\r\n            options: [],\r\n\t\t\tgetValue: undefined,\r\n\t\t\tgetValues: undefined,\r\n\t\t\tisOtherDefaultSet: false\r\n        };\r\n    }\r\n\r\n    public static prepareSelectInput<P>(data: AsterFormSelectInput<P>): AsterFormInput<P, AsterFormSelectOption> {\r\n        return {\r\n            id: data.id ? data.id : AsterFormInputService._prepareId(),\r\n            model: data.model,\r\n            type: AsterFormInputType.SELECT,\r\n            key: data.key,\r\n            label: data.label ? data.label : '',\r\n            name: data.name ? data.name : AsterFormInputService._prepareName(),\r\n            placeholder: '',\r\n            defaultValue: data.defaultValue ? data.defaultValue : AsterFormInputService.prepareSelectDefaultValue(data),\r\n            multiSelectDefaultValue: [],\r\n\t\t\tmultiImageDefaultValue: [],\r\n            chipDefaultValue: [],\r\n            min: 0,\r\n            max: 0,\r\n            pattern: data.pattern ? data.pattern : '',\r\n            readonly: false,\r\n            disabled: data.disabled ? data.disabled : false,\r\n            spellcheck: false,\r\n            rows: 1,\r\n            cols: 1,\r\n            step: 1,\r\n            appendTo: '',\r\n            options: data.options ? data.options : [],\r\n\t\t\tgetValue: undefined,\r\n\t\t\tgetValues: undefined,\r\n\t\t\tisOtherDefaultSet: false\r\n        };\r\n    }\r\n\r\n    public static prepareMultiSelectInput<P>(data: AsterFormMultiSelectInput<P>): AsterFormInput<P, AsterFormSelectOption> {\r\n        return {\r\n            id: data.id ? data.id : AsterFormInputService._prepareId(),\r\n            model: data.model,\r\n            type: AsterFormInputType.MULTISELECT,\r\n            key: data.key,\r\n            label: data.label ? data.label : '',\r\n            name: data.name ? data.name : AsterFormInputService._prepareName(),\r\n            placeholder: '',\r\n            defaultValue: {} as AsterFormSelectOption,\r\n            multiSelectDefaultValue: data.multiSelectDefaultValue ? data.multiSelectDefaultValue : [],\r\n\t\t\tmultiImageDefaultValue: [],\r\n            chipDefaultValue: [],\r\n            min: 0,\r\n            max: 0,\r\n            pattern: data.pattern ? data.pattern : '',\r\n            readonly: false,\r\n            disabled: data.disabled ? data.disabled : false,\r\n            spellcheck: false,\r\n            rows: 1,\r\n            cols: 1,\r\n            step: 1,\r\n            options: data.options ? data.options : [],\r\n            appendTo: data.appendTo ? data.appendTo : 'body',\r\n\t\t\tgetValue: undefined,\r\n\t\t\tgetValues: undefined,\r\n\t\t\tisOtherDefaultSet: false\r\n        };\r\n    }\r\n\r\n    public static prepareImageInput<P>(data: AsterFormImageInput<P>): AsterFormInput<P, AsterFormImageItem> {\r\n        return {\r\n            id: data.id ? data.id : AsterFormInputService._prepareId(),\r\n            model: data.model,\r\n            type: AsterFormInputType.IMAGE,\r\n            key: data.key,\r\n            label: data.label ? data.label : '',\r\n            name: data.name ? data.name : AsterFormInputService._prepareName(),\r\n            placeholder: data.placeholder ? data.placeholder : '',\r\n            defaultValue: data.defaultValue ? data.defaultValue : AsterFormInputService.prepareImageDefaultValue(),\r\n            multiSelectDefaultValue: [],\r\n\t\t\tmultiImageDefaultValue: [],\r\n            chipDefaultValue: [],\r\n            min: data.min ? data.min : 1,\r\n            max: data.max ? data.max : 999,\r\n            pattern: '',\r\n            readonly: data.readonly ? data.readonly : false,\r\n            disabled: data.disabled ? data.disabled : false,\r\n            spellcheck: false,\r\n            rows: 1,\r\n            cols: 1,\r\n            step: 0,\r\n            options: [],\r\n            appendTo: '',\r\n\t\t\tgetValue: undefined,\r\n\t\t\tgetValues: undefined,\r\n\t\t\tisOtherDefaultSet: false\r\n        }\r\n    }\r\n\r\n    public static prepareMultiImageInput<P>(data: AsterFormMultiImageInput<P>): AsterFormInput<P, AsterFormImageItem> {\r\n        return {\r\n            id: data.id ? data.id : AsterFormInputService._prepareId(),\r\n            model: data.model,\r\n            type: AsterFormInputType.MULTI_IMAGE,\r\n            key: data.key,\r\n            label: data.label ? data.label : '',\r\n            name: data.name ? data.name : AsterFormInputService._prepareName(),\r\n            placeholder: data.placeholder ? data.placeholder : '',\r\n            defaultValue: {} as AsterFormImageItem,\r\n            multiSelectDefaultValue: [],\r\n\t\t\tmultiImageDefaultValue: data.multiImageDefaultValue ? data.multiImageDefaultValue : [],\r\n            chipDefaultValue: [],\r\n            min: data.min ? data.min : 1,\r\n            max: data.max ? data.max : 999,\r\n            pattern: '',\r\n            readonly: data.readonly ? data.readonly : false,\r\n            disabled: data.disabled ? data.disabled : false,\r\n            spellcheck: false,\r\n            rows: 1,\r\n            cols: 1,\r\n            step: 0,\r\n            options: [],\r\n            appendTo: '',\r\n\t\t\tgetValue: undefined,\r\n\t\t\tgetValues: undefined,\r\n\t\t\tisOtherDefaultSet: false\r\n        }\r\n    }\r\n\r\n    public static prepareChipInput<P>(data: AsterFormChipInput<P>): AsterFormInput<P, AsterFormChipValue> {\r\n        return {\r\n            id: data.id ? data.id : AsterFormInputService._prepareId(),\r\n            model: data.model,\r\n            type: AsterFormInputType.CHIP,\r\n            key: data.key,\r\n            label: data.label ? data.label : '',\r\n            name: data.name ? data.name : AsterFormInputService._prepareName(),\r\n            placeholder: data.placeholder ? data.placeholder : '',\r\n            defaultValue: {} as AsterFormChipValue,\r\n            multiSelectDefaultValue: [],\r\n\t\t\tmultiImageDefaultValue: [],\r\n            chipDefaultValue: data.chipDefaultValue ? data.chipDefaultValue : [],\r\n            min: data.min ? data.min : 1,\r\n            max: data.max ? data.max : 999,\r\n            pattern: '',\r\n            readonly: data.readonly ? data.readonly : false,\r\n            disabled: data.disabled ? data.disabled : false,\r\n            spellcheck: false,\r\n            rows: 1,\r\n            cols: 1,\r\n            step: 0,\r\n            options: [],\r\n            appendTo: '',\r\n\t\t\tgetValue: undefined,\r\n\t\t\tgetValues: undefined,\r\n\t\t\tisOtherDefaultSet: false\r\n        };\r\n    }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {AsterFormSubmitAdapter} from \"../interface/aster-form-submit-adapter\";\r\nimport {AsterFormSubmit} from \"../interface/aster-form-submit\";\r\nimport {AsterFormTransmission} from \"../interface/aster-form-transmission\";\r\nimport {AsterFormTransmissionCallback} from \"../interface/aster-form-transmission-callback\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AsterFormSubmitService {\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\tprivate static defaultPreExecute(\r\n\t\tmessage: string = '',\r\n\t\tcallback: (data?: any) => void = (): void => {}\r\n\t): AsterFormTransmissionCallback {\r\n\t\treturn {\r\n\t\t\tmessage: message,\r\n\t\t\tcallback: callback\r\n\t\t};\r\n\t}\r\n\r\n\tprivate static defaultPostExecute(\r\n\t\tmessage: string = '',\r\n\t\tcallback: (data?: any) => void = (): void => {}\r\n\t): AsterFormTransmissionCallback {\r\n\t\treturn {\r\n\t\t\tmessage: message,\r\n\t\t\tcallback: callback\r\n\t\t};\r\n\t}\r\n\r\n\tprivate static defaultSuccess(\r\n\t\tmessage: string = 'Operation Successful!',\r\n\t\tcallback: (data?: any) => void = (): void => {}\r\n\t): AsterFormTransmissionCallback {\r\n\t\treturn {\r\n\t\t\tmessage: message,\r\n\t\t\tcallback: callback\r\n\t\t};\r\n\t}\r\n\r\n\tprivate static defaultFailure(\r\n\t\tmessage: string = 'Operation Failed!',\r\n\t\tcallback: (data?: any) => void = (): void => {}\r\n\t): AsterFormTransmissionCallback {\r\n\t\treturn {\r\n\t\t\tmessage: message,\r\n\t\t\tcallback: callback\r\n\t\t};\r\n\t}\r\n\r\n\tprivate static defaultComplete(\r\n\t\tmessage: string = '',\r\n\t\tcallback: (data?: any) => void = (): void => {}\r\n\t): AsterFormTransmissionCallback {\r\n\t\treturn {\r\n\t\t\tmessage: message,\r\n\t\t\tcallback: callback\r\n\t\t};\r\n\t}\r\n\r\n\tprivate static defaultTransmission(): AsterFormTransmission {\r\n\t\treturn {\r\n\t\t\tpreExecute: AsterFormSubmitService.defaultPreExecute(),\r\n\t\t\tpostExecute: AsterFormSubmitService.defaultPostExecute(),\r\n\t\t\tsuccess: AsterFormSubmitService.defaultSuccess(),\r\n\t\t\tfailure: AsterFormSubmitService.defaultFailure(),\r\n\t\t\tcomplete: AsterFormSubmitService.defaultComplete()\r\n\t\t};\r\n\t}\r\n\r\n\tprivate static prepareTransmission(adapter: AsterFormSubmitAdapter): AsterFormTransmission {\r\n\t\tif (adapter.transmission) {\r\n\t\t\treturn {\r\n\t\t\t\tpreExecute: AsterFormSubmitService.defaultPreExecute(\r\n\t\t\t\t\tadapter.transmission.preExecute?.message,\r\n\t\t\t\t\tadapter.transmission.preExecute?.callback\r\n\t\t\t\t),\r\n\t\t\t\tpostExecute: AsterFormSubmitService.defaultPostExecute(\r\n\t\t\t\t\tadapter.transmission.postExecute?.message,\r\n\t\t\t\t\tadapter.transmission.postExecute?.callback\r\n\t\t\t\t),\r\n\t\t\t\tsuccess: AsterFormSubmitService.defaultSuccess(\r\n\t\t\t\t\tadapter.transmission.success?.message,\r\n\t\t\t\t\tadapter.transmission.success?.callback\r\n\t\t\t\t),\r\n\t\t\t\tfailure: AsterFormSubmitService.defaultFailure(\r\n\t\t\t\t\tadapter.transmission.failure?.message,\r\n\t\t\t\t\tadapter.transmission.failure?.callback\r\n\t\t\t\t),\r\n\t\t\t\tcomplete: AsterFormSubmitService.defaultComplete(\r\n\t\t\t\t\tadapter.transmission.complete?.message,\r\n\t\t\t\t\tadapter.transmission.complete?.callback\r\n\t\t\t\t)\r\n\t\t\t};\r\n\t\t} else return AsterFormSubmitService.defaultTransmission();\r\n\t}\r\n\r\n\tpublic static prepareFormSubmit(adapter: AsterFormSubmitAdapter): AsterFormSubmit {\r\n\t\treturn {\r\n\t\t\tapi: adapter.api,\r\n\t\t\tlabel: adapter.label ? adapter.label : 'Submit',\r\n\t\t\ttype: adapter.type ? adapter.type : 'POST',\r\n            isAuthenticated: adapter.isAuthenticated ? adapter.isAuthenticated : false,\r\n\t\t\ttransmission: AsterFormSubmitService.prepareTransmission(adapter)\r\n\t\t};\r\n\t}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {AsterForm} from \"../interface/aster-form\";\r\nimport {AsterFormPreview} from \"../interface/aster-form-preview\";\r\nimport {AsterFormInput} from \"../interface/aster-form-input\";\r\nimport {AsterFormCompatible} from \"../interface/aster-form-compatible\";\r\nimport {AsterFormInputType} from \"../model/aster-form-input-type\";\r\nimport {AsterFormInputService} from \"./aster-form-input-service\";\r\nimport {AsterFormSubmitService} from \"./aster-form-submit.service\";\r\nimport {FormPayload} from \"bmx-transmission/lib/raintree/interface/form-payload\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class AsterFormService {\r\n\tconstructor(private _formSubmit: AsterFormSubmitService) {}\r\n\r\n\tpublic static setNestedValue(obj: any, key: string, value: any) {\r\n\t\tconst keys = key.split('.');\r\n\t\tlet current = obj;\r\n\r\n\t\tfor (let i = 0; i < keys.length - 1; i++) {\r\n\t\t\tconst part = keys[i];\r\n\t\t\tif (!current[part] || typeof current[part] !== 'object') {\r\n\t\t\t\tcurrent[part] = {};\r\n\t\t\t}\r\n\t\t\tcurrent = current[part];\r\n\t\t}\r\n\t\tcurrent[keys[keys.length - 1]] = value;\r\n\t}\r\n\r\n\tpublic static defaultMapper<T extends AsterFormCompatible>(\r\n\t\tmodel: T,\r\n\t\tinputs: AsterFormInput<T, any>[]\r\n\t): FormPayload {\r\n\t\tlet response: FormPayload = {} as AsterFormCompatible;\r\n        response = {...model};\r\n\r\n\t\tinputs.forEach((input: AsterFormInput<T, any>): void => {\r\n\t\t\tswitch (input.type) {\r\n\t\t\t\tcase AsterFormInputType.TEXT:\r\n\t\t\t\tcase AsterFormInputType.NUMBER:\r\n\t\t\t\tcase AsterFormInputType.SELECT:\r\n\t\t\t\tcase AsterFormInputType.TEXTAREA:\r\n\t\t\t\tcase AsterFormInputType.RICH_TEXT:\r\n\t\t\t\tcase AsterFormInputType.IMAGE:\r\n\t\t\t\t\t// response[input.key] = input.getValue!();\r\n                    AsterFormService.setNestedValue(response, input.key, input.getValue!());\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase AsterFormInputType.MULTISELECT:\r\n\t\t\t\tcase AsterFormInputType.MULTI_IMAGE:\r\n\t\t\t\t\t// response[input.key] = input.getValues!();\r\n                    AsterFormService.setNestedValue(response, input.key, input.getValues!());\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase AsterFormInputType.CHIP:\r\n\t\t\t\t\t// response[input.key] = input.getValues!();\r\n                    AsterFormService.setNestedValue(response, input.key, input.getValues!());\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t// response[input.key] = null;\r\n                    AsterFormService.setNestedValue(response, input.key, null);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn response;\r\n\t}\r\n\r\n\tpublic static prepare<T extends AsterFormCompatible>(\r\n\t\tpreview: AsterFormPreview<T>\r\n\t): AsterForm<T> {\r\n\t\treturn {\r\n\t\t\tmodel: preview.model,\r\n\t\t\tinputs: preview.inputs,\r\n\t\t\tsubmit: AsterFormSubmitService.prepareFormSubmit(preview.submit),\r\n\t\t\tmapper: preview.mapper\r\n\t\t\t\t? preview.mapper\r\n\t\t\t\t: AsterFormService.defaultMapper,\r\n\t\t};\r\n\t}\r\n\r\n\tpublic prepareGetValues<T>(inputs: AsterFormInput<T, any>[]): void {\r\n\t\tinputs.forEach((input: AsterFormInput<T, any>): void => {\r\n\t\t\tswitch (input.type) {\r\n\t\t\t\tcase AsterFormInputType.TEXT:\r\n\t\t\t\tcase AsterFormInputType.TEXTAREA:\r\n\t\t\t\tcase AsterFormInputType.RICH_TEXT:\r\n\t\t\t\t\tinput.getValue = AsterFormInputService.prepareGetValue(\r\n\t\t\t\t\t\tinput,\r\n\t\t\t\t\t\t''\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase AsterFormInputType.NUMBER:\r\n\t\t\t\t\tinput.getValue = AsterFormInputService.prepareGetValue(\r\n\t\t\t\t\t\tinput,\r\n\t\t\t\t\t\t0\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase AsterFormInputType.SELECT:\r\n\t\t\t\t\tinput.getValue = AsterFormInputService.prepareGetValue(\r\n\t\t\t\t\t\tinput,\r\n\t\t\t\t\t\tAsterFormInputService.prepareSelectDefaultValue(input)\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase AsterFormInputType.IMAGE:\r\n\t\t\t\t\tinput.getValue = AsterFormInputService.prepareGetValue(\r\n\t\t\t\t\t\tinput,\r\n\t\t\t\t\t\tAsterFormInputService.prepareImageDefaultValue()\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase AsterFormInputType.MULTISELECT:\r\n\t\t\t\t\tinput.getValues = AsterFormInputService.prepareGetValues(\r\n\t\t\t\t\t\tinput,\r\n\t\t\t\t\t\t'multiSelectDefaultValue',\r\n\t\t\t\t\t\tinput.multiSelectDefaultValue\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase AsterFormInputType.MULTI_IMAGE:\r\n\t\t\t\t\tinput.getValues = AsterFormInputService.prepareGetValues(\r\n\t\t\t\t\t\tinput,\r\n\t\t\t\t\t\t'multiImageDefaultValue',\r\n\t\t\t\t\t\tinput.multiImageDefaultValue\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase AsterFormInputType.CHIP:\r\n\t\t\t\t\tinput.getValues = AsterFormInputService.prepareGetValues(\r\n\t\t\t\t\t\tinput,\r\n\t\t\t\t\t\t'chipDefaultValue',\r\n\t\t\t\t\t\tinput.chipDefaultValue\r\n\t\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {CRUDTransmissionService} from '../crud-transmission-service';\r\nimport {BmxTransmissionService} from \"bmx-transmission\";\r\nimport {JWTService} from \"../../../authentication/jwt.service\";\r\nimport {FormPayload} from \"bmx-transmission/lib/raintree/interface/form-payload\";\r\nimport {RaintreeResponse} from \"bmx-transmission/lib/raintree/interface/raintree-response\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AsterFormTransmissionService extends CRUDTransmissionService<any> {\r\n\r\n\tconstructor(\r\n\t\tprivate transmission: BmxTransmissionService,\r\n\t\tprivate jwt: JWTService\r\n\t) {\r\n\t\tsuper(transmission, jwt);\r\n\t}\r\n\r\n\tpublic post<F extends FormPayload>(\r\n\t\tpayload: F,\r\n\t\tonPreExecute: () => void,\r\n\t\tonPostExecute: (response: RaintreeResponse) => void,\r\n\t\tonSuccess: (response: RaintreeResponse) => void,\r\n\t\tonFailure: () => void,\r\n\t\tonComplete: () => void,\r\n\t\turl: string,\r\n\t\tmultiLevelProcessing: boolean = true,\r\n        requireAuth: boolean = true\r\n\t): void {\r\n\t\tthis.transmission.executeFormPostPayload<F>(\r\n\t\t\turl,\r\n\t\t\tpayload,\r\n\t\t\trequireAuth ? this.jwt.injectToken(url, false): undefined,\r\n\t\t\tonPreExecute,\r\n\t\t\tonPostExecute,\r\n\t\t\tonSuccess,\r\n\t\t\tonFailure,\r\n\t\t\tonComplete,\r\n\t\t\tmultiLevelProcessing\r\n\t\t);\r\n\t}\r\n\r\n\tpublic patch<F extends FormPayload>(\r\n        payload: F,\r\n\t\tonPreExecute: () => void,\r\n\t\tonPostExecute: (response: RaintreeResponse) => void,\r\n\t\tonSuccess: (response: RaintreeResponse) => void,\r\n\t\tonFailure: () => void,\r\n\t\tonComplete: () => void,\r\n\t\turl: string,\r\n\t\tmultiLevelProcessing: boolean = true,\r\n        requireAuth: boolean = true\r\n    ): void {\r\n\t\tthis.transmission.executeFormPatchPayload<F>(\r\n\t\t\turl,\r\n\t\t\tpayload,\r\n            requireAuth ? this.jwt.injectToken(url, false): undefined,\r\n\t\t\tonPreExecute,\r\n\t\t\tonPostExecute,\r\n\t\t\tonSuccess,\r\n\t\t\tonFailure,\r\n\t\t\tonComplete,\r\n\t\t\tmultiLevelProcessing\r\n\t\t);\r\n\t}\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {AsterForm} from \"../interface/aster-form\";\r\nimport {NgForOf, NgSwitch, NgSwitchCase} from \"@angular/common\";\r\nimport {AsterFormInputType} from \"../model/aster-form-input-type\";\r\nimport {AsterFormInputTextComponent} from \"../aster-form-input-text/aster-form-input-text.component\";\r\nimport {AsterFormInputNumericComponent} from \"../aster-form-input-numeric/aster-form-input-numeric.component\";\r\nimport {AsterFormInputSelectComponent} from \"../aster-form-input-select/aster-form-input-select.component\";\r\nimport {\r\n\tAsterFormInputMultiSelectComponent\r\n} from \"../aster-form-input-multi-select/aster-form-input-multi-select.component\";\r\nimport {AsterFormInputTextareaComponent} from \"../aster-form-input-textarea/aster-form-input-textarea.component\";\r\nimport {AsterFormInputRichtextComponent} from \"../aster-form-input-richtext/aster-form-input-richtext.component\";\r\nimport {AsterFormInputImageComponent} from '../aster-form-input-image/aster-form-input-image.component';\r\nimport {\r\n\tAsterFormInputMultipleImageComponent\r\n} from '../aster-form-input-multiple-image/aster-form-input-multiple-image.component';\r\nimport {AsterFormService} from \"../service/aster-form.service\";\r\nimport {AsterFormInputChipComponent} from \"../aster-form-input-chip/aster-form-input-chip.component\";\r\nimport {RaintreeResponse} from 'bmx-transmission/lib/raintree/interface/raintree-response';\r\nimport {AsterFormTransmissionService} from \"../../../raintree/transmission/aster-form/aster-form-transmission.service\";\r\nimport {FormPayload} from \"bmx-transmission/lib/raintree/interface/form-payload\";\r\nimport { TransmissionHelperService } from '../../../raintree/transmission/transmission-helper.service';\r\n\r\n@Component({\r\n    selector: 'aster-form',\r\n    imports: [\r\n        NgForOf,\r\n        NgSwitch,\r\n        NgSwitchCase,\r\n        AsterFormInputTextComponent,\r\n        AsterFormInputNumericComponent,\r\n        AsterFormInputSelectComponent,\r\n        AsterFormInputMultiSelectComponent,\r\n        AsterFormInputTextareaComponent,\r\n        AsterFormInputRichtextComponent,\r\n        AsterFormInputImageComponent,\r\n        AsterFormInputMultipleImageComponent,\r\n        AsterFormInputChipComponent\r\n    ],\r\n    templateUrl: './aster-form.component.html',\r\n    styleUrls: [\r\n        './aster-form.component.scss',\r\n        '../../../ax-styles.scss'\r\n    ]\r\n})\r\nexport class AsterFormComponent implements OnInit {\r\n\r\n\t@Input() public data: AsterForm<any> = {} as AsterForm<any>;\r\n\tpublic INPUT_TYPES: typeof AsterFormInputType = AsterFormInputType;\r\n\r\n\tconstructor(\r\n        public _: AsterFormService,\r\n        public _helper: TransmissionHelperService,\r\n        public _api: AsterFormTransmissionService\r\n    ) {\r\n\t}\r\n\r\n\tpublic ngOnInit(): void {\r\n\r\n\t}\r\n\r\n\tpublic onSubmit(): void {\r\n\r\n\t\tthis._.prepareGetValues(this.data.inputs);\r\n\r\n\t\tconst response: FormPayload = this.data.mapper(\r\n\t\t\tthis.data.model,\r\n\t\t\tthis.data.inputs\r\n\t\t);\r\n\r\n        console.log('aaa', response);\r\n\r\n\t\tswitch (this.data.submit.type) {\r\n\t\t\tcase \"POST\":\r\n\t\t\t\tthis._api.post(\r\n\t\t\t\t\tresponse,\r\n\t\t\t\t\t(): void => {\r\n                        console.log('trigger');\r\n\t\t\t\t\t\tthis.data.submit.transmission.preExecute.callback();\r\n\t\t\t\t\t},\r\n\t\t\t\t\t(response: RaintreeResponse) => {\r\n\t\t\t\t\t\tthis.data.submit.transmission.postExecute.callback(response);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t(response: RaintreeResponse) => {\r\n\t\t\t\t\t\tthis.data.submit.transmission.success.callback(response);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.data.submit.transmission.failure.callback();\r\n\t\t\t\t\t},\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.data.submit.transmission.complete.callback();\r\n\t\t\t\t\t},\r\n\t\t\t\t\tthis._helper.prepareEndpoint(this.data.submit.api),\r\n                    true,\r\n                    this.data.submit.isAuthenticated\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"PATCH\":\r\n            this._api.patch(\r\n                    response,\r\n                    (): void => {\r\n                        this.data.submit.transmission.preExecute.callback();\r\n                    },\r\n                    (response: RaintreeResponse) => {\r\n                        this.data.submit.transmission.postExecute.callback(response);\r\n                    },\r\n                    (response: RaintreeResponse) => {\r\n                        this.data.submit.transmission.success.callback(response);\r\n                    },\r\n                    () => {\r\n                        this.data.submit.transmission.failure.callback();\r\n                    },\r\n                    () => {\r\n                        this.data.submit.transmission.complete.callback();\r\n                    },\r\n                    this._helper.prepareEndpoint(this.data.submit.api),\r\n                    true,\r\n                    this.data.submit.isAuthenticated\r\n                );\r\n                break;\r\n\t\t}\r\n\t}\r\n}\r\n","<section class=\"ax-form min-h-screen bg-gray-100 flex items-center justify-center\">\r\n\t<div class=\"container max-w-screen-lg mx-auto\">\r\n\t\t<div class=\" bg-white rounded shadow-lg p-4 px-4 md:p-8 mb-6\">\r\n\t\t\t<div class=\"main-body relative grid gap-4 gap-y-2 text-sm grid-cols-1 md:grid-cols-6\">\r\n\t\t\t\t<ng-container *ngFor=\"let input of data.inputs; index as i;\">\r\n\t\t\t\t\t<ng-container [ngSwitch]=\"input.type\">\r\n\t\t\t\t\t\t<aster-form-input-text *ngSwitchCase=\"INPUT_TYPES.TEXT\"\r\n\t\t\t\t\t\t\t\t\t\t\t     [data]=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t     class=\"md:col-span-3\"></aster-form-input-text>\r\n\t\t\t\t\t\t<aster-form-input-numeric *ngSwitchCase=\"INPUT_TYPES.NUMBER\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t [data]=\"input\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t class=\"md:col-span-3\"></aster-form-input-numeric>\r\n\t\t\t\t\t\t<aster-form-input-select *ngSwitchCase=\"INPUT_TYPES.SELECT\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t [data]=\"input\"\r\n                                                 [defaultValue]=\"input.defaultValue\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t class=\"md:col-span-3\"></aster-form-input-select>\r\n                        <aster-form-input-multi-select *ngSwitchCase=\"INPUT_TYPES.MULTISELECT\"\r\n                                                 [data]=\"input\"\r\n                                                 [multiSelectDefaultValue]=\"input.multiSelectDefaultValue\"\r\n                                                 class=\"md:col-span-3\"></aster-form-input-multi-select>\r\n                        <aster-form-input-textarea *ngSwitchCase=\"INPUT_TYPES.TEXTAREA\"\r\n                                                 [data]=\"input\"\r\n                                                 class=\"md:col-span-3\"></aster-form-input-textarea>\r\n                        <aster-form-input-richtext *ngSwitchCase=\"INPUT_TYPES.RICH_TEXT\"\r\n                                                 [data]=\"input\"\r\n                                                 class=\"md:col-span-6\"></aster-form-input-richtext>\r\n                        <aster-form-input-image *ngSwitchCase=\"INPUT_TYPES.IMAGE\"\r\n                                                 [data]=\"input\"\r\n                                                 [defaultValue]=\"input.defaultValue\"\r\n                                                 class=\"md:col-span-3\"></aster-form-input-image>\r\n                        <aster-form-input-multiple-image *ngSwitchCase=\"INPUT_TYPES.MULTI_IMAGE\"\r\n                                                 [data]=\"input\"\r\n                                                 [multiImageDefaultValue]=\"input.multiImageDefaultValue\"\r\n                                                 class=\"md:col-span-6\"></aster-form-input-multiple-image>\r\n                        <aster-form-input-chip *ngSwitchCase=\"INPUT_TYPES.CHIP\"\r\n                                                 [data]=\"input\"\r\n                                                 [chipDefaultValue]=\"input.chipDefaultValue\"\r\n                                                 class=\"md:col-span-3\"></aster-form-input-chip>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<div class=\"md:col-span-6\">\r\n\t\t\t\t\t<button (click)=\"onSubmit()\"\r\n\t\t\t\t\t\t\tclass=\"ax-form-submit-button ax-default-transition px-6 py-2 my-2 float-right\">\r\n\t\t\t\t\t\t{{ data.submit.label }}\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</section>\r\n","export class AsterOrderService {\r\n}\r\n","import {TableData} from \"../../component-library/aster-table/interface/table-data\";\r\nimport {OrderListingScreenData} from \"../interface/screen/order-listing-screen-data\";\r\n\r\nexport abstract class AsterOrderListingService<O> {\r\n\r\n\tpublic screen: OrderListingScreenData = {\r\n\t\theader: {\r\n\t\t\ttitle: 'Manage Orders',\r\n\t\t\tsubtitle: 'View and manage your orders here'\r\n\t\t}\r\n\t};\r\n\r\n\tprivate _loading: boolean = true;\r\n\tprivate _table: TableData<O> = {} as TableData<O>;\r\n\tprivate _orderList: O[] = [];\r\n\r\n\tpublic get isLoading(): boolean {\r\n\t\treturn this._loading;\r\n\t}\r\n\r\n\tpublic set isLoading(value: boolean) {\r\n\t\tthis._loading = value;\r\n\t}\r\n\r\n\tpublic get table(): TableData<O> {\r\n\t\treturn this._table;\r\n\t}\r\n\r\n\tpublic set table(value: TableData<O>) {\r\n\t\tthis._table = value;\r\n\t}\r\n\r\n\tpublic get orderList(): O[] {\r\n\t\treturn this._orderList;\r\n\t}\r\n\r\n\tpublic set productList(value: O[]) {\r\n\t\tthis._orderList = value;\r\n\t}\r\n\r\n\tpublic abstract fetchOrderList(): void;\r\n\tpublic abstract prepareOrderListTable(): TableData<O>;\r\n}\r\n","import { OrderDetailsScreenData } from \"../interface/screen/order-details-screen-data\";\r\n\r\nexport abstract class AsterOrderDetailsService<O> {\r\n\r\n    public screen: OrderDetailsScreenData = {\r\n\t\theader: {\r\n\t\t\ttitle: 'Order Details',\r\n\t\t\tsubtitle: 'View and update your order here'\r\n\t\t}\r\n\t};\r\n\r\n    private _loading: boolean = true;\r\n\tprivate _orderDetails: O = {} as O;\r\n\r\n    public get isLoading(): boolean {\r\n\t\treturn this._loading;\r\n\t}\r\n\r\n\tpublic set isLoading(value: boolean) {\r\n\t\tthis._loading = value;\r\n\t}\r\n\r\n    public get orderDetails(): O {\r\n        return this._orderDetails;\r\n    }\r\n\r\n    public set orderDetails(value: O) {\r\n        this._orderDetails = value;        \r\n    }\r\n\r\n    public abstract fetchOrderDetails(): void;\r\n    public abstract prepareOrderDetails(): void;\r\n}\r\n","/*\r\n * Public API Surface of ngx-aster-cms\r\n */\r\n\r\nexport * from './lib/route/model/default-routes';\r\n\r\nexport * from './lib/authentication/login/login.component';\r\n\r\n/* security */\r\nexport * from './lib/authentication/jwt.service';\r\n\r\n/* configuration */\r\nexport * from './lib/configuration/aster-config';\r\nexport * from './lib/configuration/aster-configuration.service';\r\nexport * from './lib/route/service/aster-route.service';\r\n\r\n/* support */\r\nexport * from './lib/support/local-storage.service';\r\n\r\n/* component library: aster table */\r\nexport * from './lib/component-library/aster-table/aster-table/aster-table.component';\r\nexport * from './lib/component-library/aster-table/interface/cell-action';\r\nexport * from './lib/component-library/aster-table/interface/cell-default-actions';\r\nexport * from './lib/component-library/aster-table/interface/table-column';\r\nexport * from './lib/component-library/aster-table/interface/table-column-data';\r\nexport * from './lib/component-library/aster-table/interface/table-data';\r\nexport * from './lib/component-library/aster-table/interface/table-header';\r\n\r\n/* navigation */\r\nexport * from './lib/navigation/navigation/navigation.component';\r\nexport * from './lib/navigation/service/aster-navigation-mapper.service';\r\nexport * from './lib/navigation/interface/aster-navigation-item';\r\nexport * from './lib/navigation/model/aster-navigation-items';\r\n\r\nexport * from './lib/component-library/header/header-section/header-section.component';\r\nexport * from './lib/route/model/aster-request-mapper';\r\n\r\n/* dashboard */\r\nexport * from './lib/dashboard/dashboard/dashboard.component';\r\nexport * from './lib/dashboard/dashboard-card/dashboard-card.component';\r\nexport * from './lib/dashboard/service/aster-dashboard-mapper.service';\r\nexport * from './lib/dashboard/service/dashboard.service';\r\nexport * from './lib/dashboard/interface/aster-dashboard-item';\r\nexport * from './lib/dashboard/model/aster-dashboard-items';\r\n\r\n/* product */\r\nexport * from './lib/product/service/aster-product-service';\r\nexport * from './lib/product/service/aster-product-listing-service';\r\nexport * from './lib/product/service/aster-product-details-service';\r\nexport * from './lib/product/service/aster-manage-product-service';\r\nexport * from './lib/product/service/aster-add-product-service';\r\nexport * from './lib/product/service/aster-update-product-service';\r\nexport * from './lib/product/interface/screen/add-product-screen-data';\r\nexport * from './lib/product/interface/screen/product-listing-screen-data';\r\nexport * from './lib/product/interface/screen/update-product-screen-data';\r\nexport * from './lib/product/interface/screen/manage-product-screen-data';\r\nexport * from './lib/product/interface/product-segment';\r\n\r\n/* transmission */\r\nexport * from './lib/raintree/transmission/crud-transmission-service';\r\nexport * from './lib/raintree/transmission/transmission-helper.service';\r\nexport * from './lib/raintree/interface/raintree-payload';\r\n\r\n/* transmission - product */\r\nexport * from './lib/raintree/transmission/product/aster-product-preview-transmission.service';\r\nexport * from './lib/raintree/transmission/product/aster-product-transmission.service';\r\n\r\n/* form */\r\nexport * from './lib/component-library/aster-form/aster-form/aster-form.component';\r\nexport * from './lib/component-library/aster-form/aster-form-input-image/aster-form-input-image.component';\r\nexport * from './lib/component-library/aster-form/aster-form-input-multiple-image/aster-form-input-multiple-image.component';\r\nexport * from './lib/component-library/aster-form/aster-form-input-text/aster-form-input-text.component';\r\nexport * from './lib/component-library/aster-form/aster-form-input-numeric/aster-form-input-numeric.component';\r\nexport * from './lib/component-library/aster-form/aster-form-input-select/aster-form-input-select.component';\r\nexport * from './lib/component-library/aster-form/aster-form-input-multi-select/aster-form-input-multi-select.component';\r\nexport * from './lib/component-library/aster-form/aster-form-input-richtext/aster-form-input-richtext.component';\r\nexport * from './lib/component-library/aster-form/aster-form-input-textarea/aster-form-input-textarea.component';\r\nexport * from './lib/component-library/aster-form/interface/aster-form';\r\nexport * from './lib/component-library/aster-form/interface/aster-form-input';\r\nexport * from './lib/component-library/aster-form/interface/aster-form-select-option';\r\nexport * from './lib/component-library/aster-form/interface/aster-form-image-item';\r\nexport * from './lib/component-library/aster-form/service/aster-form-input-service';\r\nexport * from './lib/component-library/aster-form/service/aster-form.service';\r\nexport * from './lib/component-library/aster-form/interface/aster-form-compatible';\r\n\r\n/* order */\r\nexport * from './lib/order/service/aster-order-service';\r\nexport * from './lib/order/service/aster-order-listing-service';\r\nexport * from './lib/order/service/aster-order-details-service';\r\nexport * from './lib/order/interface/screen/order-listing-screen-data';\r\nexport * from './lib/order/interface/order-preview';\r\nexport * from './lib/order/interface/order-item';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AsterConfigurationService","i2.LocalStorageService","i1.AsterNavigationMapperService","i1.AsterDashboardMapperService","i2.DashboardService","i2.JWTService","i3.TransmissionHelperService","i1","i2","i1.AsterFormSubmitService","i1.AsterFormService","i2.TransmissionHelperService","i3.AsterFormTransmissionService"],"mappings":"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"}