@adlfe/campaign-management-library 2.15.2 → 2.15.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"adlfe-campaign-management-library.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@adlfe/campaign-management-library/lib/adl-campaign-management-library-internal.component.ts","ng://@adlfe/campaign-management-library/lib/global/search/search/search.component.ts","ng://@adlfe/campaign-management-library/lib/global/search/search.module.ts","ng://@adlfe/campaign-management-library/lib/core/enums/main-area.enum.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/campaign-management.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/components/input-numeric/input-numeric.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/components/input-numeric/input-numeric.module.ts","ng://@adlfe/campaign-management-library/lib/core/directives/mat-select-infinite-scroll.ts","ng://@adlfe/campaign-management-library/lib/core/models/Package.ts","ng://@adlfe/campaign-management-library/lib/core/models/base-option.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/util/http-body-req/http-body-req-pagination-global-var.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/util/http-body-req/http-body-req-pagination.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/util/index.ts","ng://@adlfe/campaign-management-library/lib/core/models/billing-param-req.component.ts","ng://@adlfe/campaign-management-library/lib/core/models/country.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/create-package-param.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/http-body-resp.model.ts","ng://@adlfe/campaign-management-library/environments/environment.ts","ng://@adlfe/campaign-management-library/lib/core/services/api-adapter-service.service.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/models/campaign-table-config.const.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/models/campaigns-list.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/models/table.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/campaign-index.component.ts","ng://@adlfe/campaign-management-library/lib/core/const/constants.const.ts","ng://@adlfe/campaign-management-library/lib/core/const/create-package-service.const.ts","ng://@adlfe/campaign-management-library/lib/core/const/failover.const.ts","ng://@adlfe/campaign-management-library/lib/core/const/rate-card-table-config.ts","ng://@adlfe/campaign-management-library/lib/core/const/validation-message.const.ts","ng://@adlfe/campaign-management-library/lib/core/enums/constant.enum.ts","ng://@adlfe/campaign-management-library/lib/core/util/custom-paginator.ts","ng://@adlfe/campaign-management-library/lib/core/util/download-blob-file.ts","ng://@adlfe/campaign-management-library/lib/core/util/enum-to-option-generator.ts","ng://@adlfe/campaign-management-library/lib/core/util/http-param-generator.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/component/filter-in-list-of-campaign/filter-in-list-of-campaign.component.ts","ng://@adlfe/campaign-management-library/lib/global/confirmation/shared/shared-services.service.ts","ng://@adlfe/campaign-management-library/lib/global/confirmation/shared/model/confirmation.model.ts","ng://@adlfe/campaign-management-library/lib/global/confirmation/confirmation/confirmation.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/dialog/pending-approval-dialog-view/pending-approval-dialog-view.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/component/viewing-list-of-campaign-table/viewing-list-of-campaign-table.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/campaign-index.module.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/dashboard/dashboard.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/dashboard/dashboard.module.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/models/failover-req.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/models/general-information-wa-req.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/models/scheduler-req.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/new-campaign.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/components/general-information-email/general-information-email.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/components/general-information-line/general-information-line.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/components/general-information-sms/general-information-sms.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/util/enums.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/validators/max.validator.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/validators/min.validator.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/validators/required.validator.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/validators/index.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/components/general-information-wa/general-information-wa.component.ts","ng://@adlfe/campaign-management-library/lib/core/const/form-validators.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/failover-mechanism/failover-mechanism.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/general-information/general-information.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/new-number-bases/new-number-bases.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/scheduler/scheduler.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/summary/summary.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/wizard/wizard.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/campaign-management.module.ts","ng://@adlfe/campaign-management-library/lib/adl-campaign-management-library-internal.module.ts","ng://@adlfe/campaign-management-library/lib/global/confirmation/confirmation.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-adl-campaign-management-library-internal',\r\n\ttemplate: `\r\n\t\t<p>\r\n\t\t\t<lib-campaign-management></lib-campaign-management>\r\n\t\t</p>\r\n\t`,\r\n})\r\nexport class AdlCampaignManagementLibraryInternalComponent {}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n\tselector: 'lib-search',\r\n\ttemplateUrl: './search.component.html',\r\n\tstyleUrls: ['./search.component.scss'],\r\n})\r\nexport class SearchComponent implements OnInit {\r\n\t@Output()\r\n\tpublic searchRes: EventEmitter<string>;\r\n\r\n\tpublic form: FormControl;\r\n\r\n\tprivate debounceSubject = new Subject();\r\n\r\n\t@Input()\r\n\tpublic placeholder: string;\r\n\r\n\t@Input()\r\n\tpublic currentValue: string;\r\n\r\n\tconstructor() {\r\n\t\tthis.searchRes = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.form = new FormControl(this.currentValue ?? '');\r\n\r\n\t\tthis.debounceSubject.pipe(debounceTime(500)).subscribe((value: any) => {\r\n\t\t\tthis.searchRes.emit(value.toLowerCase());\r\n\t\t});\r\n\t}\r\n\r\n\tpublic searchResult(event: any) {\r\n\t\tthis.debounceSubject.next(event.target.value);\r\n\t}\r\n\r\n\tpublic clearInput(): void {\r\n\t\tthis.form.setValue('');\r\n\t\tthis.searchRes.emit(this.form.value);\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SearchComponent } from './search/search.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n\r\n@NgModule({\r\n declarations: [SearchComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatButtonModule,\r\n\t\tMatIconModule,\r\n ],\r\n exports: [\r\n SearchComponent\r\n ]\r\n})\r\nexport class SearchModule { }\r\n","export enum MainArea {\r\n 'Dashboard' = 1,\r\n 'CampaignIndex' = 2,\r\n 'CreateCampaign' = 3,\r\n 'NewCampaign' = 4,\r\n 'UpdateNumberBases' = 5,\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MainArea } from '../core/enums/main-area.enum';\r\n\r\n@Component({\r\n\tselector: 'lib-campaign-management',\r\n\ttemplateUrl: './campaign-management.component.html',\r\n\tstyleUrls: [],\r\n})\r\nexport class CampaignManagementComponent {\r\n\tpublic currentView: MainArea = MainArea.CampaignIndex;\r\n\tpublic currentViews = MainArea;\r\n\r\n\tconstructor() {\r\n\t\t/* Init Localstorage (Local Only) */\r\n\t\t/* const data = {\r\n\t\t\t'telin.accessToken':\r\n\t\t\t\t'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRJZCI6IlBST1ZJREVSIiwiZXhwIjoxNzA4MDAyNzI4LCJpYXQiOjE3MDc5Nzg3MjgsIm5iZiI6MTcwNzk3ODcyOCwic2Vzc2lvbklkIjoiMDFIUE5RRTk5N0E3SkZLNjk1QTgyWEtTWkEiLCJ1c2VySWQiOiJhZG1pbiJ9.JWn1gRtlU6SYHa3KkP2FLhje9tvhxsD005dtxmTT5z4-lc65ekiClS5r7Wg8vamUappN_9uQINTJeZCjEU1IwYf6InUddxX6XsDWtCwixuePNq4JZMPrCUl_N4DBewPwL30RRrodoo0dxUstHLbTg9BUZ3qPq1QK6pLyd1HhKtN_jkRJ11VP2hEl6ef364ofmZvByDTKO56ah0GYzpxZ1uxvNV9PsyiuQk_drxE6x7PI7n-yH_H00zauMF6FYhTgv0SbqIRGQr-O8MKl1mbmk3efSdEr3gx6Q-bztG8p_jgOPWjVf4ol_6gfqtMOrlxTe2UJeR23fhWXCbp0ld20HpjgeIlkawoqpj8_TsjsnsPYk5epC2h5YVXrCuozWw5GnxYg7LDSx0CGQhe2JNRSy92b3hSvSahTQ0rKbmVDyvCIcRVhk2RO4Ilc-ddx4HhB8fcvbSVTAPBnI0A9NkPKSYKXA5SwiIlcPqex15BBG4zBbEX7D4JWr4925t2--WXkUIjsKvteOx0u9OhcBTbajahVepTNByNyqdKrJzdShWTBXw4mRNprL57ZZ3qFdCA6-11FcmeRkpDRqUX7kAXloFKBtcOECNjUpLNkf4FmT687-gt1R0xGIJsTatLSsc2K4Xr1TpTiuC7D3xledvsGTC07UuDgVQBb7AkN1Kch3Mg',\r\n\t\t\t'telin.clientId': 'PROVIDER',\r\n\t\t\t'telin.clientName': 'Provider',\r\n\t\t\t'telin.email': 'admin@bsp.com',\r\n\t\t\t'telin.id': 'admin',\r\n\t\t\t'telin.name': 'admin',\r\n\t\t\t'telin.roleCode': 'admin',\r\n\t\t\t'telin.roleId': 'admin',\r\n\t\t\t'telin.roleName': 'Administrator',\r\n\t\t\t'telin.roles':\r\n\t\t\t\t'[{\"isClientRole\":false,\"name\":\"Administrator\",\"code\":\"admin\",\"id\":\"admin\"}]',\r\n\t\t};\r\n\r\n\t\tObject.keys(data).forEach(function (k) {\r\n\t\t\tlocalStorage.setItem(k, data[k]);\r\n\t\t}); */\r\n\t\t/* Init Localstorage (Local Only) */\r\n\t}\r\n\r\n\tonChangeMainArea(area: MainArea): void {\r\n\t\tthis.currentView = area;\r\n\t}\r\n}\r\n","import { Component, ContentChild, forwardRef, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport {\r\n ControlContainer,\r\n ControlValueAccessor,\r\n FormControl,\r\n FormGroup,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-input[type=numeric]',\r\n templateUrl: './input-numeric.component.html',\r\n styleUrls: ['./input-numeric.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputNumericComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputNumericComponent implements ControlValueAccessor, OnInit {\r\n @Input() formControlName: string;\r\n @Input() formControl: FormControl;\r\n @Input() trimLeadingZeros: boolean;\r\n @Input() disallowLeadingZero: boolean;\r\n @Input() allowDecimal: boolean = true;\r\n @Input() identifier: string;\r\n @Input() placeholder: string;\r\n @Input() label: string;\r\n @Input() maxLength: number;\r\n @Input() suffix: string;\r\n @Input() hint: string;\r\n\r\n @ContentChild('suffix') suffixTmpl: TemplateRef<any>;\r\n\r\n private _value: any;\r\n private _isDisabled: boolean;\r\n private _onBaseChange: () => void;\r\n private _onBaseTouched: () => void;\r\n\r\n constructor(private controlContainer: ControlContainer) {}\r\n\r\n public handleInput(event: Event): void {\r\n const inputElement = event.target as HTMLInputElement;\r\n const value = inputElement.value || '';\r\n\r\n let numeric = this.allowDecimal ? value.replace(/[^0-9.]/g, '') : value.replace(/\\D/g, '');\r\n\r\n if (this.allowDecimal) {\r\n const parts = numeric.split('.');\r\n if (parts.length > 2) {\r\n numeric = parts[0] + '.' + parts.slice(1).join('');\r\n }\r\n }\r\n\r\n if (\r\n this.disallowLeadingZero &&\r\n numeric.startsWith('0') &&\r\n numeric.length > 1 &&\r\n numeric[1] !== '.'\r\n ) {\r\n numeric = numeric.replace(/^0+/, '');\r\n }\r\n\r\n let finalValue: string | number = numeric;\r\n if (this.trimLeadingZeros && numeric !== '' && !numeric.includes('.')) {\r\n finalValue = +numeric;\r\n }\r\n\r\n this.formControl.patchValue(finalValue, { emitEvent: false });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setBaseStateInitialization();\r\n }\r\n\r\n private setBaseStateInitialization(): void {\r\n if (!this.formControlName) return;\r\n const formGroup = this.controlContainer.control as FormGroup;\r\n this.formControl = formGroup.get(this.formControlName) as FormControl;\r\n }\r\n\r\n public get isValid(): boolean {\r\n return !!(this.formControl?.touched && this.formControl?.valid);\r\n }\r\n\r\n public get isInvalid(): boolean {\r\n return !!(this.formControl?.touched && this.formControl?.invalid);\r\n }\r\n\r\n public get errors(): ValidationErrors | null {\r\n return this.formControl.errors;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this._value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onBaseChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onBaseTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._isDisabled = isDisabled;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { InputNumericComponent } from './input-numeric.component';\r\n\r\n@NgModule({\r\n imports: [MatFormFieldModule, MatInputModule, ReactiveFormsModule, CommonModule],\r\n declarations: [InputNumericComponent],\r\n exports: [InputNumericComponent],\r\n})\r\nexport class InputNumericModule {}\r\n","import {\r\n\tAfterViewInit,\r\n\tDirective,\r\n\tEventEmitter,\r\n\tInput,\r\n\tNgZone,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { MatSelect, SELECT_ITEM_HEIGHT_EM } from '@angular/material/select';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { debounceTime, takeUntil, tap } from 'rxjs/operators';\r\n\r\n@Directive({\r\n\tselector: '[matSelectInfiniteScroll]',\r\n})\r\nexport class MatSelectInfiniteScrollDirective\r\n\timplements OnInit, OnDestroy, AfterViewInit\r\n{\r\n\t@Input() threshold = '15%';\r\n\t@Input() debounceTime = 150;\r\n\t@Input() complete: boolean;\r\n\t@Output() infiniteScroll = new EventEmitter<void>();\r\n\r\n\tprivate panel: Element;\r\n\tprivate thrPx = 0;\r\n\tprivate thrPc = 0;\r\n\tprivate singleOptionHeight = SELECT_ITEM_HEIGHT_EM;\r\n\tprivate destroyed$ = new Subject<boolean>();\r\n\r\n\tconstructor(private matSelect: MatSelect, private ngZone: NgZone) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.evaluateThreshold();\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.matSelect.openedChange\r\n\t\t\t.pipe(takeUntil(this.destroyed$))\r\n\t\t\t.subscribe(opened => {\r\n\t\t\t\tif (opened) {\r\n\t\t\t\t\tthis.panel = this.matSelect.panel.nativeElement;\r\n\t\t\t\t\tthis.singleOptionHeight = this.getSelectItemHeightPx();\r\n\t\t\t\t\tthis.registerScrollListener();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.destroyed$.next(true);\r\n\t\tthis.destroyed$.complete();\r\n\t}\r\n\r\n\tevaluateThreshold() {\r\n\t\tif (this.threshold.lastIndexOf('%') > -1) {\r\n\t\t\tthis.thrPx = 0;\r\n\t\t\tthis.thrPc = parseFloat(this.threshold) / 100;\r\n\t\t} else {\r\n\t\t\tthis.thrPx = parseFloat(this.threshold);\r\n\t\t\tthis.thrPc = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tregisterScrollListener() {\r\n\t\tfromEvent(this.panel, 'scroll')\r\n\t\t\t.pipe(\r\n\t\t\t\ttakeUntil(this.destroyed$),\r\n\t\t\t\tdebounceTime(this.debounceTime),\r\n\t\t\t\ttap(event => {\r\n\t\t\t\t\tthis.handleScrollEvent(event);\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t\t.subscribe();\r\n\t}\r\n\r\n\thandleScrollEvent(event) {\r\n\t\tthis.ngZone.runOutsideAngular(() => {\r\n\t\t\tif (this.complete) return;\r\n\r\n\t\t\tconst countOfRenderedOptions = this.matSelect.options.length;\r\n\t\t\tconst infiniteScrollDistance =\r\n\t\t\t\tthis.singleOptionHeight * countOfRenderedOptions;\r\n\t\t\tconst threshold =\r\n\t\t\t\tthis.thrPc !== 0\r\n\t\t\t\t\t? infiniteScrollDistance * this.thrPc\r\n\t\t\t\t\t: this.thrPx;\r\n\t\t\tconst scrolledDistance =\r\n\t\t\t\tthis.panel.clientHeight + event.target.scrollTop;\r\n\r\n\t\t\tif (scrolledDistance + threshold >= infiniteScrollDistance)\r\n\t\t\t\tthis.ngZone.run(() => this.infiniteScroll.emit());\r\n\t\t});\r\n\t}\r\n\r\n\tgetSelectItemHeightPx(): number {\r\n\t\treturn (\r\n\t\t\tparseFloat(getComputedStyle(this.panel).fontSize) *\r\n\t\t\tSELECT_ITEM_HEIGHT_EM\r\n\t\t);\r\n\t}\r\n}\r\n","export class PackageReqModel {\r\n\tpublic name: string;\r\n\tpublic monthlyRental: number;\r\n\tpublic conversationMsg: string;\r\n\tpublic businessMsg: string;\r\n\tpublic contacts: string;\r\n\tpublic isMultipleFlow: boolean;\r\n\tpublic tps: number;\r\n\tpublic multichatLiveAgent: string;\r\n\tpublic multichatLiveSupervisor: string;\r\n\tpublic numberOfFlow: string;\r\n\tpublic waOfficialAccount: string;\r\n\tpublic dashboardToSendMessage: string;\r\n\tpublic reportAdminPanel: string;\r\n\tpublic trainingSupport: string;\r\n\tpublic isMultiple: string;\r\n\tpublic checklistWa:\tboolean;\r\n\tpublic checklistTele:\tboolean;\r\n\tpublic checklistLine:\tboolean;\r\n\tpublic specifyPackage: string;\r\n\tpublic customDevelopment: string;\r\n\tpublic oneUsageCostConversation: string;\r\n\tpublic ovrUsgConversationRateCard: boolean;\r\n\tpublic ovrUsgNotficationRateCard: boolean | string;\r\n\tpublic ovrUsgConversationCost: string;\r\n\tpublic ovrUsgNotficationCost: string;\r\n\tpublic signupOrSetup: string;\r\n\tpublic checklistAdm: boolean;\r\n\tpublic checklistUser: boolean;\r\n\tpublic checklistClient: boolean;\r\n\tpublic checklistChatAgentAdmin: boolean;\r\n\tpublic checklistChatAgentUser: boolean;\r\n\tpublic country: string;\r\n\tpublic currency: string;\r\n\tpublic customPackage: boolean;\r\n\tpublic costPerCustomer: string;\r\n\tpublic costPerBusiness: string;\r\n\tpublic setupFeeRateCard: boolean | string;\r\n\tpublic setupFee: string;\r\n\tpublic type: string;\r\n\tpublic recomended: string;\r\n\r\n\t\r\n\r\n\tpublic clone(source: any): PackageReqModel {\r\n\t\tif (source.country) {\r\n\t\t\tthis.country = source.country;\r\n\t\t}\r\n\t\tif (source.recomended) {\r\n\t\t\tthis.recomended = source.recomended;\r\n\t\t}\r\n\t\tif (source.type) {\r\n\t\t\tthis.type = source.type;\r\n\t\t}\r\n\t\tif (source.setupFeeRateCard) {\r\n\t\t\tthis.setupFeeRateCard = source.setupFeeRateCard;\r\n\t\t}\r\n\t\tif (source.setupFee) {\r\n\t\t\tif(source.setupFeeRateCard === 'true') {\r\n\t\t\t\tthis.setupFee = null;\r\n\t\t\t}else {\r\n\t\t\t\tthis.setupFee = source.setupFee;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (source.ovrUsgConversationRateCard) {\r\n\t\t\tthis.ovrUsgConversationRateCard = source.ovrUsgConversationRateCard;\r\n\t\t}\r\n\t\tif (source.costPerCustomer) {\r\n\t\t\tthis.costPerCustomer = source.costPerCustomer;\r\n\t\t}\r\n\t\tif (source.costPerBusiness) {\r\n\t\t\tthis.costPerBusiness = source.costPerBusiness;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotficationRateCard) {\r\n\t\t\t\tthis.ovrUsgNotficationRateCard = source.ovrUsgNotficationRateCard;\r\n\t\t}\r\n\t\tif (source.ovrUsgConversationCost) {\r\n\t\t\tthis.ovrUsgConversationCost = source.ovrUsgConversationCost;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotficationCost) {\r\n\t\t\tif(source.ovrUsgNotficationRateCard === 'true') {\r\n\t\t\t\tthis.ovrUsgNotficationCost = null;\r\n\t\t\t}else {\r\n\t\t\t\tthis.ovrUsgNotficationCost = source.ovrUsgNotficationCost;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\tif (source.customPackage) {\r\n\t\t\tthis.customPackage = source.customPackage;\r\n\t\t}\r\n\t\tif (source.currency) {\r\n\t\t\tthis.currency = source.currency;\r\n\t\t}\r\n\t\tif (source.name) {\r\n\t\t\tthis.name = source.name;\r\n\t\t}\r\n\t\tif (source.monthlyRental) {\r\n\t\t\tthis.monthlyRental = source.monthlyRental;\r\n\t\t}\r\n\t\tif (source.conversationMsg) {\r\n\t\t\tthis.conversationMsg = source.conversationMsg;\r\n\t\t}\r\n\t\tif (source.businessMsg) {\r\n\t\t\tthis.businessMsg = source.businessMsg;\r\n\t\t}\r\n\t\tif (source.contacts) {\r\n\t\t\tthis.contacts = source.contacts;\r\n\t\t}\r\n\t\tif (source.isMultipleFlow) {\r\n\t\t\tthis.isMultipleFlow = source.isMultipleFlow;\r\n\t\t}\r\n\t\tif (source.tps) {\r\n\t\t\tthis.tps = source.tps;\r\n\t\t}\r\n\t\tif (source.multichatLiveAgent) {\r\n\t\t\tthis.multichatLiveAgent = source.multichatLiveAgent;\r\n\t\t}\r\n\t\tif (source.multichatLiveSupervisor) {\r\n\t\t\tthis.multichatLiveSupervisor = source.multichatLiveSupervisor;\r\n\t\t}\r\n\t\tif (source.numberOfFlow) {\r\n\t\t\tthis.numberOfFlow = source.numberOfFlow;\r\n\t\t}\r\n\t\tif (source.waOfficialAccount) {\r\n\t\t\tthis.waOfficialAccount = source.waOfficialAccount;\r\n\t\t}\r\n\t\tif (source.dashboardToSendMessage) {\r\n\t\t\tthis.dashboardToSendMessage = source.dashboardToSendMessage;\r\n\t\t}\r\n\t\tif (source.reportAdminPanel) {\r\n\t\t\tthis.reportAdminPanel = source.reportAdminPanel;\r\n\t\t}\r\n\t\tif (source.trainingSupport) {\r\n\t\t\tthis.trainingSupport = source.trainingSupport;\r\n\t\t}\r\n\t\tif (source.isMultiple) {\r\n\t\t\tthis.isMultiple = source.isMultiple;\r\n\t\t}\r\n\t\tif (source.checklistWa) {\r\n\t\t\tthis.checklistWa = source.checklistWa;\r\n\t\t}\r\n\t\tif (source.checklistLine) {\r\n\t\t\tthis.checklistLine = source.checklistLine;\r\n\t\t}\r\n\t\tif (source.checklistTele) {\r\n\t\t\tthis.checklistTele = source.checklistTele;\r\n\t\t}\r\n\t\tif (source.specifyPackage) {\r\n\t\t\tthis.specifyPackage = source.specifyPackage;\r\n\t\t}\r\n\t\tif (source.customDevelopment) {\r\n\t\t\tthis.customDevelopment = source.customDevelopment;\r\n\t\t}\r\n\t\tif (source.oneUsageCostConversation) {\r\n\t\t\tthis.oneUsageCostConversation = source.oneUsageCostConversation;\r\n\t\t}\r\n\t\t// if (source.oneUsageCostNotification) {\r\n\t\t// \tthis.oneUsageCostNotification = source.oneUsageCostNotification;\r\n\t\t// }\r\n\t\tif (source.signupOrSetup) {\r\n\t\t\tthis.signupOrSetup = source.signupOrSetup;\r\n\t\t}\r\n\t\tif (source.checklistAdm) {\r\n\t\t\tthis.checklistAdm = source.checklistAdm;\r\n\t\t}\r\n\t\tif (source.checklistUser) {\r\n\t\t\tthis.checklistUser = source.checklistUser;\r\n\t\t}\r\n\t\tif (source.checklistClient) {\r\n\t\t\tthis.checklistClient = source.checklistClient;\r\n\t\t}\r\n\t\tif (source.checklistChatAgentAdmin) {\r\n\t\t\tthis.checklistChatAgentAdmin = source.checklistChatAgentAdmin;\r\n\t\t}\r\n\t\tif (source.checklistChatAgentUser) {\r\n\t\t\tthis.checklistChatAgentUser = source.checklistChatAgentUser;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n}","export class BaseOptionModel {\r\n\tpublic label: string;\r\n\tpublic value: string | number;\r\n}\r\n","export class HttpBodyReqPaginationGlobalVarModel {\r\n\tpublic pageSize: number;\r\n\tpublic pageNo: number;\r\n\r\n\tconstructor() {\r\n\t\tthis.pageSize = 3;\r\n\t\tthis.pageNo = 1;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\tpageSize: this.pageSize,\r\n\t\t\tpageNo: this.pageNo,\r\n\t\t};\r\n\t}\r\n}\r\n","export class HttpBodyReqPaginationModel {\r\n\tpublic pageSize: number;\r\n\tpublic pageNo: number;\r\n\r\n\tconstructor() {\r\n\t\tthis.pageSize = 10;\r\n\t\tthis.pageNo = 1;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\tpageSize: this.pageSize,\r\n\t\t\tpageNo: this.pageNo,\r\n\t\t};\r\n\t}\r\n}\r\n","export * from './http-body-req';\r\n// export * from './api-adapter-service-models';\r\n// export * from './api-dto';","import { HttpBodyReqPaginationModel } from \"./util\";\r\n\r\nexport class BillingParamReqModel extends HttpBodyReqPaginationModel {\r\n\tpublic filter: string;\r\n\tpublic platform: string;\r\n\tpublic clientId: string;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\tfilter: this.filter,\r\n\t\t\tplatform: this.platform,\r\n\t\t\tclientId: this.clientId,\r\n\t\t\tpageNo: String(this.pageNo),\r\n\t\t\tpageSize: String(this.pageSize),\r\n\t\t};\r\n\t}\r\n}\r\n","export class CountryModel {\r\n\tpublic category: string;\r\n\tpublic code: string;\r\n\tpublic values: string;\r\n\tpublic param1: string;\r\n\tpublic param2: boolean;\r\n\tpublic ìcon: boolean;\r\n\r\n\tpublic convert(dto: any): CountryModel {\r\n\r\n\t\tif (dto.category) {\r\n\t\t\tthis.category = dto.category;\r\n\t\t}\r\n\t\tif (dto.code) {\r\n\t\t\tthis.code = dto.code;\r\n\t\t}\r\n\t\tif (dto.values) {\r\n\t\t\tthis.values = dto.values;\r\n\t\t}\r\n\t\tif (dto.param1) {\r\n\t\t\tthis.param1 = dto.param1;\r\n\t\t}\r\n\t\tif (dto.param2) {\r\n\t\t\tthis.param2 = dto.param2;\r\n\t\t}\r\n\t\tif (dto.ìcon) {\r\n\t\t\tthis.ìcon = dto.ìcon;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n}\r\n","export class CreatePackageReqModel {\r\n\tpublic name : string;\r\n\tpublic channels : string[] = [];\r\n\tpublic customDevelopment : boolean;\r\n\tpublic maxAgent : string;\r\n\tpublic maxContact : string;\r\n\tpublic maxFlow : string;\r\n\tpublic maxSupervisor : string;\r\n\tpublic monthlyConversation : string;\r\n\tpublic monthlyNotification : string;\r\n\tpublic monthlyRental : number;\r\n\tpublic monthlyRentalRateCard : string;\r\n\tpublic ovrUsgConversation : string;\r\n\tpublic ovrUsgConversationCost : string;\r\n\tpublic ovrUsgConversationRateCard : boolean;\r\n\tpublic ovrUsgNotification : string;\r\n\tpublic ovrUsgNotificationCost : string;\r\n\tpublic ovrUsgNotificationRateCard : boolean;\r\n\tpublic reports : boolean;\r\n\tpublic roles : string;\r\n\tpublic sendMsgDashboard : boolean;\r\n\tpublic setupFee : string;\r\n\tpublic tps : number;\r\n\tpublic training : boolean;\r\n\tpublic waOfficialAcc : boolean;\r\n\tpublic customPackage: boolean;\r\n\tpublic countryCode: string;\r\n\tpublic costPerCustomer: string;\r\n\tpublic costPerBusiness: string;\r\n\tpublic setupFeeRateCard: boolean;\r\n\tpublic type: string;\r\n\tpublic recomended: string;\r\n\r\n\tpublic clone(source:any): CreatePackageReqModel {\r\n\t\tif (source.name) {\r\n\t\t\tthis.name = source.name;\r\n\t\t}\r\n\t\tif (source.type) {\r\n\t\t\tthis.type = source.type;\r\n\t\t}\r\n\t\tif (source.recomended) {\r\n\t\t\tthis.recomended = source.recomended;\r\n\t\t}\r\n\t\tif (source.setupFeeRateCard) {\r\n\t\t\tthis.setupFeeRateCard = source.setupFeeRateCard;\r\n\t\t}\r\n\t\tif (source.countryCode) {\r\n\t\t\tthis.countryCode = source.countryCode;\r\n\t\t}\r\n\t\tif (source.costPerCustomer) {\r\n\t\t\tthis.costPerCustomer = source.costPerCustomer;\r\n\t\t}\r\n\t\tif (source.costPerBusiness) {\r\n\t\t\tthis.costPerBusiness = source.costPerBusiness;\r\n\t\t}\r\n\t\tif (source.customPackage) {\r\n\t\t\tthis.customPackage = source.customPackage;\r\n\t\t}\r\n\t\tif (source.channels) {\r\n\t\t\tthis.channels = [source.channels];\r\n\t\t}\r\n\t\tif (source.customDevelopment) {\r\n\t\t\tthis.customDevelopment = source.customDevelopment;\r\n\t\t}\r\n\t\tif (source.maxAgent) {\r\n\t\t\tthis.maxAgent = source.maxAgent;\r\n\t\t}\r\n\t\tif (source.maxContact) {\r\n\t\t\tthis.maxContact = source.maxContact;\r\n\t\t}\r\n\t\tif (source.maxFlow) {\r\n\t\t\tthis.maxFlow = source.maxFlow;\r\n\t\t}\r\n\t\tif (source.maxSupervisor) {\r\n\t\t\tthis.maxSupervisor = source.maxSupervisor;\r\n\t\t}\r\n\t\tif (source.monthlyConversation) {\r\n\t\t\tthis.monthlyConversation = source.monthlyConversation;\r\n\t\t}\r\n\t\tif (source.monthlyNotification) {\r\n\t\t\tthis.monthlyNotification = source.monthlyNotification;\r\n\t\t}\r\n\t\tif (source.monthlyRental) {\r\n\t\t\tthis.monthlyRental = source.monthlyRental;\r\n\t\t}\r\n\t\tif (source.monthlyRentalRateCard) {\r\n\t\t\tthis.monthlyRentalRateCard = source.monthlyRentalRateCard;\r\n\t\t}\r\n\t\tif (source.ovrUsgConversation) {\r\n\t\t\tthis.ovrUsgConversation = source.ovrUsgConversation;\r\n\t\t}\r\n\t\tif (source.ovrUsgConversationCost) {\r\n\t\t\tthis.ovrUsgConversationCost = source.ovrUsgConversationCost;\r\n\t\t}\r\n\t\tif (source.ovrUsgConversationRateCard) {\r\n\t\t\tthis.ovrUsgConversationRateCard = source.ovrUsgConversationRateCard;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotification) {\r\n\t\t\tthis.ovrUsgNotification = source.ovrUsgNotification;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotificationCost) {\r\n\t\t\tthis.ovrUsgNotificationCost = source.ovrUsgNotificationCost;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotificationRateCard) {\r\n\t\t\tthis.ovrUsgNotificationRateCard = source.ovrUsgNotificationRateCard;\r\n\t\t}\r\n\t\tif (source.reports) {\r\n\t\t\tthis.reports = source.reports;\r\n\t\t}\r\n\t\tif (source.roles) {\r\n\t\t\tthis.roles = source.roles;\r\n\t\t}\r\n\t\tif (source.sendMsgDashboard) {\r\n\t\t\tthis.sendMsgDashboard = source.sendMsgDashboard;\r\n\t\t}\r\n\t\tif (source.setupFee) {\r\n\t\t\tthis.setupFee = source.setupFee;\r\n\t\t}\r\n\t\tif (source.tps) {\r\n\t\t\tthis.tps = source.tps;\r\n\t\t}\r\n\t\tif (source.training) {\r\n\t\t\tthis.training = source.training;\r\n\t\t}\r\n\t\tif (source.waOfficialAcc) {\r\n\t\t\tthis.waOfficialAcc = source.waOfficialAcc;\r\n\t\t}\r\n\r\n\t\t\r\n\t\treturn this;\r\n\t}\r\n\r\n\tconvert(): any {\r\n\t\treturn {\r\n\t\t\tname: this.name,\r\n\t\t\tchannels : this.channels ,\r\n\t\t\tcustomDevelopment : this.customDevelopment ,\r\n\t\t\tmaxAgent : +this.maxAgent ,\r\n\t\t\tmaxContact :+this.maxContact ,\r\n\t\t\tmaxFlow : +this.maxFlow ,\r\n\t\t\tmaxSupervisor : +this.maxSupervisor ,\r\n\t\t\tmonthlyConversation : +this.monthlyConversation ,\r\n\t\t\tmonthlyNotification : +this.monthlyNotification ,\r\n\t\t\tmonthlyRental : +this.monthlyRental ,\r\n\t\t\tmonthlyRentalRateCard : this.monthlyRentalRateCard ,\r\n\t\t\tovrUsgConversation : this.ovrUsgConversation ,\r\n\t\t\tovrUsgConversationCost : +this.ovrUsgConversationCost ,\r\n\t\t\tovrUsgConversationRateCard : this.ovrUsgConversationRateCard ,\r\n\t\t\tovrUsgNotification : this.ovrUsgNotification ,\r\n\t\t\tovrUsgNotificationCost : +this.ovrUsgNotificationCost ,\r\n\t\t\tovrUsgNotificationRateCard : this.ovrUsgNotificationRateCard ,\r\n\t\t\treports : this.reports ,\r\n\t\t\troles : this.roles ,\r\n\t\t\tsendMsgDashboard : this.sendMsgDashboard ,\r\n\t\t\tsetupFee : +this.setupFee ,\r\n\t\t\ttps : +this.tps ,\r\n\t\t\ttraining : this.training ,\r\n\t\t\twaOfficialAcc : this.waOfficialAcc,\r\n\t\t\tcustomPackage: this.customPackage,\r\n\t\t\tcountryCode: this.countryCode,\r\n\t\t\tcostPerBusiness: this.costPerBusiness,\r\n\t\t\tcostPerCustomer: this.costPerCustomer,\r\n\t\t\tsetupFeeRateCard: this.setupFeeRateCard,\r\n\t\t\ttype: this.type,\r\n\t\t\trecomended: this.recomended\r\n\t\t};\r\n\t}\r\n}","export class HttpBodyRespModel {\r\n\tpublic status: number;\r\n\tpublic errorCode: number;\r\n\tpublic message: string;\r\n\tpublic data: any;\r\n\tpublic totalRecord: number;\r\n\r\n\tpublic convert(dto: any): HttpBodyRespModel {\r\n\t\tif (dto.status) {\r\n\t\t\tthis.status = dto.status;\r\n\t\t}\r\n\t\tif (dto.errorCode) {\r\n\t\t\tthis.errorCode = dto.errorCode;\r\n\t\t}\r\n\t\tif (dto.message) {\r\n\t\t\tthis.message = dto.message;\r\n\t\t}\r\n\t\tif (dto.data) {\r\n\t\t\tthis.data = dto.data;\r\n\t\t}\r\n\t\tif (dto.totalRecord >= 0) {\r\n\t\t\tthis.totalRecord = dto.totalRecord;\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n}\r\n","// let API_CONST = '';\r\n\r\n// if (location.origin.includes('dashboard.neuapix'))\r\n// \tAPI_CONST = 'https://api.neuapix.com';\r\n// else if (location.origin.includes('dashboard-staging.neuapix'))\r\n// \tAPI_CONST = 'https://api-staging.neuapix.com';\r\n// else if (location.origin.includes('dashboard-qa.adlsandbox'))\r\n// \tAPI_CONST = 'https://apibsp-qa.adlsandbox.net';\r\n// else if (location.origin.includes('demo-dev.adlsandbox.net'))\r\n// \tAPI_CONST = 'https://apibsp-dev.adlsandbox.net';\r\n// else API_CONST = 'https://apibsp-dev.adlsandbox.net';\r\n\r\n// export const environment = {\r\n// \tproduction: false,\r\n// \tapi: API_CONST,\r\n// };\r\nlet API_CONST = '';\r\nconst origin = location.origin;\r\n\r\n// 1. Cek Production\r\nif (origin.includes('dashboard.neuapix.com')) {\r\n API_CONST = 'https://api.neuapix.com';\r\n}\r\n// 2. Cek Staging\r\nelse if (origin.includes('dashboard-staging')) {\r\n API_CONST = 'https://api-staging.neuapix.com';\r\n}\r\n// 3. Cek QA\r\nelse if (origin.includes('dashboard-qa')) {\r\n API_CONST = 'https://apibsp-qa.adlsandbox.net';\r\n}\r\n// 4. Cek Demo Dev secara spesifik\r\nelse if (origin.includes('demo-dev')) {\r\n API_CONST = 'https://apibsp-dev.adlsandbox.net';\r\n}\r\n// 5. Default (Localhost atau lainnya)\r\nelse {\r\n API_CONST = 'https://apibsp-dev.adlsandbox.net';\r\n}\r\n\r\nexport const environment = {\r\n production: false,\r\n api: API_CONST,\r\n};\r\n","import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/internal/operators/catchError';\r\nimport { environment } from '../../../environments/environment';\r\nimport { Parameter, ServerInBuiltError } from '../models/util/api-adapter-service-models';\r\nimport { AppRequest } from '../models/util/api-dto/request-models/app-request';\r\nimport { AppResponse } from '../models/util/api-dto/response-models/app-response';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiAdapterServiceService {\r\n private queryCount = 0;\r\n\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public executeApiRequest<T>(\r\n parameterList: Array<Parameter>,\r\n path: string,\r\n httpVerb: string,\r\n isFile: boolean = false\r\n ): Observable<any> {\r\n let url = path;\r\n let bodyData: {};\r\n let parameter: Parameter;\r\n let formData = new FormData();\r\n\r\n parameterList\r\n ?.filter((rt) => rt.in !== 'header')\r\n .forEach((requestType) => {\r\n parameter = parameterList.find(\r\n (parameter) => parameter.name === requestType.name\r\n ) as Parameter;\r\n\r\n if (!parameter && requestType.required && requestType.in !== 'header') {\r\n window.alert(\r\n `Parameter \"${requestType.name}\" is required!, Try again with \"${requestType.name}\"`\r\n );\r\n } else if (!parameter && !requestType.required) {\r\n // continue;\r\n } else {\r\n switch (requestType.in) {\r\n case 'body': {\r\n bodyData = parameter.value;\r\n break;\r\n }\r\n case 'path': {\r\n url = url.replace(`{${parameter.name}}`, parameter.value);\r\n break;\r\n }\r\n case 'query': {\r\n url = this.setQuery(parameter.name, parameter.value, url);\r\n break;\r\n }\r\n case 'formData': {\r\n formData = this.setFormData(parameter, formData);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n parameter = undefined;\r\n });\r\n\r\n this.queryCount = 0;\r\n\r\n url = `${environment.api}${url}`;\r\n const appRequest: AppRequest<any> = {\r\n ...(parameterList?.[0]?.withoutKeyData ? bodyData : { data: bodyData }),\r\n };\r\n\r\n const headers = new HttpHeaders()\r\n .set('Authorization', 'Bearer ' + localStorage.getItem('telin.accessToken'))\r\n .set('Access-Control-Allow-Origin', '*');\r\n\r\n return this.httpClient\r\n .request<AppResponse<T>>(httpVerb, url, {\r\n body: !bodyData ? formData : appRequest,\r\n responseType: isFile ? ('blob' as 'json') : ('json' as 'json'),\r\n headers,\r\n })\r\n .pipe(\r\n catchError((err: HttpErrorResponse) => {\r\n if (err.error instanceof ErrorEvent) {\r\n return of<AppResponse<any>>({\r\n error: {\r\n title: 'Network error!',\r\n detail: err.message,\r\n source: err.statusText,\r\n status: err.status.toString(),\r\n },\r\n meta: {\r\n code: err.status,\r\n message: err.message,\r\n },\r\n });\r\n }\r\n\r\n return of<ServerInBuiltError>(err.error);\r\n })\r\n );\r\n }\r\n\r\n public uploadFileToS3(s3Url: string, file: File): Observable<any> {\r\n // Kita kirim raw binary/file dengan header Content-Type yang sesuai\r\n return this.httpClient.put(s3Url, file, {\r\n headers: { 'Content-Type': file.type },\r\n });\r\n }\r\n\r\n private setQuery(name: string, value: any, url: string): string {\r\n url = this.queryCount === 0 ? `${url}?${name}=${value}` : `${url}&${name}=${value}`;\r\n this.queryCount++;\r\n return url;\r\n }\r\n\r\n private setFormData(parameter: Parameter, formData: FormData): FormData {\r\n if (parameter.type === 'array') {\r\n for (let i = 0; parameter.value.length > i; i++) {\r\n formData.append(parameter.name, parameter.value[i], parameter.value[i].name);\r\n }\r\n } else {\r\n formData.append(parameter.name, parameter.value ? parameter.value : null);\r\n }\r\n return formData;\r\n }\r\n}\r\n","export const CampaignListTableLabelConst = [\r\n\t'Broadcast ID',\r\n\t'Business Name',\r\n\t'Broadcast Name',\r\n\t'Template Name',\r\n\t'Channel',\r\n\t'Status',\r\n\t'Number Count',\r\n\t'On Progress',\r\n\t'Sent',\r\n\t'Delivered',\r\n\t'Read',\r\n\t'Failed',\r\n\t'Repeat Count',\r\n\t'Start Date',\r\n\t'End Date',\r\n\t'Action',\r\n];\r\n\r\nexport const CampaignListTableColumnConst = [\r\n\t'id',\r\n\t'clientName',\r\n\t'name',\r\n\t'templateName',\r\n\t'platform',\r\n\t'statusName',\r\n\t'numberCount',\r\n\t'queuedCount',\r\n\t'sentCount',\r\n\t'delivCount',\r\n\t'readCount',\r\n\t'failedCount',\r\n\t'repeatCount',\r\n\t'startTime',\r\n\t'endTime',\r\n\t'action',\r\n];\r\n","export class CampaignsListModel {\r\n\tpublic campaignID: string;\r\n\tpublic businessName: string;\r\n\tpublic campaignName: string;\r\n\tpublic medium: string;\r\n\tpublic status: string;\r\n\tpublic numberCount: number;\r\n\tpublic deilveredCount: number;\r\n\tpublic seenCount: number;\r\n\tpublic responseCount: number;\r\n\tpublic estimatedCost: number;\r\n\tpublic actualCost: number;\r\n\tpublic startDate: string;\r\n\tpublic endDate: string;\r\n\tpublic id: string;\r\n\r\n\tpublic convert(dto: any): CampaignsListModel {\r\n\t\tif (dto.campaignID) {\r\n\t\t\tthis.campaignID = dto.campaignID;\r\n\t\t}\r\n\t\tif (dto.businessName) {\r\n\t\t\tthis.businessName = dto.businessName;\r\n\t\t}\r\n\t\tif (dto.campaignName) {\r\n\t\t\tthis.campaignName = dto.campaignName;\r\n\t\t}\r\n\t\tif (dto.medium) {\r\n\t\t\tthis.medium = dto.medium;\r\n\t\t}\r\n\t\tif (dto.status) {\r\n\t\t\tthis.status = dto.status;\r\n\t\t}\r\n\t\tif (dto.numberCount) {\r\n\t\t\tthis.numberCount = dto.numberCount;\r\n\t\t}\r\n\t\tif (dto.deilveredCount) {\r\n\t\t\tthis.deilveredCount = dto.deilveredCount;\r\n\t\t}\r\n\t\tif (dto.seenCount) {\r\n\t\t\tthis.seenCount = dto.seenCount;\r\n\t\t}\r\n\t\tif (dto.responseCount) {\r\n\t\t\tthis.responseCount = dto.responseCount;\r\n\t\t}\r\n\t\tif (dto.estimatedCost) {\r\n\t\t\tthis.estimatedCost = dto.estimatedCost;\r\n\t\t}\r\n\t\tif (dto.actualCost) {\r\n\t\t\tthis.actualCost = dto.actualCost;\r\n\t\t}\r\n\t\tif (dto.startDate) {\r\n\t\t\tthis.startDate = dto.startDate;\r\n\t\t}\r\n\t\tif (dto.endDate) {\r\n\t\t\tthis.endDate = dto.endDate;\r\n\t\t}\r\n\t\tif (dto.id) {\r\n\t\t\tthis.id = dto.id;\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n}\r\n","import { MatTableDataSource } from '@angular/material/table';\r\n\r\nexport class TableModel {\r\n\tpublic columns: any[];\r\n\tpublic dataSource: MatTableDataSource<any>;\r\n\tpublic labels: string[];\r\n\tpublic page: number;\r\n\tpublic pageSize: number;\r\n\tpublic totalData: number;\r\n\r\n\tconstructor() {\r\n\t\tthis.columns = [];\r\n\t\tthis.dataSource = new MatTableDataSource();\r\n\t\tthis.labels = [];\r\n\t\tthis.page = 1;\r\n\t\tthis.pageSize = 10;\r\n\t\tthis.totalData = 0;\r\n\t}\r\n\r\n\tpublic getNumber(index: number, limit: number): number {\r\n\t\treturn (this.page - 1) * limit + index;\r\n\t}\r\n\r\n\tpublic getPageIndex(): number {\r\n\t\treturn this.page - 1;\r\n\t}\r\n\r\n\tpublic isEmpty(): boolean {\r\n\t\treturn this.totalData === 0;\r\n\t}\r\n\r\n\tpublic setPage(page: number): void {\r\n\t\tthis.page = page;\r\n\t}\r\n\r\n\tpublic setPageSize(size: number): void {\r\n\t\tthis.pageSize = size;\r\n\t}\r\n\r\n\tpublic resetPage(): void {\r\n\t\tthis.page = 1;\r\n\t}\r\n\r\n\tpublic setNextPage(isNext: boolean): void {\r\n\t\tif (!isNext && this.page === 1) {\r\n\t\t\tthis.totalData = this.dataSource.data?.length ?? 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.totalData =\r\n\t\t\tthis.page === 1\r\n\t\t\t\t? this.pageSize * 2\r\n\t\t\t\t: this.pageSize * (this.page + 1);\r\n\r\n\t\tconst diffData = this.pageSize - this.dataSource.data?.length;\r\n\r\n\t\t/* totalData substracted by diffData if data < pageSize */\r\n\t\tif (diffData !== 0) this.totalData -= diffData;\r\n\r\n\t\t/* totalData substracted by pageSize if isNext false */\r\n\t\tif (!isNext) this.totalData -= this.pageSize;\r\n\t}\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { MainArea } from '../../../core/enums/main-area.enum';\r\nimport { HttpBodyReqPaginationModel } from '../../../core/models';\r\nimport { Parameter } from '../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../core/models/util/api-dto/response-models/app-response';\r\nimport { ApiAdapterServiceService } from '../../../core/services/api-adapter-service.service';\r\nimport { CampaignTotalDto } from '../../models/campaign-count-final-response-dto.model';\r\nimport {\r\n\tCampaignListTableColumnConst,\r\n\tCampaignListTableLabelConst,\r\n\tTableModel,\r\n} from './models';\r\nimport { CampaignResponseDtoApi } from './models/campaign-response-dto.model';\r\n\r\n@Component({\r\n\tselector: 'lib-campaign-index',\r\n\ttemplateUrl: './campaign-index.component.html',\r\n\tstyleUrls: ['./campaign-index.component.scss'],\r\n})\r\nexport class CampaignIndexComponent implements OnInit, OnDestroy {\r\n\t@Output() currentView = new EventEmitter<MainArea>();\r\n\r\n\tpublic table: TableModel;\r\n\tpublic filterValue: any;\r\n\tpublic currentViews = MainArea;\r\n\tpublic campaignTotal: CampaignTotalDto;\r\n\r\n\tprivate campaignParam: HttpBodyReqPaginationModel;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\tconstructor(\r\n\t\tprivate datePipe: DatePipe,\r\n\t\tprivate apiAdapterService: ApiAdapterServiceService\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.campaignParam = new HttpBodyReqPaginationModel();\r\n\r\n\t\tthis.initTable();\r\n\t\tthis.campaignCountService();\r\n\t\tthis.getCampaignList();\r\n\r\n\t\tlocalStorage.removeItem('telin.campaign');\r\n\t}\r\n\r\n\tprivate initTable(): void {\r\n\t\tthis.table = new TableModel();\r\n\t\tthis.table.labels = CampaignListTableLabelConst;\r\n\t\tthis.table.columns = CampaignListTableColumnConst;\r\n\t}\r\n\r\n\tprivate campaignCountService() {\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest([], '/campaign/totals', 'GET')\r\n\t\t\t.subscribe((response: AppResponse<CampaignTotalDto>) => {\r\n\t\t\t\tthis.campaignTotal = response?.data;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getCampaignList(searchValue: string = ''): void {\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.campaignParam.pageNo, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', this.campaignParam.pageSize, 'number'),\r\n\t\t\tthis.initParam('filter', searchValue, 'string'),\r\n\t\t];\r\n\r\n\t\tif (this.filterValue?.businessName)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam(\r\n\t\t\t\t\t'clientId',\r\n\t\t\t\t\tthis.filterValue.businessName,\r\n\t\t\t\t\t'string'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\tif (this.filterValue?.medium)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam('channel', this.filterValue.medium, 'string')\r\n\t\t\t);\r\n\t\tif (this.filterValue?.templateName)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam(\r\n\t\t\t\t\t'templateName',\r\n\t\t\t\t\tthis.filterValue.templateName?.name,\r\n\t\t\t\t\t'string'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\tif (this.filterValue?.status)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam('status', this.filterValue.status, 'string')\r\n\t\t\t);\r\n\t\tif (this.filterValue?.startDate)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam(\r\n\t\t\t\t\t'startDate',\r\n\t\t\t\t\tthis.datePipe.transform(\r\n\t\t\t\t\t\tthis.filterValue.startDate,\r\n\t\t\t\t\t\t'yyyy-MM-dd'\r\n\t\t\t\t\t),\r\n\t\t\t\t\t'string'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\tif (this.filterValue?.endDate)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam(\r\n\t\t\t\t\t'endDate',\r\n\t\t\t\t\tthis.datePipe.transform(\r\n\t\t\t\t\t\tthis.filterValue.endDate,\r\n\t\t\t\t\t\t'yyyy-MM-dd'\r\n\t\t\t\t\t),\r\n\t\t\t\t\t'string'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/campaign', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<CampaignResponseDtoApi[]>) => {\r\n\t\t\t\tthis.table.dataSource.data = resp.data;\r\n\t\t\t\tthis.table.setNextPage(resp.haveNext);\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tpublic updatePage(event: any): void {\r\n\t\tif (event.pageSize) {\r\n\t\t\tthis.table.totalData = event.pageSize;\r\n\t\t\tthis.table.setPageSize(event.pageSize);\r\n\t\t\tthis.table.resetPage();\r\n\t\t} else {\r\n\t\t\tthis.table.setPage(event);\r\n\t\t}\r\n\r\n\t\tthis.campaignParam.pageNo = this.table.page;\r\n\t\tthis.campaignParam.pageSize = this.table.pageSize;\r\n\t\tthis.getCampaignList();\r\n\t}\r\n\r\n\tpublic updateFilter(_filter: any) {\r\n\t\tthis.table.resetPage();\r\n\t\tthis.campaignParam.pageNo = this.table.page;\r\n\t\tthis.campaignParam.pageSize = this.table.pageSize;\r\n\t\tthis.filterValue = _filter;\r\n\r\n\t\tthis.getCampaignList();\r\n\t}\r\n\r\n\tpublic updateSearch(searchValue: string) {\r\n\t\tthis.table.resetPage();\r\n\t\tthis.campaignParam.pageNo = this.table.page;\r\n\t\tthis.getCampaignList(searchValue);\r\n\t}\r\n\r\n\tpublic addCampaign(): void {\r\n\t\tlocalStorage.removeItem('telin.campaign');\r\n\t\tthis.changeCurrentView(this.currentViews.NewCampaign);\r\n\t}\r\n\r\n\tpublic changeCurrentView(area: MainArea) {\r\n\t\tthis.currentView.emit(area);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","export const PlatformOptionConst = [\r\n {\r\n icon: 'icon_wa',\r\n inputSvgIcon: 'icon-wa-gray',\r\n image: 'whatsapp.png',\r\n label: 'WhatsApp',\r\n value: 'WA',\r\n },\r\n {\r\n icon: 'menu_sms',\r\n inputSvgIcon: 'icon-sms-gray',\r\n image: 'sms.png',\r\n label: 'SMS',\r\n value: 'SMS',\r\n },\r\n {\r\n icon: 'icon_email',\r\n inputSvgIcon: 'icon-email-gray',\r\n image: 'email-contact.png',\r\n label: 'Email',\r\n value: 'EMAIL',\r\n },\r\n {\r\n icon: 'icon_line',\r\n inputSvgIcon: 'icon-line-gray',\r\n image: 'line.png',\r\n label: 'Line',\r\n value: 'LINE',\r\n },\r\n];\r\n\r\nexport const MsgTypeWAOptionConst = [\r\n {\r\n name: 'Text',\r\n code: 'TEXT',\r\n },\r\n {\r\n name: 'Media',\r\n code: 'MEDIA',\r\n },\r\n {\r\n name: 'Template',\r\n code: 'TEMPLATE',\r\n },\r\n {\r\n name: 'Text - Utility',\r\n code: 'utility',\r\n },\r\n /* {\r\n\t\tname: 'Catalogue',\r\n\t\tcode: 'CATALOGUE',\r\n\t}, */\r\n];\r\n\r\nexport const MsgTypeEmailOptionConst = [\r\n {\r\n name: 'Text',\r\n code: 'HTML',\r\n },\r\n {\r\n name: 'Template',\r\n code: 'TEMPLATE',\r\n },\r\n];\r\n\r\nexport const MsgTypeLineOptionConst = [\r\n {\r\n name: 'Text',\r\n code: 'TEXT',\r\n },\r\n {\r\n name: 'Template',\r\n code: 'TEMPLATE',\r\n },\r\n /* {\r\n\t\tname: 'Button',\r\n\t\tcode: 'BUTTON',\r\n\t},\r\n\t{\r\n\t\tname: 'Confirmation',\r\n\t\tcode: 'CONFIRMATION',\r\n\t},\r\n\t{\r\n\t\tname: 'Carousel',\r\n\t\tcode: 'CAROUSEL',\r\n\t},\r\n\t{\r\n\t\tname: 'Image Carousel',\r\n\t\tcode: 'IMAGE_CAROUSEL',\r\n\t},\r\n\t{\r\n\t\tname: 'Flex Bubble',\r\n\t\tcode: 'FLEX_BUBBLE',\r\n\t},\r\n\t{\r\n\t\tname: 'Flex Carousel',\r\n\t\tcode: 'FLEX_CAROUSEL',\r\n\t}, */\r\n];\r\n\r\nexport const MediaTypeOptionConst = [\r\n {\r\n name: 'Image',\r\n code: 'IMAGE',\r\n },\r\n {\r\n name: 'Video',\r\n code: 'VIDEO',\r\n },\r\n {\r\n name: 'Document',\r\n code: 'DOCUMENT',\r\n },\r\n /* {\r\n\t\tname: 'Location',\r\n\t\tcode: 'LOCATION',\r\n\t}, */\r\n];\r\n\r\nexport const WidgetLiveCampaignConst: {\r\n title: string;\r\n arrow: string;\r\n value: number;\r\n date: string;\r\n icon: string;\r\n dateclass: string;\r\n}[] = [\r\n {\r\n title: 'Total Campaigns',\r\n arrow: '../../../../assets/svg/icon-down-arrow.svg',\r\n value: 0,\r\n date: '',\r\n icon: '../../../../assets/svg/icon-total-campaign.svg',\r\n dateclass: 'redpercent',\r\n },\r\n {\r\n title: 'Live Campaigns',\r\n arrow: '../../../../assets/svg/icon-down-arrow.svg',\r\n value: 0,\r\n date: '',\r\n icon: '../../../../assets/svg/icon-use-campaign.svg',\r\n dateclass: 'redpercent',\r\n },\r\n {\r\n title: 'Pending Approval',\r\n arrow: '../../../../assets/svg/icon-down-arrow.svg',\r\n value: 0,\r\n date: '',\r\n icon: '../../../../assets/svg/icon-pending-approval-campaign.svg',\r\n dateclass: 'redpercent',\r\n },\r\n];\r\n\r\nexport const CampaignPerformanceChartConfig = {\r\n legend: {\r\n icon: 'circle',\r\n orient: 'horizontal',\r\n x: 'center',\r\n y: 'bottom',\r\n },\r\n tooltip: {},\r\n dataset: {\r\n source: [['', 'WA Text', 'WA Template', 'WA Media', 'Product Catalog']],\r\n },\r\n xAxis: { type: 'category' },\r\n yAxis: {},\r\n series: [\r\n { type: 'bar', color: '#E666DA' },\r\n { type: 'bar', color: '#EB7215' },\r\n { type: 'bar', color: '#F3B435' },\r\n { type: 'bar', color: '#35CDF3' },\r\n ],\r\n};\r\n\r\nexport const ConversationInsightsChartConfig = {\r\n tooltip: {\r\n trigger: 'axis',\r\n },\r\n legend: {\r\n icon: 'circle',\r\n data: ['Delivery Rate of Campaigns', 'Total Number of Campaigns', 'Cost Distribution'],\r\n x: 'center',\r\n y: 'bottom',\r\n },\r\n xAxis: {\r\n type: 'category',\r\n data: [],\r\n },\r\n yAxis: {\r\n type: 'value',\r\n },\r\n series: [\r\n {\r\n name: 'Delivery Rate of Campaigns',\r\n data: [],\r\n type: 'line',\r\n smooth: true,\r\n itemStyle: { normal: { color: 'blue' } },\r\n },\r\n {\r\n name: 'Total Number of Campaigns',\r\n data: [],\r\n type: 'line',\r\n smooth: true,\r\n itemStyle: { normal: { color: 'green' } },\r\n },\r\n {\r\n name: 'Cost Distribution',\r\n data: [],\r\n type: 'line',\r\n smooth: true,\r\n itemStyle: { normal: { color: '#E666DA' } },\r\n },\r\n ],\r\n};\r\n","import { environment } from '../../../environments/environment';\r\n\r\nconst packageServiceServicePath = '/package';\r\nconst countryServiceServicePath = '/appvalue/COUNTRY';\r\nconst editServicePath = \"/package/{id}\";\r\nconst rateCardServicePath = '/ratecard';\r\n\r\nexport const PackageServicePathConst = `${environment.api}${packageServiceServicePath}`;\r\nexport const CountryServicePathConst = `${environment.api}${countryServiceServicePath}`;\r\nexport const RateCardServicePathConst = `${environment.api}${rateCardServicePath}`;\r\nexport const EditServicePathConst = `${environment.api}${editServicePath}`;\r\n","import { WhatsAppAccountDto } from '../../campaign-management/models';\r\n\r\nexport let isLoadingOption: {\r\n\tWA: boolean;\r\n\tSMS: boolean;\r\n\tLINE: boolean;\r\n\tEMAIL: boolean;\r\n\tVOICE: boolean;\r\n} = {\r\n\tWA: false,\r\n\tSMS: false,\r\n\tLINE: false,\r\n\tEMAIL: false,\r\n\tVOICE: false,\r\n};\r\n\r\nexport let isHaveNextOption: {\r\n\tWA: boolean;\r\n\tSMS: boolean;\r\n\tLINE: boolean;\r\n\tEMAIL: boolean;\r\n\tVOICE: boolean;\r\n} = {\r\n\tWA: true,\r\n\tSMS: true,\r\n\tLINE: true,\r\n\tEMAIL: true,\r\n\tVOICE: true,\r\n};\r\n\r\nexport let pageNoOption: {\r\n\tWA: number;\r\n\tSMS: number;\r\n\tLINE: number;\r\n\tEMAIL: number;\r\n\tVOICE: number;\r\n} = {\r\n\tWA: 1,\r\n\tSMS: 1,\r\n\tLINE: 1,\r\n\tEMAIL: 1,\r\n\tVOICE: 1,\r\n};\r\n\r\nexport let optionList: {\r\n\tWA: WhatsAppAccountDto[];\r\n\tSMS: WhatsAppAccountDto[];\r\n\tLINE: WhatsAppAccountDto[];\r\n\tEMAIL: WhatsAppAccountDto[];\r\n\tVOICE: WhatsAppAccountDto[];\r\n} = {\r\n\tWA: [],\r\n\tSMS: [],\r\n\tLINE: [],\r\n\tEMAIL: [],\r\n\tVOICE: [],\r\n};\r\n","export const RateCardTableLabelConst = [\r\n\t'select',\r\n\t'Country ID',\r\n\t'Country Name',\r\n\t'Currency Code',\r\n\t'Excess Fee Conversation',\r\n\t'Excess Fee Notification',\r\n\t'Setup Fee',\r\n\t'Action',\r\n];\r\n\r\n\r\nexport const RateCardTableColumnConst = [\r\n\t'select',\r\n\t'countryCode',\r\n\t'countryName',\r\n\t'currencyCode',\r\n\t'ovrUsgConversationCost',\r\n\t'ovrUsgNotificationCost',\r\n\t'setupFee',\r\n\t'action',\r\n];\r\n","export const GeneralInformationMessageValidationConst = {\r\n campaignName: [\r\n { type: 'required', message: 'General Information is required' },\r\n { type: 'maxlength', message: 'Maximum character 100' },\r\n ],\r\n medium: [{ type: 'required', message: 'Channel is required' }],\r\n};\r\n\r\nexport const GeneralInformationWAMessageValidationConst = {\r\n channel: [{ type: 'required', message: 'Message Type is required' }],\r\n from: [{ type: 'required', message: 'From is required' }],\r\n text: [\r\n { type: 'required', message: 'Text is required' },\r\n { type: 'maxlength', message: 'Maximum character 1024' },\r\n ],\r\n media: [{ type: 'required', message: 'Media Type is required' }],\r\n fileName: [{ type: 'required', message: 'File is required' }],\r\n template: [{ type: 'required', message: 'Template is required' }],\r\n category: [{ type: 'required', message: 'Category is required' }],\r\n catalogue: [{ type: 'required', message: 'Catalog is required' }],\r\n product: [{ type: 'required', message: 'Product is required' }],\r\n body: [{ type: 'maxlength', message: 'Maximum character 100' }],\r\n paramName: [{ type: 'required', message: 'Variable Name is required' }],\r\n};\r\n\r\nexport const GeneralInformationEmailMessageValidationConst = {\r\n channel: [{ type: 'required', message: 'Message Type is required' }],\r\n from: [{ type: 'required', message: 'From is required' }],\r\n text: [{ type: 'required', message: 'Text is required' }],\r\n template: [{ type: 'required', message: 'Template is required' }],\r\n};\r\n\r\nexport const GeneralInformationSMSMessageValidationConst = {\r\n channel: [{ type: 'required', message: 'Message Type is required' }],\r\n from: [{ type: 'required', message: 'From is required' }],\r\n text: [{ type: 'required', message: 'Text is required' }],\r\n template: [{ type: 'required', message: 'Template is required' }],\r\n};\r\n\r\nexport const GeneralInformationLineMessageValidationConst = {\r\n channel: [{ type: 'required', message: 'Message Type is required' }],\r\n from: [{ type: 'required', message: 'From is required' }],\r\n text: [{ type: 'required', message: 'Text is required' }],\r\n template: [{ type: 'required', message: 'Template is required' }],\r\n};\r\n\r\nexport const FailoverMechanismValidationConst = {\r\n interval: [\r\n { type: 'required', message: 'Interval Time is required' },\r\n {\r\n type: 'intervalTime',\r\n message: 'Must be greater than 0 and without decimal',\r\n },\r\n ],\r\n type: [{ type: 'required', message: 'Main Rules is required' }],\r\n accountId: [{ type: 'required', message: 'Account is required' }],\r\n subject: [{ type: 'required', message: 'Subject is required' }],\r\n message: [{ type: 'required', message: 'Message is required' }],\r\n templateName: [{ type: 'required', message: 'Template is required' }],\r\n};\r\n\r\nexport const SchedulerMessageValidationConst = {\r\n startDate: [{ type: 'required', message: 'Select Date is required' }],\r\n startTime: [{ type: 'required', message: 'Select Time is required' }],\r\n};\r\n","export enum PastTimeEnum {\r\n\tToday = 'today',\r\n\tYesterday = 'yesterday',\r\n\tCurrentWeek = 'currentWeek',\r\n\tLastWeek = 'last week',\r\n\tCurrentMonth = 'currentMonth',\r\n\tLastMonth = 'last month',\r\n}\r\n\r\nexport enum StatusCampaignEnum {\r\n\tDraft = 'DRAFT',\r\n\tWaitingApproval = 'APPROVAL',\r\n\tRejected = 'REJECTED',\r\n\tScheduled = 'SCHEDULED',\r\n\tStopped = 'STOPPED',\r\n\tDeleted = 'DELETED',\r\n\tCompleted = 'COMPLETED',\r\n\tFailed = 'FAILED',\r\n\tPaused = 'PAUSED',\r\n\tProcessing = 'PROCESS',\r\n}\r\n\r\nexport enum ProductCategoryEnum {\r\n\tSingleProduct = 'product',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\n\r\n@Injectable()\r\nexport class CustomPaginator extends MatPaginatorIntl {\r\n\titemsPerPageLabel = 'Listing per Page';\r\n\r\n\tgetRangeLabel = function (page, pageSize, length) {\r\n\t\tif (length === 0 || pageSize === 0) {\r\n\t\t\treturn 'Show 0';\r\n\t\t}\r\n\r\n\t\tlength = Math.max(length, 0);\r\n\r\n\t\tconst startIndex = page * pageSize;\r\n\t\tconst endIndex =\r\n\t\t\tstartIndex < length\r\n\t\t\t\t? Math.min(startIndex + pageSize, length)\r\n\t\t\t\t: startIndex + pageSize;\r\n\t\tconst sumStartIndex = startIndex + 1;\r\n\r\n\t\treturn 'Show ' + sumStartIndex + ' - ' + endIndex;\r\n\t};\r\n}\r\n","export const downloadBlobFile = (blob: any, name: string = 'file.csv'): any => {\r\n\tconst blobUrl = URL.createObjectURL(blob);\r\n\r\n\tconst link = document.createElement('a');\r\n\r\n\tlink.href = blobUrl;\r\n\tlink.download = name;\r\n\r\n\tdocument.body.appendChild(link);\r\n\r\n\tlink.dispatchEvent(\r\n\t\tnew MouseEvent('click', {\r\n\t\t\tbubbles: true,\r\n\t\t\tcancelable: true,\r\n\t\t\tview: window,\r\n\t\t})\r\n\t);\r\n\r\n\tdocument.body.removeChild(link);\r\n};\r\n","import { BaseOptionModel } from '../models';\r\n\r\nexport const generateEnumOption = (enumObject: Object): BaseOptionModel[] => {\r\n\tif (!enumObject) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\treturn Object.keys(enumObject).reduce((result, each) => {\r\n\t\tif (isNaN(Number(each))) {\r\n\t\t\tconst inputOption = new BaseOptionModel();\r\n\t\t\tconst label = each\r\n\t\t\t\t.replace(/([A-Z])/g, ' $1')\r\n\t\t\t\t.replace(/([0-9])/g, ' $1');\r\n\r\n\t\t\tinputOption.label = label;\r\n\r\n\t\t\tif (isNaN(Number(enumObject[each]))) {\r\n\t\t\t\tinputOption.value = enumObject[each];\r\n\t\t\t} else {\r\n\t\t\t\tinputOption.value = Number(enumObject[each]);\r\n\t\t\t}\r\n\r\n\t\t\tresult.push(inputOption);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}, []);\r\n};\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nexport const generateHttpParams =\r\n\t(params: Object): HttpParams => {\r\n\t\tlet httpParams = new HttpParams();\r\n\r\n\t\tif (params) {\r\n\t\t\tObject.keys(params).forEach((key) => {\r\n\t\t\t\tif (params[key] !== null\r\n\t\t\t\t\t&& params[key] !== undefined\r\n\t\t\t\t\t&& params[key] !== '') {\r\n\r\n\t\t\t\t\thttpParams = httpParams.set(key, params[key]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn httpParams;\r\n\t};\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInjectable,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { PlatformOptionConst } from '../../../../../core/const';\r\nimport { StatusCampaignEnum } from '../../../../../core/enums';\r\nimport { BaseOptionModel } from '../../../../../core/models';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { generateEnumOption } from '../../../../../core/util';\r\nimport { TemplateWAModel } from '../../../../models';\r\nimport { ClientDto } from '../../models';\r\n\r\n@Component({\r\n\tselector: 'lib-filter-in-list-of-campaign',\r\n\ttemplateUrl: './filter-in-list-of-campaign.component.html',\r\n\tstyleUrls: ['./filter-in-list-of-campaign.component.scss'],\r\n})\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class FilterInListOfCampaignComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic onChangeFilter: EventEmitter<string>;\r\n\r\n\t@Output()\r\n\tpublic closeDropdown: EventEmitter<void>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic channelOption: any[] = PlatformOptionConst;\r\n\tpublic filteredChannelOption: any[] = [];\r\n\tpublic businessNameOption: ClientDto[] = [];\r\n\tpublic filteredBusinessNameOption: ClientDto[] = [];\r\n\tpublic statusOption: BaseOptionModel[] = [];\r\n\tpublic filteredStatusOption: BaseOptionModel[] = [];\r\n\tpublic templateOption: TemplateWAModel[] = [];\r\n\tpublic isHaveNextTemplateOption: boolean = true;\r\n\tpublic isLoadingTemplateOption: boolean = false;\r\n\r\n\tprivate pageNoTemplateOption: number = 1;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input()\r\n\tpublic filterValue: any;\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.closeDropdown = new EventEmitter();\r\n\t\tthis.onChangeFilter = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.statusOption = generateEnumOption(StatusCampaignEnum);\r\n\t\tthis.filteredStatusOption = [...this.statusOption];\r\n\t\tthis.filteredChannelOption = [...this.channelOption];\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.getBusinessNameOptionService();\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tbusinessName: new FormControl(this.filterValue?.businessName ?? ''),\r\n\t\t\tmedium: new FormControl(this.filterValue?.medium ?? ''),\r\n\t\t\ttemplateName: new FormControl(this.filterValue?.templateName ?? ''),\r\n\t\t\tstatus: new FormControl(this.filterValue?.status ?? ''),\r\n\t\t\tstartDate: new FormControl(this.filterValue?.startDate ?? ''),\r\n\t\t\tendDate: new FormControl(this.filterValue?.endDate ?? ''),\r\n\t\t});\r\n\r\n\t\tif (this.filterValue?.templateName)\r\n\t\t\tthis.templateOption = [\r\n\t\t\t\t...this.templateOption,\r\n\t\t\t\tthis.filterValue?.templateName,\r\n\t\t\t];\r\n\t}\r\n\r\n\tpublic getBusinessNameOptionService(): void {\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(\r\n\t\t\t\t[],\r\n\t\t\t\t'/admin/client/all-with-child?pageNo=1&rowPerPage=1000',\r\n\t\t\t\t'GET'\r\n\t\t\t)\r\n\t\t\t.subscribe((res: AppResponse<ClientDto[]>) => {\r\n\t\t\t\tthis.businessNameOption = res.data;\r\n\t\t\t\tthis.filteredBusinessNameOption = [...this.businessNameOption];\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', this.form.get('medium').value, 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption = isInfinite\r\n\t\t\t\t\t? [...this.templateOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextTemplateOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch() {\r\n\t\tif (!this.isHaveNextTemplateOption) return;\r\n\r\n\t\tthis.pageNoTemplateOption += 1;\r\n\t\tthis.getTemplateOptionService('', true);\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic templateSearch(searchValue: string): void {\r\n\t\tthis.pageNoTemplateOption = 1;\r\n\t\tthis.getTemplateOptionService(searchValue);\r\n\t}\r\n\r\n\tpublic businessNameSearch(searchValue: string): void {\r\n\t\tconst value = searchValue.toLowerCase();\r\n\t\tthis.filteredBusinessNameOption = this.businessNameOption.filter(option =>\r\n\t\t\toption.name.toLowerCase().includes(value)\r\n\t\t);\r\n\t}\r\n\r\n\tpublic channelSearch(searchValue: string): void {\r\n\t\tconst value = searchValue.toLowerCase();\r\n\t\tthis.filteredChannelOption = this.channelOption.filter(option =>\r\n\t\t\toption.label.toLowerCase().includes(value)\r\n\t\t);\r\n\t}\r\n\r\n\tpublic statusSearch(searchValue: string): void {\r\n\t\tconst value = searchValue.toLowerCase();\r\n\t\tthis.filteredStatusOption = this.statusOption.filter(option =>\r\n\t\t\toption.label.toLowerCase().includes(value)\r\n\t\t);\r\n\t}\r\n\r\n\tpublic clearDate(): void {\r\n\t\tthis.form.get('startDate').setValue(null);\r\n\t\tthis.form.get('endDate').setValue(null);\r\n\t}\r\n\r\n\tpublic validateBackDate(): void {\r\n\t\tif (new Date(this.form.get('startDate').value).getTime() > new Date(this.form.get('endDate').value).getTime())\r\n\t\t\tthis.form.get('endDate').setValue('');\r\n\t}\r\n\r\n\tpublic onReset(): void {\r\n\t\tthis.form.reset();\r\n\t\tthis.onChangeFilter.emit(this.form.getRawValue());\r\n\t}\r\n\r\n\tpublic onCancel(): void {\r\n\t\tthis.closeDropdown.emit();\r\n\t}\r\n\r\n\tpublic onApply(): void {\r\n\t\tthis.onChangeFilter.emit(this.form.getRawValue());\r\n\t\tthis.closeDropdown.emit();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedServicesService {\r\n\r\n private subject = new Subject<any>();\r\n\r\n sendClickEvent(){\r\n this.subject.next();\r\n }\r\n\r\n getEvent(): Observable<any>{\r\n return this.subject.asObservable();\r\n }\r\n\r\n constructor() { }\r\n}\r\n","export class ConfirmationModel {\r\n public title: string;\r\n public content: string;\r\n public btnSubmit: string;\r\n public btnSubmitRed: string;\r\n public btnCancel: string;\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SharedServicesService } from '../../../global/confirmation/shared/shared-services.service';\r\nimport { ConfirmationModel } from '../shared/model';\r\n\r\n@Component({\r\n\tselector: 'app-confirmation',\r\n\ttemplateUrl: './confirmation.component.html',\r\n\tstyleUrls: ['./confirmation.component.scss'],\r\n})\r\nexport class ConfirmationComponent {\r\n\tconstructor(\r\n\t\t@Inject(MAT_DIALOG_DATA)\r\n\t\tpublic data: ConfirmationModel,\r\n\t\tprivate sharedService: SharedServicesService\r\n\t) {}\r\n\r\n\tdeleteRowOn() {\r\n\t\tthis.sharedService.sendClickEvent();\r\n\t}\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\n\r\n@Component({\r\n selector: 'lib-pending-approval-dialog-view',\r\n templateUrl: './pending-approval-dialog-view.component.html',\r\n styleUrls: ['./pending-approval-dialog-view.component.scss'],\r\n})\r\nexport class PendingApprovalDialogViewComponent implements OnInit, OnDestroy {\r\n public isLoading: boolean = false;\r\n public isSubmit: boolean = false;\r\n public isShowButton: boolean = false;\r\n\r\n private subscribers: Subscription[] = [];\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef<PendingApprovalDialogViewComponent>,\r\n private apiAdapterService: ApiAdapterServiceService,\r\n private toastr: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getCampaignDetailService();\r\n\r\n this.isShowButton = this.getCampaignStorage?.generalInformation?.isShowButton ?? false;\r\n }\r\n\r\n get getCampaignStorage(): any {\r\n return localStorage.getItem('telin.campaign')\r\n ? JSON.parse(localStorage.getItem('telin.campaign'))\r\n : {};\r\n }\r\n\r\n private convertUTCDateToLocalDate(date: Date) {\r\n const newDate = new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000);\r\n return newDate;\r\n }\r\n\r\n private getCampaignDetailService(): void {\r\n if (!this.getCampaignStorage?.generalInformation?.id) return;\r\n\r\n this.isLoading = true;\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n [],\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}`,\r\n 'GET'\r\n )\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n if (!resp) return;\r\n\r\n const generalInformation = {\r\n campaignName: resp.data?.name,\r\n medium: resp.data?.platform,\r\n channel: ['image', 'video', 'document'].includes(resp.data?.type)\r\n ? 'MEDIA'\r\n : resp.data?.isDirectSend\r\n ? 'utility'\r\n : resp.data?.type?.toUpperCase(),\r\n media: resp.data?.type?.toUpperCase(),\r\n isPrevTemplate: resp?.data?.isPrevTemplate,\r\n templateName: resp?.data?.templateName,\r\n ttl: resp?.data?.ttlSeconds,\r\n from: {\r\n id: resp.data?.accountId,\r\n name: resp.data?.accountName,\r\n platform: resp.data?.platform,\r\n clientId: resp.data?.clientId,\r\n clientName: resp.data?.clientName,\r\n accountNo: resp.data?.accountNo,\r\n wabaId: resp.data?.wabaId ?? '',\r\n },\r\n text: resp.data?.details?.text,\r\n targetURL:\r\n resp.data?.details?.image?.url ??\r\n resp.data?.details?.document?.url ??\r\n resp.data?.details?.video?.url ??\r\n resp.data?.details?.template?.headerURL,\r\n paramHeader: resp.data?.details?.template?.header,\r\n paramBody: resp.data?.details?.template?.data,\r\n paramButton: resp.data?.details?.template?.button,\r\n paramCarousel:\r\n resp.data?.details?.template?.carousel?.map((card: any) => {\r\n return {\r\n headerURL: card.headerURL || '',\r\n bodyParams: (card.body || []).map((val: string) => ({\r\n paramName: val,\r\n })),\r\n buttonParams: (card.button || []).map((btnGroup: any[]) => {\r\n return (btnGroup || []).map((val: string) => ({\r\n paramName: val,\r\n payload: val,\r\n }));\r\n }),\r\n };\r\n }) || [],\r\n otpValue: [...(resp.data?.details?.template?.data ?? [])]?.pop(),\r\n variables: (resp.data?.details?.template?.data || []).map(\r\n (val: string) => ({\r\n paramName: val,\r\n })\r\n ),\r\n isUseExistingTemplate: !!resp.data?.templateName,\r\n template: {\r\n ID: resp.data?.details?.template?.id,\r\n name: resp.data?.details?.template?.name,\r\n lang: resp.data?.details?.template?.lang,\r\n platform: resp.data?.platform,\r\n headerURL: resp.data?.details?.template?.headerURL,\r\n header: {\r\n examples: resp.data?.details?.template?.header,\r\n },\r\n body: {\r\n examples: resp.data?.details?.template?.data,\r\n },\r\n buttons: resp.data?.details?.template?.button,\r\n ClientId: resp.data?.clientId,\r\n ClientName: resp.data?.clientName,\r\n },\r\n isDownloadVariableXLS: resp.data?.fileId !== '',\r\n isUpload: resp.data?.fileId !== '',\r\n fileId: resp.data?.fileId,\r\n };\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n generalInformation: {\r\n id: resp.data?.id,\r\n form: generalInformation,\r\n },\r\n failover: resp.data?.failover,\r\n targetAudience: resp.data?.targets,\r\n targetAudienceFile: {\r\n name: resp.data?.fileName,\r\n targetURL: resp.data?.targetURL,\r\n },\r\n scheduler: {\r\n schedulerType:\r\n resp.data?.scheduleType === 'MULTI'\r\n ? 'ONE_TIME'\r\n : resp.data?.scheduleType,\r\n startDate: resp.data?.startTime?.split(' ')[0],\r\n startTime: resp.data?.startTime?.split(' ')[1],\r\n isRepeat: resp.data?.scheduleType === 'MULTI',\r\n delivery: resp.data?.repeat,\r\n },\r\n },\r\n })\r\n );\r\n\r\n this.isLoading = false;\r\n },\r\n () => {\r\n this.isLoading = false;\r\n }\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public rejectCampaignService(): void {\r\n this.isSubmit = true;\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n [],\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/reject`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n this.isSubmit = false;\r\n\r\n if (!resp || !resp?.data) return this.toastr.error('Error Rejecting Campaign!');\r\n\r\n this.toastr.success('Campaign Rejected Successfully!');\r\n this.onClose();\r\n },\r\n () => {\r\n this.toastr.error('Error Rejecting Campaign!');\r\n this.isSubmit = false;\r\n }\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public approveCampaignService(): void {\r\n this.isSubmit = true;\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n [],\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/approve`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n this.isSubmit = false;\r\n\r\n if (!resp || !resp?.data) return this.toastr.error('Error Approving Campaign!');\r\n\r\n this.toastr.success('Campaign Approved Successfully!');\r\n this.onClose();\r\n },\r\n () => {\r\n this.toastr.error('Error Approving Campaign!');\r\n this.isSubmit = false;\r\n }\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public onClose(): void {\r\n localStorage.removeItem('telin.campaign');\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscribers.forEach((each) => each.unsubscribe());\r\n }\r\n}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n\tViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { MainArea } from '../../../../../core/enums';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { ConfirmationComponent } from '../../../../../global/confirmation/confirmation';\r\nimport { ConfirmationModel } from '../../../../../global/confirmation/shared/model';\r\nimport { PendingApprovalDialogViewComponent } from '../../dialog/pending-approval-dialog-view';\r\nimport { CampaignsListModel, TableModel } from '../../models';\r\nimport { CampaignResponseDtoApi } from '../../models/campaign-response-dto.model';\r\n\r\n@Component({\r\n\tselector: 'lib-viewing-list-of-campaign-table',\r\n\ttemplateUrl: './viewing-list-of-campaign-table.component.html',\r\n\tstyleUrls: ['./viewing-list-of-campaign-table.component.scss'],\r\n})\r\nexport class ViewingListOfCampaignTableComponent implements OnInit, OnDestroy {\r\n\t@Output() currentView = new EventEmitter<MainArea>();\r\n\r\n\t@Output() updateTable = new EventEmitter<void>();\r\n\r\n\tprivate currentViews = MainArea;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input() public table: TableModel;\r\n\r\n\t@ViewChild(MatSort, { static: false }) public matSort: MatSort;\r\n\r\n\tconstructor(\r\n\t\tprivate dialog: MatDialog,\r\n\t\tprivate apiAdapterService: ApiAdapterServiceService,\r\n\t\tprivate toastr: ToastrService\r\n\t) {}\r\n\r\n\tngOnInit(): void {}\r\n\r\n\tpublic sort(): void {\r\n\t\tthis.table.dataSource.sort = this.matSort;\r\n\t}\r\n\r\n\tpublic actionRow(row: CampaignsListModel, action: string): void {\r\n\t\tswitch (action) {\r\n\t\t\tcase 'pause':\r\n\t\t\t\tthis.campaignConfirmationDialog(row.id, {\r\n\t\t\t\t\ttitle: 'Pause Campaign',\r\n\t\t\t\t\tcontent: 'Are you sure you want to Pause this Campaign?',\r\n\t\t\t\t\turl: `/campaign/${row.id}/pause`,\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tmessage: 'Selected campaign is successfully paused',\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'stop':\r\n\t\t\t\tthis.campaignConfirmationDialog(row.id, {\r\n\t\t\t\t\ttitle: 'Stop Campaign',\r\n\t\t\t\t\tcontent: 'Are you sure you want to Stop this Campaign?',\r\n\t\t\t\t\turl: `/campaign/${row.id}/stop`,\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tmessage: 'Selected campaign is successfully stop',\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'delete':\r\n\t\t\t\tif (row.status !== 'COMPLETED') {\r\n\t\t\t\t\tthis.campaignConfirmationDialog(row.id, {\r\n\t\t\t\t\t\ttitle: 'Delete Campaign',\r\n\t\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\t'Are you sure you want to Delete this Campaign?',\r\n\t\t\t\t\t\turl: `/campaign/${row.id}/delete`,\r\n\t\t\t\t\t\tmethod: 'DELETE',\r\n\t\t\t\t\t\tmessage: 'Selected campaign is successfully deleted',\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'live':\r\n\t\t\t\tthis.campaignConfirmationDialog(row.id, {\r\n\t\t\t\t\ttitle: 'Resume Campaign',\r\n\t\t\t\t\tcontent: 'Are you sure you want to Resume this Campaign?',\r\n\t\t\t\t\turl: `/campaign/${row.id}/resume`,\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tmessage: 'Selected campaign is successfully resume',\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate campaignConfirmationDialog(\r\n\t\tid: string,\r\n\t\tdata: {\r\n\t\t\ttitle: string;\r\n\t\t\tcontent: string;\r\n\t\t\turl: string;\r\n\t\t\tmethod: string;\r\n\t\t\tmessage: string;\r\n\t\t}\r\n\t): void {\r\n\t\tconst confirmation = new ConfirmationModel();\r\n\t\tconfirmation.title = data.title;\r\n\t\tconfirmation.content = data.content;\r\n\t\tconfirmation.btnSubmit = 'Yes';\r\n\t\tconfirmation.btnCancel = 'No';\r\n\r\n\t\tconst subs = this.dialog\r\n\t\t\t.open(ConfirmationComponent, {\r\n\t\t\t\tautoFocus: false,\r\n\t\t\t\tbackdropClass: 'overlay-backdrop-dialog',\r\n\t\t\t\tdata: confirmation,\r\n\t\t\t})\r\n\t\t\t.afterClosed()\r\n\t\t\t.subscribe(resp => {\r\n\t\t\t\tif (!resp) return;\r\n\r\n\t\t\t\tthis.campaignService(data);\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate campaignService(data: {\r\n\t\turl: string;\r\n\t\tmethod: string;\r\n\t\tmessage: string;\r\n\t}): void {\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest([], data.url, data.method)\r\n\t\t\t.subscribe(() => {\r\n\t\t\t\tthis.toastr.error(data.message);\r\n\t\t\t\tthis.updateTable.emit();\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\teditCampaign(row: CampaignsListModel): void {\r\n\t\tlocalStorage.removeItem('telin.campaign');\r\n\t\twindow.history.replaceState({}, '', `/secure/campaign/${row.id}`);\r\n\t\tthis.currentView.emit(this.currentViews.NewCampaign);\r\n\t}\r\n\r\n\tpublic openViewDialog(\r\n\t\trow: CampaignResponseDtoApi,\r\n\t\tisShowButton: boolean = false\r\n\t): void {\r\n\t\tlocalStorage.setItem(\r\n\t\t\t'telin.campaign',\r\n\t\t\tJSON.stringify({\r\n\t\t\t\tgeneralInformation: {\r\n\t\t\t\t\tid: row?.id,\r\n\t\t\t\t\tisShowButton: isShowButton,\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tconst subs = this.dialog\r\n\t\t\t.open(PendingApprovalDialogViewComponent, {\r\n\t\t\t\tautoFocus: false,\r\n\t\t\t\theight: 'calc(100% - 30px)',\r\n\t\t\t\twidth: 'calc(100% - 30px)',\r\n\t\t\t\tmaxWidth: '100%',\r\n\t\t\t\tmaxHeight: '100%',\r\n\t\t\t\tbackdropClass: 'overlay-backdrop-dialog',\r\n\t\t\t})\r\n\t\t\t.afterClosed()\r\n\t\t\t.subscribe(() => {\r\n\t\t\t\tthis.updateTable.emit();\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate convertUTCDateToLocalDate(date: Date) {\r\n\t\tconst newDate = new Date(\r\n\t\t\tdate.getTime() - date.getTimezoneOffset() * 60 * 1000\r\n\t\t);\r\n\t\treturn newDate;\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport {\r\n\tNgbDropdownModule,\r\n\tNgbPaginationModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { MatSelectInfiniteScrollDirective } from '../../../core/directives';\r\nimport { SearchModule } from '../../../global/search/search.module';\r\nimport { CampaignIndexComponent } from './campaign-index.component';\r\nimport { FilterInListOfCampaignComponent } from './component/filter-in-list-of-campaign';\r\nimport { ViewingListOfCampaignTableComponent } from './component/viewing-list-of-campaign-table';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tViewingListOfCampaignTableComponent,\r\n\t\tFilterInListOfCampaignComponent,\r\n\t\tCampaignIndexComponent,\r\n\t\tMatSelectInfiniteScrollDirective,\r\n\t],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatTableModule,\r\n\t\tMatSortModule,\r\n\t\tMatPaginatorModule,\r\n\t\tMatDialogModule,\r\n\t\tMatTabsModule,\r\n\t\tMatCardModule,\r\n\t\tMatCheckboxModule,\r\n\t\tMatSelectModule,\r\n\t\tMatRadioModule,\r\n\t\tMatButtonModule,\r\n\t\tMatIconModule,\r\n\t\tMatChipsModule,\r\n\t\tNgbPaginationModule,\r\n\t\tNgbDropdownModule,\r\n\t\tMatChipsModule,\r\n\t\tMatGridListModule,\r\n\t\tMatNativeDateModule,\r\n\t\tSearchModule,\r\n\t\tMatToolbarModule,\r\n\t\tMatTooltipModule,\r\n\t],\r\n\texports: [CampaignIndexComponent, MatSelectInfiniteScrollDirective],\r\n})\r\nexport class CampaignIndexModule {}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { EChartsOption } from 'echarts';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tCampaignPerformanceChartConfig,\r\n\tConversationInsightsChartConfig,\r\n\tPlatformOptionConst,\r\n\tWidgetLiveCampaignConst,\r\n} from '../../../core/const';\r\nimport { PastTimeEnum } from '../../../core/enums';\r\nimport { MainArea } from '../../../core/enums/main-area.enum';\r\nimport { Parameter } from '../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../core/models/util/api-dto/response-models/app-response';\r\nimport { AppResponseAdl } from '../../../core/models/util/api-dto/response-models/app-response-adl';\r\nimport { ApiAdapterServiceService } from '../../../core/services';\r\nimport { CampaignCountFinalResponseDtoExternal } from '../../models/campaign-count-final-response-dto.model';\r\nimport { ConversationChartResponseDto } from '../campaign-index/models/conversation-chart-response-dto.model';\r\nimport { PerformanceChartResponseDto } from '../campaign-index/models/performance-chart-response-dto.model';\r\n\r\n@Component({\r\n\tselector: 'lib-dashboard',\r\n\ttemplateUrl: './dashboard.component.html',\r\n\tstyleUrls: ['./dashboard.component.scss'],\r\n})\r\nexport class DashboardComponent implements OnInit, OnDestroy {\r\n\tpublic currentViews = MainArea;\r\n\tpublic pastTime = PastTimeEnum;\r\n\r\n\tpublic channelOption: any[] = PlatformOptionConst;\r\n\tpublic performanceCategories: string[] = [];\r\n\tpublic totalCmpn: number[] = [];\r\n\tpublic deliveryRt: number[] = [];\r\n\tpublic costDesc: number[] = [];\r\n\tpublic convsData: any[][] = [];\r\n\r\n\tpublic widgetLiveCampaign = WidgetLiveCampaignConst;\r\n\tpublic conversationChartData: EChartsOption;\r\n\tpublic performanceChartData: EChartsOption;\r\n\tpublic selectedPlatform: any = '';\r\n\tpublic filterEvent: any = 'currentWeek';\r\n\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Output() currentView = new EventEmitter<MainArea>();\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {}\r\n\r\n\tngOnInit(): void {}\r\n\r\n\tpublic changeCurrentView(area: MainArea) {\r\n\t\tthis.currentView.emit(area);\r\n\t}\r\n\r\n\tpublic filterChart(event: string) {\r\n\t\tif (!this.selectedPlatform) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst timeUnit =\r\n\t\t\tevent == PastTimeEnum.Today\r\n\t\t\t\t? 'daily'\r\n\t\t\t\t: event == PastTimeEnum.CurrentWeek\r\n\t\t\t\t? 'weekly'\r\n\t\t\t\t: event == PastTimeEnum.CurrentMonth\r\n\t\t\t\t? 'monthly'\r\n\t\t\t\t: '';\r\n\r\n\t\t/* const parameterList: Array<Parameter> = [\r\n\t\t\t{\r\n\t\t\t\tname: 'timeUnit',\r\n\t\t\t\tvalue: timeUnit,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'clientId',\r\n\t\t\t\tvalue: localStorage.getItem('telin.clientId'),\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'platform',\r\n\t\t\t\tvalue: this.selectedPlatform,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t]; */\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest([], '/campaign/count', 'GET')\r\n\t\t\t.subscribe(\r\n\t\t\t\t(res: AppResponse<CampaignCountFinalResponseDtoExternal>) => {\r\n\t\t\t\t\tconst date =\r\n\t\t\t\t\t\t(res?.data?.totalCampaignPercent ?? 0) +\r\n\t\t\t\t\t\t'% Since ' +\r\n\t\t\t\t\t\tthis.getStatictsWidgetString(event);\r\n\r\n\t\t\t\t\tthis.widgetLiveCampaign[0].arrow =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? '../../../../assets/svg/icon-up-arrow.svg'\r\n\t\t\t\t\t\t\t: '../../../../assets/svg/icon-down-arrow.svg';\r\n\t\t\t\t\tthis.widgetLiveCampaign[0].value =\r\n\t\t\t\t\t\tres?.data?.totalCampaign ?? 0;\r\n\t\t\t\t\tthis.widgetLiveCampaign[0].date = date;\r\n\t\t\t\t\tthis.widgetLiveCampaign[0].dateclass =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? 'greenpercent'\r\n\t\t\t\t\t\t\t: 'redpercent';\r\n\r\n\t\t\t\t\tthis.widgetLiveCampaign[1].arrow =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? '../../../../assets/svg/icon-up-arrow.svg'\r\n\t\t\t\t\t\t\t: '../../../../assets/svg/icon-down-arrow.svg';\r\n\t\t\t\t\tthis.widgetLiveCampaign[1].value =\r\n\t\t\t\t\t\tres?.data?.totalLive ?? 0;\r\n\t\t\t\t\tthis.widgetLiveCampaign[1].date = date;\r\n\t\t\t\t\tthis.widgetLiveCampaign[1].dateclass =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? 'greenpercent'\r\n\t\t\t\t\t\t\t: 'redpercent';\r\n\r\n\t\t\t\t\tthis.widgetLiveCampaign[2].arrow =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? '../../../../assets/svg/icon-up-arrow.svg'\r\n\t\t\t\t\t\t\t: '../../../../assets/svg/icon-down-arrow.svg';\r\n\t\t\t\t\tthis.widgetLiveCampaign[2].value =\r\n\t\t\t\t\t\tres?.data?.totalPending ?? 0;\r\n\t\t\t\t\tthis.widgetLiveCampaign[2].date = date;\r\n\t\t\t\t\tthis.widgetLiveCampaign[2].dateclass =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? 'greenpercent'\r\n\t\t\t\t\t\t\t: 'redpercent';\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\r\n\t\tthis.getPerformanceDetails(timeUnit);\r\n\t\tthis.getConversationDetails(timeUnit);\r\n\t}\r\n\r\n\tprivate getPerformanceDetails(timeUnit: string) {\r\n\t\tif (!this.selectedPlatform) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.setPerformanceChartData();\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\t{\r\n\t\t\t\tname: 'timeUnit',\r\n\t\t\t\tvalue: timeUnit,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'clientId',\r\n\t\t\t\tvalue: localStorage.getItem('telin.clientId'),\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'platform',\r\n\t\t\t\tvalue:\r\n\t\t\t\t\tthis.selectedPlatform === 'WHATSAPP'\r\n\t\t\t\t\t\t? 'WA'\r\n\t\t\t\t\t\t: this.selectedPlatform,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(\r\n\t\t\t\tparameterList,\r\n\t\t\t\t'/report/campaign/performance',\r\n\t\t\t\t'GET'\r\n\t\t\t)\r\n\t\t\t.subscribe((res: AppResponseAdl<PerformanceChartResponseDto>) => {\r\n\t\t\t\tthis.performanceCategories = [];\r\n\t\t\t\tthis.totalCmpn = [];\r\n\t\t\t\tthis.deliveryRt = [];\r\n\t\t\t\tthis.costDesc = [];\r\n\r\n\t\t\t\tif (res?.data && Object.entries(res.data).length !== 0) {\r\n\t\t\t\t\tfor (let item of res.data.categories) {\r\n\t\t\t\t\t\tthis.performanceCategories.push(item);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (let series of res.data.series) {\r\n\t\t\t\t\t\tif (series.name === 'Total Campaign') {\r\n\t\t\t\t\t\t\tthis.totalCmpn = series.data?.map(value => value);\r\n\t\t\t\t\t\t} else if (series.name === 'Delivery Rate') {\r\n\t\t\t\t\t\t\tthis.deliveryRt = series.data?.map(value => value);\r\n\t\t\t\t\t\t} else if (series.name === 'Cost Distribution') {\r\n\t\t\t\t\t\t\tthis.costDesc = series.data?.map(value => value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.setPerformanceChartData();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate setPerformanceChartData() {\r\n\t\tthis.performanceChartData = ConversationInsightsChartConfig;\r\n\t\tthis.performanceChartData.xAxis.data = this.performanceCategories;\r\n\t\tthis.performanceChartData.series[0].data = this.deliveryRt;\r\n\t\tthis.performanceChartData.series[1].data = this.totalCmpn;\r\n\t\tthis.performanceChartData.series[2].data = this.costDesc;\r\n\t}\r\n\r\n\tprivate getConversationDetails(timeUnit: string) {\r\n\t\tif (!this.selectedPlatform) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.setConversationChartData();\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\t{\r\n\t\t\t\tname: 'timeUnit',\r\n\t\t\t\tvalue: timeUnit,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'clientId',\r\n\t\t\t\tvalue: localStorage.getItem('telin.clientId'),\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'platform',\r\n\t\t\t\tvalue:\r\n\t\t\t\t\tthis.selectedPlatform === 'WHATSAPP'\r\n\t\t\t\t\t\t? 'WA'\r\n\t\t\t\t\t\t: this.selectedPlatform,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(\r\n\t\t\t\tparameterList,\r\n\t\t\t\t'/report/campaign/conversation',\r\n\t\t\t\t'GET'\r\n\t\t\t)\r\n\t\t\t.subscribe((res: AppResponseAdl<ConversationChartResponseDto>) => {\r\n\t\t\t\tthis.convsData = [];\r\n\r\n\t\t\t\tif (res?.data) {\r\n\t\t\t\t\tfor (let i = 0; i < res.data.categories?.length; i++) {\r\n\t\t\t\t\t\tthis.convsData[i] = new Array();\r\n\t\t\t\t\t\tthis.convsData[i].push(res.data.categories[i]);\r\n\r\n\t\t\t\t\t\tfor (let j = 1; j <= res.data.series?.length; j++) {\r\n\t\t\t\t\t\t\tthis.convsData[i].push(\r\n\t\t\t\t\t\t\t\tres.data.series[j - 1].data[i]\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.setConversationChartData();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate setConversationChartData() {\r\n\t\tthis.conversationChartData = CampaignPerformanceChartConfig;\r\n\t\tthis.convsData.forEach(data => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.conversationChartData.dataset.source.push(data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getStatictsWidgetString(event: string): string {\r\n\t\treturn event == PastTimeEnum.Today\r\n\t\t\t? PastTimeEnum.Yesterday\r\n\t\t\t: event == PastTimeEnum.CurrentWeek\r\n\t\t\t? PastTimeEnum.LastWeek\r\n\t\t\t: event == PastTimeEnum.CurrentMonth\r\n\t\t\t? PastTimeEnum.LastMonth\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { PickerModule } from '@ctrl/ngx-emoji-mart';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { DashboardComponent } from './dashboard.component';\r\n\r\n@NgModule({\r\n\tdeclarations: [DashboardComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tMatAutocompleteModule,\r\n\t\tFormsModule,\r\n\t\tMatGridListModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatSelectModule,\r\n\t\tMatRadioModule,\r\n\t\tMatListModule,\r\n\t\tMatButtonModule,\r\n\t\tMatIconModule,\r\n\t\tPickerModule,\r\n\t\tAngularEditorModule,\r\n\t\tMatButtonToggleModule,\r\n\t\tMatDialogModule,\r\n\t\tMatTabsModule,\r\n\t\tMatBadgeModule,\r\n\t\tNgbDropdownModule,\r\n\t\tNgxEchartsModule,\r\n\t],\r\n\texports: [DashboardComponent],\r\n})\r\nexport class DashboardModule {}\r\n","export class FailoverReqModel {\r\n\tpublic active: boolean;\r\n\tpublic type: string;\r\n\tpublic interval: number;\r\n\tpublic accounts: FailoverAccountReqModel[];\r\n\r\n\tconstructor() {}\r\n\r\n\tpublic clone(source: any): FailoverReqModel {\r\n\t\tthis.active = source.active;\r\n\t\tthis.interval = source.interval ?? 0;\r\n\t\tthis.type = source.type ?? '';\r\n\r\n\t\tif (source.accounts) {\r\n\t\t\tthis.accounts = source.accounts.reduce((result, each) => {\r\n\t\t\t\tresult.push(new FailoverAccountReqModel().clone(each));\r\n\t\t\t\treturn result;\r\n\t\t\t}, []);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\tfailover: this,\r\n\t\t};\r\n\t}\r\n}\r\n\r\nclass FailoverAccountReqModel {\r\n\tpublic accountId: string;\r\n\tpublic accountName: string;\r\n\tpublic subject: string;\r\n\tpublic platform: string;\r\n\tpublic template: {\r\n\t\tid: string;\r\n\t\tname: string;\r\n\t\tlang: string;\r\n\t\tdata: string[];\r\n\t};\r\n\r\n\tconstructor() {}\r\n\r\n\tpublic clone(source: any): FailoverAccountReqModel {\r\n\t\tthis.accountId = source.accountId?.id ?? '';\r\n\t\tthis.accountName = source.accountName ?? '';\r\n\t\tthis.subject = source.subject ?? '';\r\n\t\tthis.platform = source.platform ?? '';\r\n\t\tthis.template = {\r\n\t\t\tid: source.template?.ID ?? '',\r\n\t\t\tname: source.template?.name ?? source.template ?? '',\r\n\t\t\tlang: source.template?.lang ?? '',\r\n\t\t\tdata: source.paramBody?.map((t: any) => t.name) ?? [],\r\n\t\t};\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn this;\r\n\t}\r\n}\r\n","export class GeneralInformationWAReqModel {\r\n public name: string;\r\n public accountId: string;\r\n public type: string;\r\n public text: string;\r\n public subject: string;\r\n public image: {\r\n url: string;\r\n };\r\n public video: {\r\n url: string;\r\n };\r\n public document: {\r\n url: string;\r\n fileName: string;\r\n };\r\n public template: {\r\n id?: string;\r\n name: string;\r\n lang: string;\r\n headerUrl?: string;\r\n header: any;\r\n data: any[];\r\n button: any;\r\n buttonParams: any[];\r\n carousel?: any[];\r\n };\r\n public list: {\r\n button: string;\r\n sections: {\r\n title: string;\r\n items: {\r\n id: string;\r\n title: string;\r\n description: string;\r\n }[];\r\n }[];\r\n };\r\n public buttons: {\r\n type: string;\r\n id: string;\r\n title: string;\r\n }[];\r\n\r\n public category: string;\r\n public isNeedSave: boolean;\r\n public ttlSeconds: number;\r\n\r\n public clone(source: any): GeneralInformationWAReqModel {\r\n if (\r\n source?.media === 'IMAGE' ||\r\n source?.media === 'VIDEO' ||\r\n source?.media === 'DOCUMENT'\r\n ) {\r\n source.channel = source.media;\r\n }\r\n\r\n if (source.campaignName) {\r\n this.name = source.campaignName;\r\n }\r\n if (source.medium === 'EMAIL') {\r\n this.subject = source.campaignName;\r\n }\r\n if (source.from?.id) {\r\n this.accountId = source.from.id;\r\n }\r\n if (source.channel) {\r\n this.type = source.channel?.toLowerCase();\r\n }\r\n if (source.text) {\r\n this.text = source.text;\r\n }\r\n if (this.type === 'image' && source.fileName) {\r\n this.image = {\r\n url: source.targetURL,\r\n };\r\n }\r\n if (this.type === 'video' && source.fileName) {\r\n this.video = {\r\n url: source.targetURL,\r\n };\r\n }\r\n if (this.type === 'document' && source.fileName) {\r\n this.document = {\r\n url: source.targetURL,\r\n fileName: source.fileName,\r\n };\r\n }\r\n\r\n if (source.template) {\r\n let qrIndex = 0;\r\n const finalButtons =\r\n source.paramButton?.reduce((result: any[], each: any, idx: number) => {\r\n const btnDef = source.template?.buttons?.[idx];\r\n\r\n if (btnDef?.type === 'QUICK_REPLY') {\r\n const qrParam =\r\n source.buttonParams && source.buttonParams[qrIndex]\r\n ? source.buttonParams[qrIndex]\r\n : null;\r\n qrIndex++;\r\n result.push(\r\n qrParam ? [qrParam.payload ? qrParam.payload : qrParam.label] : []\r\n );\r\n } else {\r\n result.push(each.name?.map((t: any) => t.name) ?? []);\r\n }\r\n\r\n return result;\r\n }, []) ?? [];\r\n\r\n // CAROUSEL\r\n let carouselPayload = undefined;\r\n if (source.paramCarousel && source.paramCarousel.length > 0) {\r\n carouselPayload = source.paramCarousel.map((card: any) => {\r\n const mappedBody = (card.bodyParams || []).map((b: any) => b.paramName || '');\r\n const mappedButtons = (card.buttonParams || []).map((btnGroup: any[]) => {\r\n return (btnGroup || []).map((btn: any) => {\r\n if (btn.payload !== undefined && btn.payload !== null) {\r\n return btn.payload;\r\n }\r\n return btn.paramName || '';\r\n });\r\n });\r\n\r\n return {\r\n headerURL: card.headerURL || '',\r\n body: mappedBody,\r\n button: mappedButtons,\r\n };\r\n });\r\n }\r\n\r\n this.template = {\r\n id: source.template.ID,\r\n name: source.template.name,\r\n lang: source.template.lang,\r\n headerUrl: source.targetURL,\r\n header: source.paramHeader?.map((t: any) => t.name) ?? [],\r\n data:\r\n source.isUseExistingTemplate && source.variables?.length\r\n ? source.variables.map((v: any) => v.paramName)\r\n : (source.paramBody?.map((t: any) => t.name) ?? []),\r\n\r\n button: finalButtons,\r\n buttonParams: source.buttonParams\r\n ? source.buttonParams.map((btn: any) => {\r\n return {\r\n label: btn.label,\r\n payload: btn.payload ? btn.payload : btn.label,\r\n };\r\n })\r\n : [],\r\n ...(carouselPayload && carouselPayload.length > 0\r\n ? { carousel: carouselPayload }\r\n : {}),\r\n };\r\n\r\n if (source.template.category === 'AUTHENTICATION')\r\n this.template = {\r\n name: source.template.name,\r\n lang: source.template.lang,\r\n header: null,\r\n data: [source.otpValue],\r\n button: [[source.otpValue]],\r\n buttonParams: [],\r\n };\r\n\r\n if (source.template.ID) this.template.id = source.template.ID;\r\n }\r\n\r\n if (this.type === 'utility') {\r\n this.type = 'template';\r\n this.category = 'utility';\r\n\r\n const mappedVariables = source?.variables?.length\r\n ? source.variables.map((v: any) => v.paramName)\r\n : [];\r\n\r\n if (source?.isUseExistingTemplate) {\r\n this.template = {\r\n ...source.template,\r\n data: mappedVariables.length > 0 ? mappedVariables : source.template.data || [],\r\n };\r\n } else {\r\n this.template = {\r\n name: '',\r\n lang: 'id',\r\n header: null,\r\n button: null,\r\n data: mappedVariables,\r\n buttonParams: [],\r\n };\r\n }\r\n\r\n this.isNeedSave = source.isNeedSave;\r\n this.ttlSeconds = source.ttl;\r\n\r\n if (source?.isUseExistingTemplate) {\r\n this.text = source?.text || source?.template?.body?.text;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public convert(): any {\r\n return this;\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\n\r\nexport class SchedulerReqModel {\r\n\tpublic type: string;\r\n\tpublic startTime: string;\r\n\tpublic repeat: boolean;\r\n\tpublic tz: string;\r\n\tprivate datePipe: DatePipe;\r\n\r\n\tconstructor() {\r\n\t\tthis.datePipe = new DatePipe('en-US');\r\n\t}\r\n\r\n\tpublic clone(source: any): SchedulerReqModel {\r\n\t\tif (source.schedulerType) {\r\n\t\t\tthis.type = source.delivery ? 'MULTI' : source.schedulerType;\r\n\t\t}\r\n\t\tif (source.startDate) {\r\n\t\t\tthis.startTime = `${this.datePipe.transform(\r\n\t\t\t\tsource.startDate,\r\n\t\t\t\t'yyyy-MM-dd'\r\n\t\t\t)} ${source.startTime}`;\r\n\t\t}\r\n\t\tif (source.delivery) {\r\n\t\t\tthis.repeat = source.delivery.toUpperCase();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\ttype: this.type,\r\n\t\t\tstartTime: this.startTime,\r\n\t\t\trepeat: this.repeat,\r\n\t\t\ttz: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n\t\t};\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormArray, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { SegmentedMessage } from 'sms-segments-calculator';\r\nimport { MainArea } from '../../../core/enums';\r\nimport { Parameter } from '../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../core/services';\r\nimport { ConfirmationComponent } from '../../../global/confirmation/confirmation';\r\nimport { ConfirmationModel } from '../../../global/confirmation/shared/model';\r\nimport { FailoverReqModel, GeneralInformationWAReqModel, SchedulerReqModel } from '../../models';\r\n\r\n@Component({\r\n selector: 'lib-new-campaign',\r\n templateUrl: './new-campaign.component.html',\r\n styleUrls: ['./new-campaign.component.scss'],\r\n})\r\nexport class NewCampaignComponent implements OnInit, OnDestroy {\r\n @Output() currentView = new EventEmitter<MainArea>();\r\n\r\n public campaignID: string;\r\n public currentViews = MainArea;\r\n public positionWizard: number = 1;\r\n public dataWizard: string[];\r\n public isLoading: boolean = false;\r\n public isSubmit: boolean = false;\r\n public isGeneralInformationValid: boolean = false;\r\n public isFailoverMechanismValid: boolean = false;\r\n public isNumberBaseInformationValid: boolean = false;\r\n public isSchedulerInformationValid: boolean = false;\r\n public isLine: boolean = false;\r\n public generalInformationData: any;\r\n public failoverMechanismData: any;\r\n public targetAudienceData: string[];\r\n public targetAudienceCount: number;\r\n public targetAudienceFile: any;\r\n public schedulerData: any;\r\n\r\n private isUploadTargetAudience: boolean = false;\r\n private subscribers: Subscription[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private apiAdapterService: ApiAdapterServiceService,\r\n private toastr: ToastrService,\r\n private httpClient: HttpClient\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.campaignID = window.location.pathname?.split('/')?.pop();\r\n this.initWizard();\r\n this.getCampaignDetailService();\r\n }\r\n\r\n private initWizard(): void {\r\n if (!this.isLine) {\r\n this.dataWizard = [\r\n 'General Information',\r\n 'Failover Mechanism',\r\n 'Target Audience',\r\n 'Scheduler',\r\n 'Summary',\r\n ];\r\n return;\r\n }\r\n\r\n this.dataWizard = ['General Information', 'Target Audience', 'Scheduler', 'Summary'];\r\n }\r\n\r\n private getCampaignDetailService(): void {\r\n if (this.campaignID?.length < 10) return;\r\n\r\n this.isLoading = true;\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest([], `/campaign/${this.campaignID}`, 'GET')\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n if (!resp) return;\r\n\r\n const generalInformation = {\r\n campaignName: resp.data?.name,\r\n medium: resp.data?.platform,\r\n channel: ['image', 'video', 'document'].includes(resp.data?.type)\r\n ? 'MEDIA'\r\n : resp.data?.isDirectSend\r\n ? 'utility'\r\n : resp.data?.type?.toUpperCase(),\r\n media: resp.data?.type?.toUpperCase(),\r\n isPrevTemplate: resp?.data?.isPrevTemplate,\r\n templateName: resp?.data?.templateName,\r\n ttl: resp?.data?.ttlSeconds,\r\n from: {\r\n id: resp.data?.accountId,\r\n name: resp.data?.accountName,\r\n platform: resp.data?.platform,\r\n clientId: resp.data?.clientId,\r\n clientName: resp.data?.clientName,\r\n accountNo: resp.data?.accountNo,\r\n wabaId: resp.data?.wabaId ?? '',\r\n },\r\n text: resp.data?.details?.text,\r\n targetURL:\r\n resp.data?.details?.image?.url ??\r\n resp.data?.details?.document?.url ??\r\n resp.data?.details?.video?.url ??\r\n resp.data?.details?.template?.headerURL,\r\n paramHeader: resp.data?.details?.template?.header,\r\n paramBody: resp.data?.details?.template?.data,\r\n paramButton: resp.data?.details?.template?.button,\r\n paramCarousel:\r\n resp.data?.details?.template?.carousel?.map((card: any) => {\r\n return {\r\n headerURL: card.headerURL || '',\r\n bodyParams: (card.body || []).map((val: string) => ({\r\n paramName: val,\r\n })),\r\n buttonParams: (card.button || []).map((btnGroup: any[]) => {\r\n return (btnGroup || []).map((val: string) => ({\r\n paramName: val,\r\n payload: val,\r\n }));\r\n }),\r\n };\r\n }) || [],\r\n otpValue: [...(resp.data?.details?.template?.data ?? [])]?.pop(),\r\n variables: (resp.data?.details?.template?.data || []).map(\r\n (val: string) => ({\r\n paramName: val,\r\n })\r\n ),\r\n isUseExistingTemplate: !!resp.data?.templateName,\r\n template: {\r\n ID: resp.data?.details?.template?.id,\r\n name: resp.data?.details?.template?.name,\r\n lang: resp.data?.details?.template?.lang,\r\n platform: resp.data?.platform,\r\n headerURL: resp.data?.details?.template?.headerURL,\r\n header: {\r\n examples: resp.data?.details?.template?.header,\r\n },\r\n body: {\r\n examples: resp.data?.details?.template?.data,\r\n },\r\n buttons: resp.data?.details?.template?.button,\r\n ClientId: resp.data?.clientId,\r\n ClientName: resp.data?.clientName,\r\n },\r\n isUpload: resp.data?.fileId !== '',\r\n fileId: resp.data?.fileId,\r\n };\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n generalInformation: {\r\n id: resp.data?.id,\r\n form: generalInformation,\r\n },\r\n failover: resp.data?.failover,\r\n targetAudience: resp.data?.targets,\r\n targetAudienceFile: {\r\n name: resp.data?.fileName,\r\n targetURL: resp.data?.targetURL,\r\n },\r\n scheduler: {\r\n schedulerType:\r\n resp.data?.scheduleType === 'MULTI'\r\n ? 'ONE_TIME'\r\n : resp.data?.scheduleType,\r\n startDate: resp.data?.startTime?.split(' ')[0],\r\n startTime: resp.data?.startTime?.split(' ')[1],\r\n isRepeat: resp.data?.scheduleType === 'MULTI',\r\n delivery: resp.data?.repeat,\r\n },\r\n },\r\n })\r\n );\r\n\r\n this.isLine = resp.data?.platform === 'LINE';\r\n this.isLoading = false;\r\n\r\n this.initWizard();\r\n },\r\n () => {\r\n this.isLoading = false;\r\n }\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public generalInformation(form: { parent: FormGroup; child: FormGroup }): void {\r\n this.isGeneralInformationValid = form.parent.valid && form.child && form.child?.valid;\r\n this.isLine = form.parent?.getRawValue()?.medium === 'LINE';\r\n\r\n this.initWizard();\r\n\r\n if (form.parent && form.child)\r\n this.generalInformationData = {\r\n ...form.parent.getRawValue(),\r\n ...form.child.getRawValue(),\r\n };\r\n }\r\n\r\n public failoverMechanism(form: FormGroup): void {\r\n this.isFailoverMechanismValid = form.valid;\r\n this.failoverMechanismData = form.getRawValue();\r\n }\r\n\r\n public targetAudience(target: {\r\n targetAudience: string[];\r\n numberCount: number;\r\n isUpload: boolean;\r\n file: any;\r\n }): void {\r\n this.targetAudienceFile = target.file;\r\n this.targetAudienceData = target.targetAudience;\r\n this.targetAudienceCount = target.numberCount;\r\n this.isUploadTargetAudience = target.isUpload;\r\n this.isNumberBaseInformationValid =\r\n (target.isUpload && target.file?.name) ||\r\n (!target.isUpload && target.targetAudience.length > 0) ||\r\n this.getCampaignStorage?.generalInformation?.form?.fileId;\r\n }\r\n\r\n public scheduler(form: FormGroup): void {\r\n this.schedulerData = form.getRawValue();\r\n this.isSchedulerInformationValid = form.valid;\r\n }\r\n\r\n public onClickSaveAndNextButton(): void {\r\n this.isSubmit = true;\r\n\r\n switch (this.positionWizard) {\r\n case 1:\r\n this.saveGeneralInformationService();\r\n break;\r\n case 2:\r\n !this.isLine ? this.saveFailoverMechanismService() : this.saveNumberBasesService();\r\n break;\r\n case 3:\r\n !this.isLine ? this.saveNumberBasesService() : this.saveSchedulerService();\r\n break;\r\n case 4:\r\n if (!this.isLine) this.saveSchedulerService();\r\n break;\r\n default:\r\n this.isSubmit = false;\r\n break;\r\n }\r\n }\r\n\r\n get getCampaignStorage(): any {\r\n return localStorage.getItem('telin.campaign')\r\n ? JSON.parse(localStorage.getItem('telin.campaign'))\r\n : {};\r\n }\r\n\r\n get getBody(): string {\r\n const body =\r\n this.generalInformationData?.text ||\r\n this.generalInformationData?.template?.body?.text ||\r\n this.generalInformationData?.body?.text;\r\n\r\n return (\r\n body\r\n ?.split(/\\\\n|\\n/)\r\n .join('<br />')\r\n .split(/\\\\t|\\t/)\r\n .join(' ') ?? ''\r\n );\r\n }\r\n\r\n public onCheckTwilioCounterValid = (): boolean => {\r\n const valuesGeneral = this.generalInformationData;\r\n\r\n if (valuesGeneral?.medium !== 'SMS') {\r\n return true;\r\n }\r\n\r\n if (valuesGeneral?.channel === 'TEXT') {\r\n const segmentedMessage = new SegmentedMessage(this.getBody);\r\n const result = {\r\n segments: segmentedMessage.segmentsCount,\r\n encoding: segmentedMessage.encodingName,\r\n characters: segmentedMessage.numberOfUnicodeScalars,\r\n };\r\n\r\n if (result.segments > 10) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n let valueResult = this.getBody;\r\n Array.from(valuesGeneral.template?.body?.examples || []).map((entry, index) => {\r\n if (valuesGeneral.paramBody.length > 0) {\r\n const placeholder = `{{${entry}}}`;\r\n const value = valuesGeneral.paramBody[index].name;\r\n valueResult = valueResult.split(placeholder).join(value);\r\n }\r\n });\r\n\r\n const segmentedMessage = new SegmentedMessage(valueResult);\r\n const result = {\r\n segments: segmentedMessage.segmentsCount,\r\n encoding: segmentedMessage.encodingName,\r\n characters: segmentedMessage.numberOfUnicodeScalars,\r\n };\r\n\r\n if (result.segments > 10) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n };\r\n\r\n private async saveGeneralInformationService(): Promise<void> {\r\n if (!this.onCheckTwilioCounterValid()) {\r\n this.toastr.error('Segment cannot more than 10');\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n const bodyReq = new GeneralInformationWAReqModel().clone({\r\n ...this.generalInformationData,\r\n });\r\n\r\n const payloadValue = bodyReq.convert();\r\n\r\n this.saveGeneralInformation(payloadValue);\r\n }\r\n\r\n private saveGeneralInformation(payloadValue: any): void {\r\n if (payloadValue.template && this.generalInformationData.template) {\r\n payloadValue.template.type =\r\n payloadValue.template.type || this.generalInformationData.template.category;\r\n }\r\n\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'data',\r\n value: payloadValue,\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n if (payloadValue.template && payloadValue.template.buttonParams) {\r\n delete payloadValue.template.buttonParams;\r\n }\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n this.generalInformationData.id\r\n ? `/campaign/${this.generalInformationData.id}`\r\n : '/campaign',\r\n this.generalInformationData.id ? 'PUT' : 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n generalInformation: {\r\n id: resp.data.id,\r\n form: this.generalInformationData,\r\n },\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private saveFailoverMechanismService(): void {\r\n const bodyReq = new FailoverReqModel().clone({\r\n ...this.failoverMechanismData,\r\n });\r\n\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'data',\r\n value: bodyReq.convert(),\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/failover`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n failover: this.failoverMechanismData,\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private saveNumberBasesService(): void {\r\n if (this.targetAudienceData.length === 0 || this.isUploadTargetAudience) {\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n targetAudience: this.targetAudienceData,\r\n targetAudienceCount: this.targetAudienceCount,\r\n targetAudienceFile: this.targetAudienceFile,\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n return;\r\n }\r\n\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'data',\r\n value: {\r\n targets: this.targetAudienceData,\r\n numberCount: this.targetAudienceCount,\r\n },\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/targetcategory`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n targetAudience: this.targetAudienceData,\r\n targetAudienceCount: this.targetAudienceCount,\r\n targetAudienceFile: this.targetAudienceFile,\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private saveSchedulerService(): void {\r\n const bodyReq = new SchedulerReqModel().clone({\r\n ...this.schedulerData,\r\n });\r\n\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'data',\r\n value: bodyReq.convert(),\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/schedule`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n scheduler: this.schedulerData,\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public onPrevious(): void {\r\n this.positionWizard -= 1;\r\n }\r\n\r\n public changeCurrentView(area: MainArea) {\r\n this.openConfirmationDialog(area);\r\n }\r\n\r\n private openConfirmationDialog(area: MainArea): void {\r\n const confirmation = new ConfirmationModel();\r\n\r\n confirmation.title = 'Cancel Add Broadcast';\r\n confirmation.content = `Are you sure you want to cancel<br/> Add Broadcast?`;\r\n confirmation.btnSubmitRed = 'Yes';\r\n confirmation.btnCancel = 'No';\r\n\r\n const subs = this.dialog\r\n .open(ConfirmationComponent, {\r\n autoFocus: false,\r\n backdropClass: 'overlay-backdrop-dialog',\r\n data: confirmation,\r\n })\r\n .afterClosed()\r\n .subscribe((resp) => {\r\n if (resp) {\r\n window.history.replaceState(\r\n {},\r\n `/${this.getCampaignStorage?.generalInformation?.id}`,\r\n '/secure/campaign'\r\n );\r\n\r\n this.currentView.emit(area);\r\n }\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public onSubmitForApproval(): void {\r\n const parameterList: Array<Parameter> = [];\r\n this.isSubmit = true;\r\n\r\n if (this.getCampaignStorage?.targetAudienceFile?.name)\r\n parameterList.push({\r\n name: 'isFile',\r\n value: true,\r\n in: 'query',\r\n type: 'string',\r\n });\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/submit`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n window.history.replaceState(\r\n {},\r\n `/${this.getCampaignStorage?.generalInformation?.id}`,\r\n '/secure/campaign'\r\n );\r\n\r\n this.toastr.success('Campaign submitted for approval!');\r\n this.isSubmit = false;\r\n this.currentView.emit(this.currentViews.CampaignIndex);\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscribers.forEach((each) => each.unsubscribe());\r\n }\r\n}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tGeneralInformationEmailMessageValidationConst,\r\n\tMsgTypeEmailOptionConst,\r\n} from '../../../../../core/const';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../../models';\r\n\r\n@Component({\r\n\tselector: 'lib-general-information-email',\r\n\ttemplateUrl: './general-information-email.component.html',\r\n\tstyleUrls: ['./general-information-email.component.scss'],\r\n})\r\nexport class GeneralInformationEmailComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic updateGeneralInformationForm: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic validationMessages: any;\r\n\tpublic msgTypeWAOption: any[] = [];\r\n\tpublic accountOption: WhatsAppAccountDto[] = [];\r\n\tpublic isHaveNextAccountOption: boolean = true;\r\n\tpublic isLoadingAccountOption: boolean = false;\r\n\tpublic templateOption: TemplateWAModel[] = [];\r\n\tpublic isHaveNextTemplateOption: boolean = true;\r\n\tpublic isLoadingTemplateOption: boolean = false;\r\n\tpublic isHaveTemplateParam: boolean = false;\r\n\r\n\tprivate pageNoAccountOption: number = 1;\r\n\tprivate pageNoTemplateOption: number = 1;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\t@Input()\r\n\tset isTouchedForm(status: boolean) {\r\n\t\tif (!this.updateGeneralInformationForm) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.updateGeneralInformationForm = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.validationMessages = GeneralInformationEmailMessageValidationConst;\r\n\t\tthis.msgTypeWAOption = MsgTypeEmailOptionConst;\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initDisable();\r\n\t\tthis.initEdit();\r\n\t\tthis.initValidation();\r\n\t\tthis.getAccountOptionService(\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium ===\r\n\t\t\t\t'EMAIL'\r\n\t\t\t\t? this.getCampaignStorage?.generalInformation?.form?.from?.name\r\n\t\t\t\t: ''\r\n\t\t);\r\n\t}\r\n\r\n\tget getCampaignStorage(): any {\r\n\t\treturn localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tchannel: new FormControl(null, Validators.required),\r\n\t\t\tfrom: new FormControl(null, Validators.required),\r\n\t\t\ttext: new FormControl(null, Validators.required),\r\n\t\t\ttemplate: new FormControl(null, Validators.required),\r\n\t\t\tparamBody: new FormArray([], Validators.required),\r\n\t\t\tisUpload: new FormControl(false),\r\n\t\t\tfileId: new FormControl(''),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(): void {\r\n\t\tif (\r\n\t\t\tObject.entries(this.getCampaignStorage).length === 0 ||\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium !==\r\n\t\t\t\t'EMAIL'\r\n\t\t)\r\n\t\t\treturn;\r\n\r\n\t\tthis.form\r\n\t\t\t.get('channel')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.channel\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('from')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.from);\r\n\t\tthis.form\r\n\t\t\t.get('text')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.text);\r\n\t\tthis.form\r\n\t\t\t.get('template')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.template\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('isUpload')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.isUpload\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('fileId')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.fileId);\r\n\r\n\t\tthis.isHaveTemplateParam = this.form.get('isUpload').value;\r\n\t\tthis.getTemplateOptionService(\r\n\t\t\tnull,\r\n\t\t\tthis.form.get('template').value?.name\r\n\t\t);\r\n\t}\r\n\r\n\tget getIsTemplate(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.form.get('channel').value &&\r\n\t\t\tthis.form.get('channel').value?.toLowerCase() === 'template'\r\n\t\t);\r\n\t}\r\n\r\n\tprivate initValidation(): void {\r\n\t\tfor (const key in this.form.controls) {\r\n\t\t\tthis.form.controls[key].clearValidators();\r\n\t\t\tthis.form.controls[key].updateValueAndValidity();\r\n\t\t}\r\n\r\n\t\tthis.form.get('channel').setValidators(Validators.required);\r\n\t\tthis.form.get('from').setValidators(Validators.required);\r\n\r\n\t\tif (this.getIsTemplate) {\r\n\t\t\tthis.form.get('template').setValidators(Validators.required);\r\n\t\t\tthis.form.get('template').updateValueAndValidity();\r\n\t\t\tthis.form.get('paramBody').setValidators(Validators.required);\r\n\t\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t\t} else {\r\n\t\t\tthis.form.get('text').setValidators(Validators.required);\r\n\t\t\tthis.form.get('text').updateValueAndValidity();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic formReset(_isMediaType: boolean = false): void {\r\n\t\tthis.form.get('text').reset();\r\n\t\tthis.form.get('template').reset();\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\r\n\t\tthis.initValidation();\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getAccountOptionService(\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingAccountOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoAccountOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'EMAIL', 'string'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/admin/account', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n\t\t\t\tif (!resp.data) return;\r\n\r\n\t\t\t\tthis.accountOption = isInfinite\r\n\t\t\t\t\t? [...this.accountOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextAccountOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingAccountOption = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tevent: string = null,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'EMAIL', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'clientId',\r\n\t\t\t\tthis.form.get('from').value?.clientId,\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'wabaId',\r\n\t\t\t\tthis.form.get('from').value?.wabaId ?? '',\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t];\r\n\r\n\t\tif (this.isReadOnlyMode)\r\n\t\t\tparameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption = isInfinite\r\n\t\t\t\t\t? [...this.templateOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextTemplateOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption = false;\r\n\r\n\t\t\t\tconst template = this.templateOption?.find(\r\n\t\t\t\t\tt => t.ID === this.form.get('template').value?.ID\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\tthis.form.get('template').setValue(template);\r\n\r\n\t\t\t\t\tif (this.form.get('isUpload').value)\r\n\t\t\t\t\t\treturn this.updateDownloadCSV(\r\n\t\t\t\t\t\t\tthis.form.get('isUpload').value\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParameter(value: string = ''): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tname: new FormControl(\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue: value,\r\n\t\t\t\t\tdisabled:\r\n\t\t\t\t\t\tthis.isReadOnlyMode ||\r\n\t\t\t\t\t\t['UnsubscribeAccount'].includes(value),\r\n\t\t\t\t},\r\n\t\t\t\tValidators.required\r\n\t\t\t),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tget getParamBody(): FormGroup[] {\r\n\t\treturn (this.form.get('paramBody') as FormArray)\r\n\t\t\t.controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addParamBody(value: string = ''): void {\r\n\t\tconst form = this.initParameter(value);\r\n\t\t(this.form.get('paramBody') as FormArray).push(form);\r\n\t}\r\n\r\n\tpublic getNextAccountBatch() {\r\n\t\tif (!this.isHaveNextAccountOption) return;\r\n\r\n\t\tthis.pageNoAccountOption += 1;\r\n\t\tthis.getAccountOptionService('', true);\r\n\t}\r\n\r\n\tpublic accountSelectedDisplay(\r\n\t\tattribute1: WhatsAppAccountDto,\r\n\t\tattribute2: WhatsAppAccountDto\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.id == attribute2.id\r\n\t\t\t? `${attribute1.name} (${attribute1.accountNo})`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch() {\r\n\t\tif (!this.isHaveNextTemplateOption) return;\r\n\r\n\t\tthis.pageNoTemplateOption += 1;\r\n\t\tthis.getTemplateOptionService(null, '', true);\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic updateTemplate(template: TemplateWAModel): void {\r\n\t\tif (!template) return;\r\n\r\n\t\tthis.isHaveTemplateParam = template.body.examples?.length > 0;\r\n\r\n\t\ttemplate.body.examples?.length > 0\r\n\t\t\t? this.form.get('paramBody').setValidators(Validators.required)\r\n\t\t\t: this.form.get('paramBody').clearValidators();\r\n\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\r\n\t\tconst formStorage = this.getCampaignStorage?.generalInformation?.form;\r\n\r\n\t\ttemplate.body.examples?.forEach((each, index) => {\r\n\t\t\tlet paramValue =\r\n\t\t\t\tformStorage?.paramBody?.[index]?.name ??\r\n\t\t\t\tformStorage?.paramBody?.[index] ??\r\n\t\t\t\t'';\r\n\r\n\t\t\tif (['UnsubscribeAccount'].includes(each)) paramValue = each;\r\n\r\n\t\t\tthis.addParamBody(paramValue);\r\n\t\t});\r\n\t}\r\n\r\n\tpublic updateSearch(searchValue: string): void {\r\n\t\tthis.pageNoTemplateOption = 1;\r\n\t\tthis.getTemplateOptionService(searchValue);\r\n\t}\r\n\r\n\tpublic updateSearchAccount(searchValue: string): void {\r\n\t\tthis.pageNoAccountOption = 1;\r\n\t\tthis.getAccountOptionService(searchValue);\r\n\t}\r\n\r\n\tpublic updateDownloadCSV(isChecked: boolean): void {\r\n\t\tthis.form.get('isUpload').setValue(isChecked);\r\n\r\n\t\tif (isChecked) {\r\n\t\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\t\t\tthis.form.get('paramBody').clearValidators();\r\n\t\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tGeneralInformationLineMessageValidationConst,\r\n\tMsgTypeLineOptionConst,\r\n} from '../../../../../core/const';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../../models';\r\n@Component({\r\n\tselector: 'lib-general-information-line',\r\n\ttemplateUrl: './general-information-line.component.html',\r\n\tstyleUrls: ['./general-information-line.component.scss'],\r\n})\r\nexport class GeneralInformationLineComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic updateGeneralInformationForm: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic msgTypeWAOption: any[] = [];\r\n\tpublic validationMessages: any;\r\n\tpublic accountOption: WhatsAppAccountDto[] = [];\r\n\tpublic isHaveNextAccountOption: boolean = true;\r\n\tpublic isLoadingAccountOption: boolean = false;\r\n\tpublic templateOption: TemplateWAModel[] = [];\r\n\tpublic isHaveNextTemplateOption: boolean = true;\r\n\tpublic isLoadingTemplateOption: boolean = false;\r\n\r\n\tprivate pageNoAccountOption: number = 1;\r\n\tprivate pageNoTemplateOption: number = 1;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\t@Input()\r\n\tset isTouchedForm(status: boolean) {\r\n\t\tif (!this.updateGeneralInformationForm) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.updateGeneralInformationForm = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.msgTypeWAOption = MsgTypeLineOptionConst;\r\n\t\tthis.validationMessages = GeneralInformationLineMessageValidationConst;\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initDisable();\r\n\t\tthis.initEdit();\r\n\t\tthis.initValidation();\r\n\t\tthis.getAccountOptionService(\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium === 'LINE'\r\n\t\t\t\t? this.getCampaignStorage?.generalInformation?.form?.from?.name\r\n\t\t\t\t: ''\r\n\t\t);\r\n\t}\r\n\r\n\tget getCampaignStorage(): any {\r\n\t\treturn localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tchannel: new FormControl(null, Validators.required),\r\n\t\t\tfrom: new FormControl(null, Validators.required),\r\n\t\t\ttext: new FormControl(null),\r\n\t\t\ttemplate: new FormControl(null),\r\n\t\t\tisJSON: new FormControl(false),\r\n\t\t\tparamBody: new FormArray([], Validators.required),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(): void {\r\n\t\tif (\r\n\t\t\tObject.entries(this.getCampaignStorage).length === 0 ||\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium !== 'LINE'\r\n\t\t)\r\n\t\t\treturn;\r\n\r\n\t\tthis.form\r\n\t\t\t.get('channel')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.channel\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('from')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.from);\r\n\t\tthis.form\r\n\t\t\t.get('text')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.text);\r\n\t\tthis.form\r\n\t\t\t.get('template')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.template\r\n\t\t\t);\r\n\r\n\t\tthis.getTemplateOptionService(\r\n\t\t\tnull,\r\n\t\t\tthis.form.get('template').value?.name\r\n\t\t);\r\n\t}\r\n\r\n\tprivate initValidation(): void {\r\n\t\tfor (const key in this.form.controls) {\r\n\t\t\tthis.form.controls[key].clearValidators();\r\n\t\t\tthis.form.controls[key].updateValueAndValidity();\r\n\t\t}\r\n\r\n\t\tthis.form.get('channel').setValidators(Validators.required);\r\n\t\tthis.form.get('from').setValidators(Validators.required);\r\n\r\n\t\tif (this.isText) {\r\n\t\t\tthis.form.get('text').setValidators(Validators.required);\r\n\t\t\tthis.form.get('text').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('template').setValidators(Validators.required);\r\n\t\tthis.form.get('template').updateValueAndValidity();\r\n\t\tthis.form.get('paramBody').setValidators(Validators.required);\r\n\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t}\r\n\r\n\tpublic formReset(): void {\r\n\t\tthis.form.get('text').reset();\r\n\t\tthis.form.get('template').reset();\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\r\n\t\tthis.initValidation();\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getAccountOptionService(\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingAccountOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoAccountOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'LINE', 'string'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/admin/account', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n\t\t\t\tif (!resp.data) return;\r\n\r\n\t\t\t\tthis.accountOption = isInfinite\r\n\t\t\t\t\t? [...this.accountOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextAccountOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingAccountOption = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tevent: string = null,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'LINE', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'clientId',\r\n\t\t\t\tthis.form.get('from').value?.clientId,\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t];\r\n\r\n\t\tif (this.isReadOnlyMode)\r\n\t\t\tparameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption = isInfinite\r\n\t\t\t\t\t? [...this.templateOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextTemplateOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption = false;\r\n\r\n\t\t\t\tconst template = this.templateOption?.find(\r\n\t\t\t\t\tt => t.ID === this.form.get('template').value?.ID\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\tthis.form.get('template').setValue(template);\r\n\t\t\t\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParameter(value: string = ''): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tname: new FormControl(\r\n\t\t\t\t{ value: value, disabled: this.isReadOnlyMode },\r\n\t\t\t\tValidators.required\r\n\t\t\t),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tget getParamBody(): FormGroup[] {\r\n\t\treturn (this.form.get('paramBody') as FormArray)\r\n\t\t\t.controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addParamBody(value: string = ''): void {\r\n\t\tconst form = this.initParameter(value);\r\n\t\t(this.form.get('paramBody') as FormArray).push(form);\r\n\t}\r\n\r\n\tget isText(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.form.get('channel').value &&\r\n\t\t\tthis.form.get('channel').value?.toLowerCase() === 'text'\r\n\t\t);\r\n\t}\r\n\r\n\tget isTemplate(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.form.get('channel').value &&\r\n\t\t\tthis.form.get('channel').value?.toLowerCase() === 'template'\r\n\t\t);\r\n\t}\r\n\r\n\tpublic getNextAccountBatch() {\r\n\t\tif (!this.isHaveNextAccountOption) return;\r\n\r\n\t\tthis.pageNoAccountOption += 1;\r\n\t\tthis.getAccountOptionService('', true);\r\n\t}\r\n\r\n\tpublic accountSelectedDisplay(\r\n\t\tattribute1: WhatsAppAccountDto,\r\n\t\tattribute2: WhatsAppAccountDto\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.id == attribute2.id\r\n\t\t\t? `${attribute1.name} (${attribute1.accountNo})`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch() {\r\n\t\tif (!this.isHaveNextTemplateOption) return;\r\n\r\n\t\tthis.pageNoTemplateOption += 1;\r\n\t\tthis.getTemplateOptionService(null, '', true);\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic updateTemplate(template: TemplateWAModel): void {\r\n\t\tif (!template) return;\r\n\r\n\t\tlet bodyText = template.body.text;\r\n\r\n\t\tif (this.isJsonString(template.body.text)) {\r\n\t\t\tbodyText = JSON.parse(template.body.text).text;\r\n\t\t}\r\n\r\n\t\tthis.form.get('isJSON').setValue(this.isJsonString(template.body.text));\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\r\n\t\tconst findBrackets = bodyText?.match(/{{/g);\r\n\t\tconst formStorage = this.getCampaignStorage?.generalInformation?.form;\r\n\r\n\t\tfindBrackets?.length > 0\r\n\t\t\t? this.form.get('paramBody').setValidators(Validators.required)\r\n\t\t\t: this.form.get('paramBody').clearValidators();\r\n\r\n\t\tfindBrackets?.forEach((_, index) => {\r\n\t\t\tthis.addParamBody(\r\n\t\t\t\tformStorage?.paramBody?.[index]?.name ??\r\n\t\t\t\t\tformStorage?.paramBody?.[index] ??\r\n\t\t\t\t\t''\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t}\r\n\r\n\tprivate isJsonString(str: string): boolean {\r\n\t\ttry {\r\n\t\t\tJSON.parse(str);\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic updateSearch(searchValue: string): void {\r\n\t\tthis.pageNoTemplateOption = 1;\r\n\t\tthis.getTemplateOptionService(null, searchValue);\r\n\t}\r\n\r\n\tpublic updateSearchAccount(searchValue: string): void {\r\n\t\tthis.pageNoAccountOption = 1;\r\n\t\tthis.getAccountOptionService(searchValue);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tGeneralInformationSMSMessageValidationConst,\r\n\tMsgTypeWAOptionConst,\r\n} from '../../../../../core/const';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../../models';\r\n\r\n@Component({\r\n\tselector: 'lib-general-information-sms',\r\n\ttemplateUrl: './general-information-sms.component.html',\r\n\tstyleUrls: ['./general-information-sms.component.scss'],\r\n})\r\nexport class GeneralInformationSMSComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic updateGeneralInformationForm: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic msgTypeWAOption: any[] = [];\r\n\tpublic validationMessages: any;\r\n\tpublic accountOption: WhatsAppAccountDto[] = [];\r\n\tpublic isHaveNextAccountOption: boolean = true;\r\n\tpublic isLoadingAccountOption: boolean = false;\r\n\tpublic templateOption: TemplateWAModel[] = [];\r\n\tpublic isHaveNextTemplateOption: boolean = true;\r\n\tpublic isLoadingTemplateOption: boolean = false;\r\n\tpublic isHaveTemplateParam: boolean = false;\r\n\r\n\tprivate pageNoAccountOption: number = 1;\r\n\tprivate pageNoTemplateOption: number = 1;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\t@Input()\r\n\tset isTouchedForm(status: boolean) {\r\n\t\tif (!this.updateGeneralInformationForm) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.updateGeneralInformationForm = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.msgTypeWAOption = MsgTypeWAOptionConst.filter(\r\n\t\t\tt => t.code === 'TEXT' || t.code === 'TEMPLATE'\r\n\t\t);\r\n\t\tthis.validationMessages = GeneralInformationSMSMessageValidationConst;\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initDisable();\r\n\t\tthis.initEdit();\r\n\t\tthis.initValidation();\r\n\t\tthis.getAccountOptionService(\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium === 'SMS'\r\n\t\t\t\t? this.getCampaignStorage?.generalInformation?.form?.from?.name\r\n\t\t\t\t: ''\r\n\t\t);\r\n\t}\r\n\r\n\tget getCampaignStorage(): any {\r\n\t\treturn localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tchannel: new FormControl(null, Validators.required),\r\n\t\t\tfrom: new FormControl(null, Validators.required),\r\n\t\t\ttext: new FormControl(null, Validators.required),\r\n\t\t\ttemplate: new FormControl(null, Validators.required),\r\n\t\t\tparamBody: new FormArray([], Validators.required),\r\n\t\t\tisUpload: new FormControl(false),\r\n\t\t\tfileId: new FormControl(''),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(): void {\r\n\t\tif (\r\n\t\t\tObject.entries(this.getCampaignStorage).length === 0 ||\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium !== 'SMS'\r\n\t\t)\r\n\t\t\treturn;\r\n\r\n\t\tthis.form\r\n\t\t\t.get('channel')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.channel\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('from')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.from);\r\n\t\tthis.form\r\n\t\t\t.get('text')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.text);\r\n\t\tthis.form\r\n\t\t\t.get('template')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.template\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('isUpload')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.isUpload\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('fileId')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.fileId);\r\n\r\n\t\tthis.isHaveTemplateParam = this.form.get('isUpload').value;\r\n\t\tthis.getTemplateOptionService(\r\n\t\t\tnull,\r\n\t\t\tthis.form.get('template').value?.name\r\n\t\t);\r\n\t}\r\n\r\n\tget getIsTemplate(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.form.get('channel').value &&\r\n\t\t\tthis.form.get('channel').value?.toLowerCase() === 'template'\r\n\t\t);\r\n\t}\r\n\r\n\tprivate initValidation(): void {\r\n\t\tfor (const key in this.form.controls) {\r\n\t\t\tthis.form.controls[key].clearValidators();\r\n\t\t\tthis.form.controls[key].updateValueAndValidity();\r\n\t\t}\r\n\r\n\t\tthis.form.get('channel').setValidators(Validators.required);\r\n\t\tthis.form.get('from').setValidators(Validators.required);\r\n\r\n\t\tif (this.getIsTemplate) {\r\n\t\t\tthis.form.get('template').setValidators(Validators.required);\r\n\t\t\tthis.form.get('paramBody').setValidators(Validators.required);\r\n\t\t\tthis.form.get('template').updateValueAndValidity();\r\n\t\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t\t} else {\r\n\t\t\tthis.form.get('text').setValidators(Validators.required);\r\n\t\t\tthis.form.get('text').updateValueAndValidity();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic formReset(_isMediaType: boolean = false): void {\r\n\t\tthis.form.get('text').reset();\r\n\t\tthis.form.get('template').reset();\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\r\n\t\tthis.initValidation();\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getAccountOptionService(\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingAccountOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoAccountOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'SMS', 'string'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/admin/account', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n\t\t\t\tif (!resp.data) return;\r\n\r\n\t\t\t\tthis.accountOption = isInfinite\r\n\t\t\t\t\t? [...this.accountOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextAccountOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingAccountOption = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tevent: string = null,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'SMS', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'clientId',\r\n\t\t\t\tthis.form.get('from').value?.clientId,\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'wabaId',\r\n\t\t\t\tthis.form.get('from').value?.wabaId ?? '',\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t];\r\n\r\n\t\tif (this.isReadOnlyMode)\r\n\t\t\tparameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption = isInfinite\r\n\t\t\t\t\t? [...this.templateOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextTemplateOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption = false;\r\n\r\n\t\t\t\tconst template = this.templateOption?.find(\r\n\t\t\t\t\tt => t.ID === this.form.get('template').value?.ID\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\tthis.form.get('template').setValue(template);\r\n\r\n\t\t\t\t\tif (this.form.get('isUpload').value)\r\n\t\t\t\t\t\treturn this.updateDownloadCSV(\r\n\t\t\t\t\t\t\tthis.form.get('isUpload').value\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParameter(value: string = ''): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tname: new FormControl(\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue: value,\r\n\t\t\t\t\tdisabled:\r\n\t\t\t\t\t\tthis.isReadOnlyMode ||\r\n\t\t\t\t\t\t['UnsubscribeAccount'].includes(value),\r\n\t\t\t\t},\r\n\t\t\t\tValidators.required\r\n\t\t\t),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tget getParamBody(): FormGroup[] {\r\n\t\treturn (this.form.get('paramBody') as FormArray)\r\n\t\t\t.controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addParamBody(value: string = ''): void {\r\n\t\tconst form = this.initParameter(value);\r\n\t\t(this.form.get('paramBody') as FormArray).push(form);\r\n\t}\r\n\r\n\tpublic getNextAccountBatch() {\r\n\t\tif (!this.isHaveNextAccountOption) return;\r\n\r\n\t\tthis.pageNoAccountOption += 1;\r\n\t\tthis.getAccountOptionService('', true);\r\n\t}\r\n\r\n\tpublic accountSelectedDisplay(\r\n\t\tattribute1: WhatsAppAccountDto,\r\n\t\tattribute2: WhatsAppAccountDto\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.id == attribute2.id\r\n\t\t\t? `${attribute1.name} (${attribute1.accountNo})`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch() {\r\n\t\tif (!this.isHaveNextTemplateOption) return;\r\n\r\n\t\tthis.pageNoTemplateOption += 1;\r\n\t\tthis.getTemplateOptionService(null, '', true);\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic updateTemplate(template: TemplateWAModel): void {\r\n\t\tif (!template) return;\r\n\r\n\t\tthis.isHaveTemplateParam = template.body.examples?.length > 0;\r\n\r\n\t\ttemplate.body.examples?.length > 0\r\n\t\t\t? this.form.get('paramBody').setValidators(Validators.required)\r\n\t\t\t: this.form.get('paramBody').clearValidators();\r\n\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\r\n\t\tconst formStorage = this.getCampaignStorage?.generalInformation?.form;\r\n\r\n\t\ttemplate.body.examples?.forEach((each, index) => {\r\n\t\t\tlet paramValue =\r\n\t\t\t\tformStorage?.paramBody?.[index]?.name ??\r\n\t\t\t\tformStorage?.paramBody?.[index] ??\r\n\t\t\t\t'';\r\n\r\n\t\t\tif (['UnsubscribeAccount'].includes(each)) paramValue = each;\r\n\r\n\t\t\tthis.addParamBody(paramValue);\r\n\t\t});\r\n\t}\r\n\r\n\tpublic updateSearch(searchValue: string): void {\r\n\t\tthis.pageNoTemplateOption = 1;\r\n\t\tthis.getTemplateOptionService('', searchValue);\r\n\t}\r\n\r\n\tpublic updateSearchAccount(searchValue: string): void {\r\n\t\tthis.pageNoAccountOption = 1;\r\n\t\tthis.getAccountOptionService(searchValue);\r\n\t}\r\n\r\n\tpublic updateDownloadCSV(isChecked: boolean): void {\r\n\t\tthis.form.get('isUpload').setValue(isChecked);\r\n\r\n\t\tif (isChecked) {\r\n\t\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\t\t\tthis.form.get('paramBody').clearValidators();\r\n\t\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","export enum EnumData {\r\n\tGOOGLE_MAP_API_KEY = 'AIzaSyCHReBe_RpzAgLTrUC5QIDyeKttQ817wRY',\r\n\r\n\t// MEDIUM TYPES\r\n\tMEDIUM_TYPE_WHATSAPP = 'WHATSAPP',\r\n\r\n\t// MEDIA TYPE\r\n\tMEDIA_TYPE_IMAGE = 'IMAGE',\r\n\tMEDIA_TYPE_VIDEO = 'VIDEO',\r\n\tMEDIA_TYPE_DOCUMENT = 'DOCUMENT',\r\n\tMEDIA_TYPE_LOCATION = 'LOCATION',\r\n\r\n\t// SCHEDULER TYPES\r\n\tSCHEDULER_TYPE_NOW = 'NOW',\r\n\tSCHEDULER_TYPE_SINGLE = 'SINGLE',\r\n\tSCHEDULER_TYPE_MULTIPLE = 'MULTIPLE',\r\n}\r\n","import { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\r\nexport const maxValidator = (max: number, message: string) => {\r\n\treturn (AC: AbstractControl): ValidationErrors | null => {\r\n\t\tconst isError = Validators.max(max)(AC);\r\n\t\tif (isError)\r\n\t\t\treturn {\r\n\t\t\t\tmax: max,\r\n\t\t\t\tactual: AC.value,\r\n\t\t\t\tmessage: message || `Max Value equals to ${max}`,\r\n\t\t\t};\r\n\t\treturn null;\r\n\t};\r\n};\r\n","import { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\r\nexport const minValidator = (min: number, message: string) => {\r\n\treturn (AC: AbstractControl): ValidationErrors | null => {\r\n\t\tconst isError = Validators.min(min)(AC);\r\n\t\tif (isError)\r\n\t\t\treturn {\r\n\t\t\t\tmin: min,\r\n\t\t\t\tactual: AC.value,\r\n\t\t\t\tmessage: message || `Min Value equals to ${min}`,\r\n\t\t\t};\r\n\t\treturn null;\r\n\t};\r\n};\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\n\r\nexport const requiredValidator = (message: string): ValidatorFn => {\r\n\treturn (ac: AbstractControl): ValidationErrors | null => {\r\n\t\tconst isError = Validators.required(ac);\r\n\t\tif (isError) return { message };\r\n\t\treturn null;\r\n\t};\r\n};\r\n","import { Validators as AngularValidators } from '@angular/forms';\r\nimport { maxValidator } from './max.validator';\r\nimport { minValidator } from './min.validator';\r\nimport { requiredValidator } from './required.validator';\r\n\r\nexport const Validators = {\r\n compose: AngularValidators.compose,\r\n composeAync: AngularValidators.composeAsync,\r\n max: maxValidator,\r\n min: minValidator,\r\n required: requiredValidator,\r\n};\r\n","import { MapsAPILoader } from '@agm/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormArray,\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n GeneralInformationWAMessageValidationConst,\r\n MediaTypeOptionConst,\r\n MsgTypeWAOptionConst,\r\n} from '../../../../../core/const';\r\nimport { ProductCategoryEnum } from '../../../../../core/enums';\r\nimport { BaseOptionModel } from '../../../../../core/models';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { generateEnumOption } from '../../../../../core/util';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../../models';\r\nimport { EnumData } from '../../../../util/enums';\r\nimport { Validators as CustomValidators } from '../../../../validators';\r\n\r\ninterface IMaps {\r\n zoom: number;\r\n latitude: number | null;\r\n longitude: number | null;\r\n isDraggable: boolean;\r\n isDoubleClickZoom: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-general-information-wa',\r\n templateUrl: './general-information-wa.component.html',\r\n styleUrls: ['./general-information-wa.component.scss'],\r\n})\r\nexport class GeneralInformationWAComponent implements OnInit, OnDestroy {\r\n @Output()\r\n public updateGeneralInformationForm: EventEmitter<FormGroup>;\r\n\r\n public form!: FormGroup;\r\n public msgTypeWAOption: any[] = [];\r\n public mediaTypeOption: any[] = [];\r\n public categoryOption!: BaseOptionModel[];\r\n public accountOption: WhatsAppAccountDto[] = [];\r\n public isHaveNextAccountOption: boolean = true;\r\n public isLoadingAccountOption: boolean = false;\r\n public templateOption: TemplateWAModel[] = [];\r\n public isHaveNextTemplateOption: boolean = true;\r\n public isLoadingTemplateOption: boolean = false;\r\n public isHaveTemplateParam: boolean = false;\r\n public isShowParameter: boolean = false;\r\n public validationMessages: any;\r\n public extFileAccepted: string = 'image/*';\r\n public maps!: IMaps;\r\n\r\n private pageNoAccountOption: number = 1;\r\n private pageNoTemplateOption: number = 1;\r\n private subscribers: Subscription[] = [];\r\n private geoCoder: any;\r\n\r\n public templates = [\r\n { label: 'Create New', value: false },\r\n { label: 'Use existing template', value: true },\r\n ];\r\n\r\n @Input() public isReadOnlyMode!: boolean;\r\n\r\n @Input()\r\n set isTouchedForm(status: boolean) {\r\n if (!this.updateGeneralInformationForm) {\r\n return;\r\n }\r\n\r\n setTimeout(() => {\r\n this.updateGeneralInformationForm.emit(this.form);\r\n });\r\n }\r\n\r\n @ViewChild('mapSearch') mapSearchRef!: ElementRef;\r\n\r\n public isCheckUtility: boolean = false;\r\n\r\n constructor(\r\n private ngZone: NgZone,\r\n private mapsAPILoader: MapsAPILoader,\r\n private apiAdapterService: ApiAdapterServiceService,\r\n private toastr: ToastrService,\r\n private httpClient: HttpClient\r\n ) {\r\n this.updateGeneralInformationForm = new EventEmitter();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.msgTypeWAOption = MsgTypeWAOptionConst;\r\n this.mediaTypeOption = MediaTypeOptionConst;\r\n this.categoryOption = generateEnumOption(ProductCategoryEnum);\r\n this.validationMessages = GeneralInformationWAMessageValidationConst;\r\n this.maps = {\r\n zoom: 15,\r\n latitude: null,\r\n longitude: null,\r\n isDraggable: true,\r\n isDoubleClickZoom: true,\r\n };\r\n\r\n this.initForm();\r\n this.initDisable();\r\n this.initEdit();\r\n this.initValidation();\r\n this.getAccountOptionService(\r\n this.getCampaignStorage?.generalInformation?.form?.medium === 'WA'\r\n ? this.getCampaignStorage?.generalInformation?.form?.from?.name\r\n : ''\r\n );\r\n /* this.setCurrentLocation(); */\r\n }\r\n\r\n get getCampaignStorage(): any {\r\n const campaignData = localStorage.getItem('telin.campaign');\r\n return campaignData ? JSON.parse(campaignData) : {};\r\n }\r\n\r\n private initForm(): void {\r\n this.form = new FormGroup({\r\n channel: new FormControl(null, Validators.required),\r\n media: new FormControl(null),\r\n from: new FormControl(null),\r\n text: new FormControl(null),\r\n fileName: new FormControl(null),\r\n targetURL: new FormControl(null),\r\n fileType: new FormControl(null),\r\n file: new FormControl(null),\r\n latitude: new FormControl(null),\r\n longitude: new FormControl(null),\r\n template: new FormControl(null),\r\n paramHeader: new FormArray([], Validators.required),\r\n paramBody: new FormArray([], Validators.required),\r\n paramButton: new FormArray([], Validators.required),\r\n otpValue: new FormControl(''),\r\n isUpload: new FormControl(false),\r\n fileId: new FormControl(''),\r\n category: new FormControl(null),\r\n product: new FormControl(null),\r\n catalogue: new FormControl(null),\r\n body: new FormControl(null),\r\n isUseExistingTemplate: new FormControl(false),\r\n isNeedSave: new FormControl(false),\r\n ttl: new FormControl(null),\r\n isDownloadVariableXLS: new FormControl(false),\r\n variables: new FormArray([]),\r\n useXlsx: new FormControl(false),\r\n buttonParams: new FormArray([]),\r\n paramCarousel: new FormArray([]),\r\n });\r\n\r\n this.form.valueChanges.subscribe(() => {\r\n setTimeout(() => {\r\n this.updateGeneralInformationForm.emit(this.form);\r\n });\r\n });\r\n this.form.get('isUpload')?.valueChanges.subscribe((val) => {\r\n this.toggleExcelValidation(val);\r\n });\r\n }\r\n\r\n private initDisable(): void {\r\n if (!this.isReadOnlyMode) {\r\n return;\r\n }\r\n\r\n this.form.disable();\r\n }\r\n\r\n private initEdit(): void {\r\n const storageData = this.getCampaignStorage;\r\n const formValues = storageData?.generalInformation?.form;\r\n if (\r\n !storageData ||\r\n Object.entries(storageData).length === 0 ||\r\n formValues?.medium !== 'WA'\r\n ) {\r\n return;\r\n }\r\n this.getControl('channel')?.setValue(formValues?.channel);\r\n this.getControl('media')?.setValue(formValues?.media);\r\n this.getControl('from')?.setValue(formValues?.from);\r\n this.getControl('text')?.setValue(formValues?.text);\r\n this.getControl('targetURL')?.setValue(formValues?.targetURL);\r\n this.getControl('fileName')?.setValue(\r\n formValues?.fileName ?? this.getControl('targetURL')?.value\r\n );\r\n this.getControl('template')?.setValue(formValues?.template);\r\n this.getControl('isUpload')?.setValue(formValues?.isUpload);\r\n this.getControl('fileId')?.setValue(formValues?.fileId);\r\n this.getControl('otpValue')?.setValue(formValues?.otpValue);\r\n this.getControl('isUseExistingTemplate')?.setValue(\r\n formValues?.isUseExistingTemplate !== undefined\r\n ? formValues.isUseExistingTemplate\r\n : !!formValues?.template?.name\r\n );\r\n this.getControl('isNeedSave')?.setValue(!!formValues?.isNeedSave);\r\n this.getControl('isDownloadVariableXLS')?.setValue(formValues?.isDownloadVariableXLS);\r\n this.getControl('ttl')?.setValue(formValues?.ttl);\r\n\r\n const savedVariables = formValues?.variables;\r\n if (savedVariables && Array.isArray(savedVariables) && savedVariables.length > 0) {\r\n this.variables.clear();\r\n\r\n savedVariables.forEach((item: any) => {\r\n this.variables.push(\r\n new FormGroup({\r\n paramName: new FormControl({\r\n value: item.paramName || '',\r\n disabled: this.isReadOnlyMode,\r\n }),\r\n })\r\n );\r\n });\r\n }\r\n\r\n this.isHaveTemplateParam = this.getControl('isUpload')?.value;\r\n this.getTemplateOptionService(null, this.getControl('template')?.value?.name);\r\n }\r\n\r\n private initValidation(): void {\r\n if (!this.form) return;\r\n\r\n for (const key in this.form.controls) {\r\n if (this.form.controls[key]) {\r\n this.form.controls[key].clearValidators();\r\n this.form.controls[key].updateValueAndValidity();\r\n }\r\n }\r\n\r\n this.getControl('channel')?.setValidators(Validators.required);\r\n\r\n if (this.getIsText) {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('text')?.setValidators(Validators.required);\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('text')?.updateValueAndValidity();\r\n } else if (this.getIsMedia) {\r\n this.getControl('media')?.setValidators(Validators.required);\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('fileName')?.setValidators(Validators.required);\r\n this.getControl('media')?.updateValueAndValidity();\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('fileName')?.updateValueAndValidity();\r\n } else if (this.getIsTemplate) {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('template')?.setValidators(Validators.required);\r\n this.getControl('paramHeader')?.setValidators(Validators.required);\r\n this.getControl('paramBody')?.setValidators(Validators.required);\r\n this.getControl('paramButton')?.setValidators(Validators.required);\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('template')?.updateValueAndValidity();\r\n this.getControl('paramHeader')?.updateValueAndValidity();\r\n this.getControl('paramBody')?.updateValueAndValidity();\r\n this.getControl('paramButton')?.updateValueAndValidity();\r\n } else if (this.getIsCatalogue) {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('category')?.setValidators(Validators.required);\r\n this.getControl('catalogue')?.setValidators(Validators.required);\r\n this.getControl('product')?.setValidators(Validators.required);\r\n this.getControl('body')?.setValidators(Validators.maxLength(100));\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('category')?.updateValueAndValidity();\r\n this.getControl('catalogue')?.updateValueAndValidity();\r\n this.getControl('product')?.updateValueAndValidity();\r\n this.getControl('body')?.updateValueAndValidity();\r\n } else if (this.getIsUtility) {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('text')?.setValidators([\r\n Validators.required,\r\n Validators.maxLength(1024),\r\n ]);\r\n this.getControl('ttl')?.setValidators([\r\n CustomValidators.min(30, 'Minimum TTL 30'),\r\n CustomValidators.max(43200, 'Maximum TTL 43200'),\r\n ]);\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('text')?.updateValueAndValidity();\r\n this.getControl('ttl')?.updateValueAndValidity();\r\n this.getControl('variables')?.updateValueAndValidity();\r\n } else {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('text')?.setValidators(Validators.required);\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('text')?.updateValueAndValidity();\r\n }\r\n }\r\n\r\n public formReset(_isMediaType: boolean = false): void {\r\n if (!_isMediaType) {\r\n this.getControl('media')?.reset();\r\n this.getControl('from')?.reset();\r\n }\r\n\r\n this.getControl('text')?.reset();\r\n this.getControl('fileName')?.reset();\r\n this.getControl('targetURL')?.reset();\r\n this.getControl('fileType')?.reset();\r\n this.getControl('file')?.reset();\r\n this.getControl('latitude')?.reset();\r\n this.getControl('longitude')?.reset();\r\n this.getControl('template')?.reset();\r\n this.getControl('category')?.reset();\r\n this.getControl('product')?.reset();\r\n this.getControl('catalogue')?.reset();\r\n this.getControl('body')?.reset();\r\n this.getControl('otpValue')?.reset();\r\n this.getControl('variables')?.reset();\r\n\r\n const paramHeader = this.getControl('paramHeader') as FormArray | null;\r\n if (paramHeader) {\r\n paramHeader.clear();\r\n paramHeader.reset();\r\n }\r\n\r\n const paramBody = this.getControl('paramBody') as FormArray | null;\r\n if (paramBody) {\r\n paramBody.clear();\r\n paramBody.reset();\r\n }\r\n\r\n const paramButton = this.getControl('paramButton') as FormArray | null;\r\n if (paramButton) {\r\n paramButton.clear();\r\n paramButton.reset();\r\n }\r\n\r\n this.initValidation();\r\n }\r\n\r\n private getControl(controlName: string): AbstractControl | null {\r\n return this.form ? this.form.get(controlName) : null;\r\n }\r\n\r\n private initParam(_name: string, _value: any, _type: string): Parameter {\r\n return {\r\n name: _name,\r\n value: _value,\r\n in: 'query',\r\n type: _type,\r\n };\r\n }\r\n\r\n private getAccountOptionService(filter: string = '', isInfinite: boolean = false): void {\r\n this.isLoadingAccountOption = true;\r\n\r\n const parameterList: Array<Parameter> = [\r\n this.initParam('pageNo', this.pageNoAccountOption, 'number'),\r\n this.initParam('rowPerPage', 20, 'number'),\r\n this.initParam('platform', 'WA', 'string'),\r\n this.initParam('status', 'APPROVED', 'string'),\r\n this.initParam('filter', filter, 'string'),\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/admin/account', 'GET')\r\n .subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n if (!resp.data) return;\r\n\r\n this.accountOption = isInfinite ? [...this.accountOption, ...resp.data] : resp.data;\r\n this.isHaveNextAccountOption = resp.haveNext ?? true;\r\n this.isLoadingAccountOption = false;\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public getTemplateOptionService(\r\n event: string = null,\r\n filter: string = '',\r\n isInfinite: boolean = false\r\n ): void {\r\n this.isLoadingTemplateOption = true;\r\n\r\n const parameterList: Array<Parameter> = [\r\n this.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n this.initParam('rowPerPage', 20, 'number'),\r\n this.initParam('platform', 'WA', 'string'),\r\n this.initParam('templateType', 'all', 'string'),\r\n this.initParam('filter', filter, 'string'),\r\n this.initParam('status', 'APPROVED', 'string'),\r\n this.initParam('clientId', this.getControl('from')?.value?.clientId ?? '', 'string'),\r\n this.initParam('wabaId', this.getControl('from')?.value?.wabaId ?? '', 'string'),\r\n ];\r\n\r\n if (this.isReadOnlyMode) parameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n const messageType = this.form.value?.channel;\r\n\r\n if (messageType === 'utility') {\r\n parameterList.push(this.initParam('isDirectSend', true, 'string'));\r\n }\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/message/template', 'GET')\r\n .subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n const currentOptions = this.templateOption || [];\r\n const newData = resp.data || [];\r\n this.templateOption = isInfinite ? [...currentOptions, ...newData] : newData;\r\n\r\n this.isHaveNextTemplateOption = resp.haveNext ?? true;\r\n this.isLoadingTemplateOption = false;\r\n\r\n const template = this.templateOption?.find(\r\n (t) => t.ID === this.getControl('template')?.value?.ID\r\n );\r\n\r\n if (template) {\r\n this.getControl('template')?.patchValue(template);\r\n\r\n if (this.getControl('isUpload')?.value)\r\n return this.updateDownloadCSV(this.getControl('isUpload')?.value);\r\n }\r\n this.updateTemplate(this.getControl('template')?.value);\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private initParameter(isButton: boolean = false, value: string = ''): FormGroup {\r\n const form = isButton\r\n ? new FormGroup({\r\n name: new FormArray([], Validators.required),\r\n })\r\n : new FormGroup({\r\n name: new FormControl(\r\n {\r\n value: value,\r\n disabled: this.isReadOnlyMode || ['$UnsubscribeAccount'].includes(value),\r\n },\r\n Validators.required\r\n ),\r\n });\r\n\r\n return form;\r\n }\r\n\r\n get getParamHeader(): FormGroup[] {\r\n return (this.form.get('paramHeader') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n public addParamHeader(value: string = ''): void {\r\n const form = this.initParameter(false, value);\r\n (this.form.get('paramHeader') as FormArray).push(form);\r\n }\r\n\r\n get getParamBody(): FormGroup[] {\r\n return (this.form.get('paramBody') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n public addParamBody(value: string = ''): void {\r\n const form = this.initParameter(false, value);\r\n (this.form.get('paramBody') as FormArray).push(form);\r\n }\r\n\r\n get getButton(): FormGroup[] {\r\n return (this.form.get('paramButton') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n public getParamButton(index: number): FormGroup[] {\r\n const form = (this.form.get('paramButton') as FormArray).controls as FormGroup[];\r\n return (form[index].get('name') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n public addParamButton(): void {\r\n const form = this.initParameter(true);\r\n (this.form.get('paramButton') as FormArray).push(form);\r\n }\r\n\r\n get getIsText(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'text'\r\n );\r\n }\r\n\r\n get getIsMedia(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'media'\r\n );\r\n }\r\n\r\n get getIsTemplate(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'template'\r\n );\r\n }\r\n\r\n get getIsCatalogue(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'catalogue'\r\n );\r\n }\r\n\r\n get getIsUtility(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'utility'\r\n );\r\n }\r\n\r\n get getCarouselControls() {\r\n return (this.form.get('paramCarousel') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n getCarouselButtons(cardIndex: number): any[] {\r\n const templateValue = this.form.get('template')?.value;\r\n return templateValue?.carousel?.[cardIndex]?.buttons || [];\r\n }\r\n\r\n getCarouselBodyParams(cardIndex: number): FormArray {\r\n return this.getCarouselControls[cardIndex].get('bodyParams') as FormArray;\r\n }\r\n\r\n getCarouselBtnParams(cardIndex: number, btnIndex: number): FormArray {\r\n const btnParamsArray = this.getCarouselControls[cardIndex].get('buttonParams') as FormArray;\r\n return btnParamsArray.at(btnIndex) as FormArray;\r\n }\r\n\r\n public getNextAccountBatch() {\r\n if (!this.isHaveNextAccountOption) return;\r\n\r\n this.pageNoAccountOption += 1;\r\n this.getAccountOptionService('', true);\r\n }\r\n\r\n public accountSelectedDisplay(\r\n attribute1: WhatsAppAccountDto,\r\n attribute2: WhatsAppAccountDto\r\n ): string {\r\n return attribute1 && attribute2 && attribute1.id == attribute2.id\r\n ? `${attribute1.name} (${attribute1.accountNo})`\r\n : '';\r\n }\r\n\r\n public getNextTemplateBatch() {\r\n if (!this.isHaveNextTemplateOption) return;\r\n\r\n this.pageNoTemplateOption += 1;\r\n this.getTemplateOptionService(null, '', true);\r\n }\r\n\r\n public templateSelectedDisplay(\r\n attribute1: TemplateWAModel,\r\n attribute2: TemplateWAModel\r\n ): string {\r\n return attribute1 && attribute2 && attribute1.name == attribute2.name\r\n ? `${attribute1.name}`\r\n : '';\r\n }\r\n\r\n public onFileSelected(event: Event) {\r\n const file: FileList = (event.target as HTMLInputElement).files;\r\n const accept = this.extFileAccepted.split('/');\r\n let matchType = accept[0];\r\n\r\n if (file.length === 0) return;\r\n\r\n if (this.extFileAccepted === 'application/pdf') matchType = accept[1];\r\n\r\n if (!file[0].type.includes(matchType)) {\r\n this.toastr.error('Sorry, the file you are uploading is not allowed');\r\n return;\r\n }\r\n\r\n if (file[0].size > 10000000) {\r\n this.toastr.error('Upload media failed, max size 10mb');\r\n return;\r\n }\r\n\r\n this.getControl('file')?.setValue(file[0]);\r\n this.getControl('fileType')?.setValue('image');\r\n this.getControl('fileName')?.setValue(file[0].name);\r\n this.getControl('targetURL')?.setValidators(Validators.required);\r\n this.getControl('targetURL')?.updateValueAndValidity();\r\n\r\n if (file[0].type.indexOf('video') > -1) this.getControl('fileType')?.setValue('video');\r\n\r\n this.uploadMediaService();\r\n }\r\n\r\n private uploadMediaService(): void {\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'file',\r\n value: this.getControl('file')?.value,\r\n in: 'formData',\r\n type: 'object',\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/message/media', 'POST')\r\n .subscribe((resp: AppResponse<any>) => {\r\n this.getControl('targetURL')?.clearValidators();\r\n this.getControl('targetURL')?.updateValueAndValidity();\r\n this.getControl('targetURL')?.setValue(resp.data.targetURL);\r\n this.getControl('file')?.reset();\r\n\r\n this.toastr.success('Upload media success');\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n get buttonParamsControls() {\r\n const control = this.form.get('buttonParams') as FormArray;\r\n return control ? control.controls : [];\r\n }\r\n\r\n get isUsingExcelBulk(): boolean {\r\n return this.getControl('isUpload')?.value || false;\r\n }\r\n\r\n public updateTemplate(template: TemplateWAModel): void {\r\n this.isShowParameter = false;\r\n\r\n if (!template) return;\r\n\r\n const formStorage = this.getCampaignStorage?.generalInformation?.form;\r\n\r\n const buttonParamsArray = this.form.get('buttonParams') as FormArray;\r\n buttonParamsArray.clear();\r\n\r\n if (template && template.buttons && template.buttons.length > 0) {\r\n let qrIndexLocal = 0;\r\n\r\n template.buttons.forEach((btn: any, index: number) => {\r\n if (btn.type === 'QUICK_REPLY') {\r\n let existingPayload = '';\r\n\r\n // SKENARIO 1: Data dari Local State\r\n if (formStorage?.buttonParams && formStorage.buttonParams.length > 0) {\r\n existingPayload = formStorage.buttonParams[qrIndexLocal]?.payload || '';\r\n qrIndexLocal++;\r\n }\r\n // SKENARIO 2: Data dari BE\r\n else if (\r\n formStorage?.paramButton &&\r\n Array.isArray(formStorage.paramButton[index])\r\n ) {\r\n existingPayload = formStorage.paramButton[index][0] || '';\r\n }\r\n\r\n buttonParamsArray.push(\r\n new FormGroup({\r\n label: new FormControl(btn.text),\r\n payload: new FormControl(\r\n {\r\n value: existingPayload,\r\n disabled: this.isReadOnlyMode,\r\n },\r\n [Validators.maxLength(256)]\r\n ),\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n this.isHaveTemplateParam =\r\n (template.header?.examples?.length ?? 0) > 0 ||\r\n (template.body?.examples?.length ?? 0) > 0 ||\r\n (template.buttons?.length ?? 0) > 0 ||\r\n (template.carousel?.length ?? 0) > 0;\r\n\r\n if (['image', 'video', 'document'].includes(template?.header?.type?.toLowerCase())) {\r\n this.getControl('fileName')?.setValue(\r\n this.getCampaignStorage?.generalInformation?.form.fileName ??\r\n this.getCampaignStorage?.generalInformation?.form.targetURL ??\r\n template.header.url\r\n );\r\n this.getControl('targetURL')?.setValue(\r\n this.getCampaignStorage?.generalInformation?.form.targetURL ?? template.header.url\r\n );\r\n\r\n this.fileTypeChange(template?.header?.type?.toLowerCase());\r\n }\r\n\r\n (template.header.examples?.length ?? 0) > 0\r\n ? this.getControl('paramHeader')?.setValidators(Validators.required)\r\n : this.getControl('paramHeader')?.clearValidators();\r\n\r\n (template.body.examples?.length ?? 0) > 0\r\n ? this.getControl('paramBody')?.setValidators(Validators.required)\r\n : this.getControl('paramBody')?.clearValidators();\r\n\r\n (template.buttons?.length ?? 0) > 0\r\n ? this.getControl('paramButton')?.setValidators(Validators.required)\r\n : this.getControl('paramButton')?.clearValidators();\r\n\r\n (this.form.get('paramHeader') as FormArray).controls = [];\r\n (this.form.get('paramHeader') as FormArray).reset();\r\n this.getControl('paramHeader')?.updateValueAndValidity();\r\n (this.form.get('paramBody') as FormArray).controls = [];\r\n (this.form.get('paramBody') as FormArray).reset();\r\n this.getControl('paramBody')?.updateValueAndValidity();\r\n (this.form.get('paramButton') as FormArray).controls = [];\r\n (this.form.get('paramButton') as FormArray).reset();\r\n this.getControl('paramButton')?.updateValueAndValidity();\r\n this.getControl('otpValue')?.setValue('');\r\n this.getControl('otpValue')?.clearValidators();\r\n this.getControl('otpValue')?.updateValueAndValidity();\r\n\r\n if (template.category === 'AUTHENTICATION') {\r\n this.getControl('otpValue')?.setValue(\r\n formStorage?.otpValue ??\r\n [...(formStorage?.template?.body?.examples ?? [])]?.pop() ??\r\n ''\r\n );\r\n\r\n this.getControl('otpValue')?.setValidators(Validators.required);\r\n this.getControl('otpValue')?.updateValueAndValidity();\r\n }\r\n\r\n template.header.examples?.forEach((each, index) => {\r\n this.addParamHeader(\r\n formStorage?.paramHeader?.[index]?.name ?? formStorage?.paramHeader?.[index] ?? ''\r\n );\r\n });\r\n\r\n template.body.examples?.forEach((each, index) => {\r\n let paramValue =\r\n formStorage?.paramBody?.[index]?.name ?? formStorage?.paramBody?.[index] ?? '';\r\n\r\n if (['$UnsubscribeAccount'].includes(each)) paramValue = each;\r\n\r\n this.addParamBody(paramValue);\r\n });\r\n\r\n // ==========================================================\r\n // TAMBAHAN: Generate Variable Dinamis dari template.body.examples\r\n // ==========================================================\r\n this.variables.clear();\r\n if (template.body?.examples && template.body.examples.length > 0) {\r\n const isSavedTemplateMatches = formStorage?.template?.name === template.name;\r\n\r\n template.body.examples.forEach((exampleValue: string, index: number) => {\r\n let savedVariable = '';\r\n if (isSavedTemplateMatches) {\r\n savedVariable =\r\n formStorage?.variables?.[index]?.paramName ??\r\n formStorage?.template?.data?.[index];\r\n }\r\n\r\n const finalValue = savedVariable ? savedVariable : '';\r\n\r\n this.variables.push(\r\n new FormGroup({\r\n paramName: new FormControl({\r\n value: finalValue,\r\n disabled: this.isReadOnlyMode,\r\n }),\r\n })\r\n );\r\n });\r\n }\r\n\r\n if (template.body?.text) {\r\n this.getControl('text')?.setValue(template.body.text);\r\n this.getControl('text')?.updateValueAndValidity();\r\n }\r\n // ==========================================================\r\n\r\n // ==========================================================\r\n // TAMBAHAN: Generate Form Carousel Dinamis\r\n // ==========================================================\r\n const carouselArray = this.form.get('paramCarousel') as FormArray;\r\n carouselArray.clear();\r\n\r\n const isUsingUpload = this.getControl('isUpload')?.value;\r\n const dynamicValidator = isUsingUpload ? null : Validators.required;\r\n\r\n if (template.carousel && template.carousel.length > 0) {\r\n const isSavedTemplateMatches = formStorage?.template?.name === template.name;\r\n\r\n // BUKAN formStorage?.template?.carousel, TAPI formStorage?.paramCarousel (tempat lu ngetik)\r\n const savedUserInputs = isSavedTemplateMatches ? formStorage?.paramCarousel : null;\r\n\r\n template.carousel.forEach((card: any, cardIdx: number) => {\r\n const cardGroup = new FormGroup({\r\n headerURL: new FormControl(card.header?.url ?? ''),\r\n bodyParams: new FormArray([]),\r\n buttonParams: new FormArray([]),\r\n });\r\n\r\n // 1. Setup Body Params\r\n if (card.body?.examples?.length > 0) {\r\n card.body.examples.forEach((_: any, bodyIdx: number) => {\r\n // AMBIL VALUE DARI INPUTAN SEBELUMNYA\r\n const savedBodyVal =\r\n savedUserInputs?.[cardIdx]?.bodyParams?.[bodyIdx]?.paramName ?? '';\r\n (cardGroup.get('bodyParams') as FormArray).push(\r\n new FormGroup({\r\n paramName: new FormControl(\r\n { value: savedBodyVal, disabled: this.isReadOnlyMode },\r\n dynamicValidator\r\n ),\r\n })\r\n );\r\n });\r\n }\r\n\r\n if (card.buttons?.length > 0) {\r\n card.buttons.forEach((btn: any, btnIdx: number) => {\r\n const btnParamArray = new FormArray([]);\r\n\r\n // SKENARIO 1: Button dengan variabel (contoh URL / Phone dengan {{1}})\r\n if (btn.examples?.length > 0) {\r\n btn.examples.forEach((_: any, paramIdx: number) => {\r\n const savedBtnVal =\r\n savedUserInputs?.[cardIdx]?.buttonParams?.[btnIdx]?.[paramIdx]\r\n ?.paramName ?? '';\r\n btnParamArray.push(\r\n new FormGroup({\r\n paramName: new FormControl(\r\n { value: savedBtnVal, disabled: this.isReadOnlyMode },\r\n dynamicValidator\r\n ),\r\n })\r\n );\r\n });\r\n }\r\n // SKENARIO 2: Button bertipe QUICK_REPLY (Butuh input Payload statis)\r\n else if (btn.type === 'QUICK_REPLY') {\r\n const savedPayloadVal =\r\n savedUserInputs?.[cardIdx]?.buttonParams?.[btnIdx]?.[0]?.payload ??\r\n '';\r\n\r\n btnParamArray.push(\r\n new FormGroup({\r\n payload: new FormControl(\r\n { value: savedPayloadVal, disabled: this.isReadOnlyMode },\r\n [\r\n Validators.maxLength(256),\r\n ...(isUsingUpload ? [] : [Validators.required]),\r\n ]\r\n ),\r\n })\r\n );\r\n }\r\n\r\n (cardGroup.get('buttonParams') as FormArray).push(btnParamArray);\r\n });\r\n }\r\n\r\n carouselArray.push(cardGroup);\r\n });\r\n }\r\n\r\n template.buttons?.forEach((each, index) => {\r\n this.addParamButton();\r\n const button = this.getButton;\r\n\r\n if (each.examples?.length > 0) {\r\n each.examples.forEach((_, paramIndex) => {\r\n let form = null;\r\n\r\n if (each.type === 'FLOW') {\r\n form = this.initParameter(false, each.flow_id);\r\n } else {\r\n this.isShowParameter = true;\r\n form = this.initParameter(\r\n false,\r\n formStorage?.paramButton?.[index]?.name?.[paramIndex]?.name ??\r\n formStorage?.paramButton?.[index]?.name?.[paramIndex] ??\r\n formStorage?.paramButton?.[index]?.[paramIndex] ??\r\n ''\r\n );\r\n }\r\n\r\n (button[button.length - 1].get('name') as FormArray).push(form);\r\n });\r\n } else {\r\n const lastControl = button[button.length - 1]?.get('name');\r\n lastControl?.clearValidators();\r\n lastControl?.updateValueAndValidity();\r\n }\r\n });\r\n\r\n const paramBodyArray = this.form.get('paramBody') as FormArray;\r\n\r\n paramBodyArray.clearValidators();\r\n paramBodyArray.controls.forEach((ctrl) => {\r\n ctrl.get('name')?.clearValidators();\r\n ctrl.get('name')?.updateValueAndValidity();\r\n });\r\n\r\n paramBodyArray.updateValueAndValidity();\r\n this.toggleExcelValidation(this.form.get('isUpload')?.value);\r\n }\r\n\r\n public updateMediaType(_mediaType: string): void {\r\n if (_mediaType === EnumData.MEDIA_TYPE_LOCATION) this.initMaps;\r\n\r\n this.formReset(true);\r\n this.fileTypeChange(_mediaType.toLowerCase());\r\n }\r\n\r\n private fileTypeChange(type: string): void {\r\n this.extFileAccepted = 'image/*';\r\n\r\n if (type === EnumData.MEDIA_TYPE_VIDEO.toLowerCase()) {\r\n this.extFileAccepted = 'video/*';\r\n } else if (type === EnumData.MEDIA_TYPE_DOCUMENT.toLowerCase()) {\r\n this.extFileAccepted = 'application/pdf';\r\n }\r\n }\r\n\r\n public updateSearch(searchValue: string): void {\r\n this.pageNoTemplateOption = 1;\r\n this.getTemplateOptionService(null, searchValue);\r\n }\r\n\r\n public updateSearchAccount(searchValue: string): void {\r\n this.pageNoAccountOption = 1;\r\n this.getAccountOptionService(searchValue);\r\n }\r\n\r\n private initMaps(): void {\r\n this.mapsAPILoader.load().then(() => {\r\n this.setCurrentLocation();\r\n\r\n this.geoCoder = new google.maps.Geocoder();\r\n const autocomplete = new google.maps.places.Autocomplete(\r\n this.mapSearchRef.nativeElement\r\n );\r\n autocomplete.addListener('place_changed', () => {\r\n this.ngZone.run(() => {\r\n const place: google.maps.places.PlaceResult = autocomplete.getPlace();\r\n\r\n if (!place.geometry) return;\r\n\r\n this.maps.latitude = place.geometry.location.lat();\r\n this.maps.longitude = place.geometry.location.lng();\r\n this.getControl('latitude')?.setValue(this.maps.latitude);\r\n this.getControl('longitude')?.setValue(this.maps.longitude);\r\n });\r\n });\r\n });\r\n }\r\n\r\n private setCurrentLocation() {\r\n if ('geolocation' in navigator) {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n if (!this.getControl('longitude')?.value && !this.getControl('latitude')?.value) {\r\n this.maps.latitude = position.coords.latitude;\r\n this.maps.longitude = position.coords.longitude;\r\n this.getControl('latitude')?.setValue(this.maps.latitude);\r\n this.getControl('longitude')?.setValue(this.maps.longitude);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public markerDragEnd(event: google.maps.MouseEvent) {\r\n if (event.latLng) {\r\n this.maps.latitude = event.latLng.lat();\r\n this.maps.longitude = event.latLng.lng();\r\n this.getControl('latitude')?.setValue(this.maps.latitude);\r\n this.getControl('longitude')?.setValue(this.maps.longitude);\r\n }\r\n }\r\n\r\n public updateDownloadCSV(isChecked: boolean): void {\r\n this.getControl('isUpload')?.setValue(isChecked);\r\n\r\n if (isChecked) {\r\n (this.getControl('paramHeader') as FormArray).controls = [];\r\n (this.getControl('paramHeader') as FormArray).reset();\r\n (this.getControl('paramBody') as FormArray).controls = [];\r\n (this.getControl('paramBody') as FormArray).reset();\r\n (this.getControl('paramButton') as FormArray).controls = [];\r\n (this.getControl('paramButton') as FormArray).reset();\r\n this.getControl('paramHeader')?.clearValidators();\r\n this.getControl('paramBody')?.clearValidators();\r\n this.getControl('paramButton')?.clearValidators();\r\n this.getControl('paramHeader')?.updateValueAndValidity();\r\n this.getControl('paramBody')?.updateValueAndValidity();\r\n this.getControl('paramButton')?.updateValueAndValidity();\r\n this.getControl('otpValue')?.reset();\r\n this.getControl('otpValue')?.clearValidators();\r\n this.getControl('otpValue')?.updateValueAndValidity();\r\n this.variables.controls.forEach((ctrl) => {\r\n ctrl.get('paramName')?.clearValidators();\r\n ctrl.get('paramName')?.updateValueAndValidity();\r\n });\r\n const carouselArray = this.form.get('paramCarousel') as FormArray;\r\n if (carouselArray) {\r\n carouselArray.controls.forEach((card: any) => {\r\n const bodyParams = card.get('bodyParams') as FormArray;\r\n bodyParams?.controls.forEach((bCtrl) => {\r\n bCtrl.get('paramName')?.clearValidators();\r\n bCtrl.get('paramName')?.updateValueAndValidity();\r\n });\r\n\r\n const btnParams = card.get('buttonParams') as FormArray;\r\n btnParams?.controls.forEach((btnGroup: any) => {\r\n (btnGroup as FormArray).controls.forEach((pBtnCtrl) => {\r\n pBtnCtrl.get('paramName')?.clearValidators();\r\n pBtnCtrl.get('paramName')?.updateValueAndValidity();\r\n });\r\n });\r\n });\r\n }\r\n return;\r\n }\r\n this.updateTemplate(this.getControl('template')?.value);\r\n }\r\n\r\n public handleChangeTemplate(useExisting: boolean): void {\r\n this.getControl('isDownloadVariableXLS')?.setValue(false);\r\n this.variables.clear();\r\n this.updateVariableDownloadXLS(false);\r\n this.getControl('text')?.setValue('');\r\n if (useExisting) {\r\n this.getControl('template')?.setValidators(Validators.required);\r\n this.getControl('text')?.clearValidators();\r\n this.getControl('text')?.updateValueAndValidity();\r\n this.getControl('template')?.updateValueAndValidity();\r\n } else {\r\n this.getControl('template')?.reset();\r\n this.getControl('template')?.clearValidators();\r\n this.getControl('text')?.setValidators([Validators.required, Validators.max(1024)]);\r\n\r\n this.getControl('text')?.updateValueAndValidity();\r\n this.getControl('template')?.updateValueAndValidity();\r\n }\r\n }\r\n\r\n public handleChangeFrom(value: any): void {\r\n const { isUseExistingTemplate } = this.form.value;\r\n if (!isUseExistingTemplate) return;\r\n this.getTemplateOptionService(value);\r\n }\r\n\r\n get variables(): FormArray {\r\n return this.getControl('variables') as FormArray;\r\n }\r\n\r\n addVariable(): void {\r\n const variableGroup = new FormGroup({\r\n paramName: new FormControl('', Validators.required),\r\n });\r\n\r\n this.variables.push(variableGroup);\r\n\r\n const textControl = this.getControl('text');\r\n\r\n if (textControl) {\r\n const currentBody = textControl.value || '';\r\n const newSequence = `{{${this.variables.controls.length}}}`;\r\n textControl.setValue(`${currentBody} ${newSequence}`.trim());\r\n }\r\n }\r\n\r\n removeVariable(index: number): void {\r\n this.variables.removeAt(index);\r\n\r\n if (this.variables.controls.length === 0) {\r\n this.getControl('useXlsx')?.setValue(false);\r\n }\r\n\r\n const textControl = this.getControl('text');\r\n\r\n if (textControl && textControl.value) {\r\n const targetSequence = index + 1;\r\n let currentBody = textControl.value;\r\n\r\n const removeRegex = new RegExp(`\\\\s*\\\\{\\\\{${targetSequence}\\\\}\\\\}`, 'g');\r\n currentBody = currentBody.replace(removeRegex, '');\r\n\r\n currentBody = currentBody.replace(/\\{\\{(\\d+)\\}\\}/g, (match: number, numStr: string) => {\r\n const num = parseInt(numStr, 10);\r\n if (num > targetSequence) {\r\n return `{{${num - 1}}}`;\r\n }\r\n return match;\r\n });\r\n\r\n textControl.setValue(currentBody.trim());\r\n }\r\n }\r\n\r\n updateVariableDownloadXLS(isChecked: boolean): void {\r\n const variablesArray = this.variables;\r\n if (isChecked) {\r\n variablesArray.controls.forEach((control) => {\r\n control.get('paramName')?.clearValidators();\r\n control.get('paramName')?.setValue('');\r\n control.get('paramName')?.updateValueAndValidity();\r\n });\r\n } else {\r\n variablesArray.controls.forEach((control) => {\r\n control.get('paramName')?.setValidators(Validators.required);\r\n control.get('paramName')?.updateValueAndValidity();\r\n });\r\n }\r\n\r\n this.form.updateValueAndValidity();\r\n }\r\n\r\n public toggleExcelValidation(isUpload: boolean): void {\r\n const currentValidator = isUpload ? null : Validators.required;\r\n\r\n // ====================================================\r\n // 2. UPDATE VALIDASI CAROUSEL VARIABLES\r\n // ====================================================\r\n const carouselArray = this.form.get('paramCarousel') as FormArray;\r\n if (carouselArray) {\r\n carouselArray.controls.forEach((card: any) => {\r\n const bodyParams = card.get('bodyParams') as FormArray;\r\n bodyParams?.controls.forEach((bCtrl: any) => {\r\n bCtrl.get('paramName')?.setValidators(currentValidator);\r\n bCtrl.get('paramName')?.updateValueAndValidity({ emitEvent: false });\r\n });\r\n\r\n const btnParams = card.get('buttonParams') as FormArray;\r\n btnParams?.controls.forEach((btnGroup: any) => {\r\n (btnGroup as FormArray).controls.forEach((pBtnCtrl: any) => {\r\n pBtnCtrl.get('paramName')?.setValidators(currentValidator);\r\n pBtnCtrl.get('paramName')?.updateValueAndValidity({ emitEvent: false });\r\n });\r\n });\r\n });\r\n\r\n carouselArray.updateValueAndValidity({ emitEvent: false });\r\n }\r\n this.form.updateValueAndValidity();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscribers.forEach((each) => each.unsubscribe());\r\n }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport function duplicateValidator(\r\n compareArray: any[],\r\n compareProperty: string,\r\n originalValue?: any\r\n): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const inputValue = control.value ? String(control.value).trim() : '';\r\n\r\n if (!inputValue || (!!originalValue && String(originalValue) === inputValue)) {\r\n return null;\r\n }\r\n\r\n const isDuplicate = compareArray.some(\r\n (data) => inputValue === String(data[compareProperty]).trim()\r\n );\r\n\r\n return isDuplicate ? { duplicateValue: true } : null;\r\n };\r\n}\r\n\r\nexport function intervalTimeValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n const number = Number(control.value);\r\n\r\n if (Number.isNaN(number) || number % 1 !== 0 || number < 1) {\r\n return { intervalTime: true };\r\n }\r\n\r\n return null;\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tFailoverMechanismValidationConst,\r\n\tPlatformOptionConst,\r\n\tisHaveNextOption,\r\n\tisLoadingOption,\r\n\toptionList,\r\n\tpageNoOption,\r\n} from '../../../../core/const';\r\nimport { intervalTimeValidator } from '../../../../core/const/form-validators';\r\nimport { Parameter } from '../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../core/services';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../models';\r\n\r\n@Component({\r\n\tselector: 'lib-failover-mechanism',\r\n\ttemplateUrl: './failover-mechanism.component.html',\r\n\tstyleUrls: ['./failover-mechanism.component.scss'],\r\n})\r\nexport class FailoverMechanismComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic failover: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic channelOption: any;\r\n\tpublic validationMessages: any;\r\n\tpublic isHaveNextTemplateOption = { ...isHaveNextOption };\r\n\tpublic isLoadingTemplateOption = { ...isLoadingOption };\r\n\tpublic templateOption = { ...optionList };\r\n\tpublic isLoadingAccountOption = { ...isLoadingOption };\r\n\tpublic isHaveNextAccountOption = { ...isHaveNextOption };\r\n\tpublic accountOption = { ...optionList };\r\n\r\n\tprivate subscribers: Subscription[] = [];\r\n\tprivate pageNoTemplateOption = { ...pageNoOption };\r\n\tprivate pageNoAccountOption = { ...pageNoOption };\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.failover = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.validationMessages = FailoverMechanismValidationConst;\r\n\t\tthis.channelOption = [\r\n\t\t\t...PlatformOptionConst,\r\n\t\t\t/* {\r\n icon: '',\r\n inputSvgIcon: 'icon-voice-gray',\r\n image: 'line.png',\r\n label: 'Voice',\r\n value: 'VOICE',\r\n }, */\r\n\t\t].filter(\r\n\t\t\tt =>\r\n\t\t\t\t![\r\n\t\t\t\t\t'LINE',\r\n\t\t\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium,\r\n\t\t\t\t].includes(t.value)\r\n\t\t);\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initDisable();\r\n\t\tthis.initEdit();\r\n\t\tthis.failover.emit(this.form);\r\n\t}\r\n\r\n\tget getCampaignStorage(): any {\r\n\t\treturn localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\t}\r\n\r\n\tget interval() {\r\n\t\treturn this.form.get('interval');\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tactive: new FormControl(false, Validators.required),\r\n\t\t\ttype: new FormControl(''),\r\n\t\t\tinterval: new FormControl(null),\r\n\t\t\taccounts: new FormArray([]),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tif (this.interval.touched && this.interval.value === 0) {\r\n\t\t\t\tthis.form.get('interval').setErrors({ intervalTime: true });\r\n\t\t\t}\r\n\t\t\tthis.failover.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(): void {\r\n\t\tif (\r\n\t\t\tObject.entries(this.getCampaignStorage).length === 0 ||\r\n\t\t\t!this.getCampaignStorage?.failover\r\n\t\t)\r\n\t\t\treturn;\r\n\r\n\t\tthis.form\r\n\t\t\t.get('active')\r\n\t\t\t.setValue(this.getCampaignStorage?.failover?.active);\r\n\t\tthis.form\r\n\t\t\t.get('type')\r\n\t\t\t.setValue(this.getCampaignStorage?.failover?.type ?? '');\r\n\t\tthis.form\r\n\t\t\t.get('interval')\r\n\t\t\t.setValue(this.getCampaignStorage?.failover?.interval ?? null);\r\n\r\n\t\tthis.activeChange(this.getCampaignStorage?.failover?.active);\r\n\t\tthis.validationAccount();\r\n\t}\r\n\r\n\tprivate initAccount(data: any = null, _channel: any = null): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tchannel: new FormControl(_channel),\r\n\t\t\tplatform: new FormControl(_channel?.value),\r\n\t\t\taccountId: new FormControl(\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue:\r\n\t\t\t\t\t\tdata?.accountId && typeof data?.accountId === 'string'\r\n\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\tid: data?.accountId,\r\n\t\t\t\t\t\t\t\t\tname: data?.accountName,\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t: data?.accountId ?? '',\r\n\t\t\t\t\tdisabled: this.isReadOnlyMode,\r\n\t\t\t\t},\r\n\t\t\t\tValidators.required\r\n\t\t\t),\r\n\t\t\taccountName: new FormControl(data?.accountName ?? ''),\r\n\t\t\tsubject: new FormControl({\r\n\t\t\t\tvalue: data?.subject ?? '',\r\n\t\t\t\tdisabled: this.isReadOnlyMode,\r\n\t\t\t}),\r\n\t\t\ttemplate: new FormControl({\r\n\t\t\t\tvalue: data?.template ?? '',\r\n\t\t\t\tdisabled: this.isReadOnlyMode,\r\n\t\t\t}),\r\n\t\t\tparamBody: new FormArray([]),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tget getAccount(): FormGroup[] {\r\n\t\treturn (this.form.get('accounts') as FormArray).controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addAccount(data: any = null, channel: any = null): void {\r\n\t\tconst form = this.initAccount(data, channel);\r\n\t\t(this.form.get('accounts') as FormArray).push(form);\r\n\r\n\t\tthis.getAccountOptionService(channel?.value, data?.accountName ?? '');\r\n\t\tthis.getTemplateOptionService(channel?.value, {}, data?.template?.name);\r\n\t}\r\n\r\n\tprivate initParameter(): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tname: new FormControl('', Validators.required),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tpublic getParamBody(account: FormGroup): FormGroup[] {\r\n\t\treturn (account.get('paramBody') as FormArray).controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addParamBody(account: FormGroup): void {\r\n\t\tconst form = this.initParameter();\r\n\t\t(account.get('paramBody') as FormArray).push(form);\r\n\t}\r\n\r\n\tpublic deleteParamBody(account: FormGroup, index: number): void {\r\n\t\t(account.get('paramBody') as FormArray).removeAt(index);\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getAccountOptionService(\r\n\t\tplatform: string,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingAccountOption[platform] = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'pageNo',\r\n\t\t\t\tthis.pageNoAccountOption[platform],\r\n\t\t\t\t'number'\r\n\t\t\t),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t\tthis.initParam('platform', platform, 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/admin/account', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n\t\t\t\tif (!resp.data) return;\r\n\r\n\t\t\t\tthis.accountOption[platform] = isInfinite\r\n\t\t\t\t\t? [...this.accountOption[platform], ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\r\n\t\t\t\tthis.isHaveNextAccountOption[platform] = resp.haveNext;\r\n\t\t\t\tthis.isLoadingAccountOption[platform] = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tplatform: string,\r\n\t\taccount: any,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption[platform] = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'pageNo',\r\n\t\t\t\tthis.pageNoTemplateOption[platform],\r\n\t\t\t\t'number'\r\n\t\t\t),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', platform, 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam('clientId', account?.clientId ?? '', 'string'),\r\n\t\t\tthis.initParam('wabaId', account?.wabaId ?? '', 'string'),\r\n\t\t];\r\n\r\n\t\tif (platform === 'WA')\r\n\t\t\tparameterList.push(this.initParam('status', 'APPROVED', 'string'));\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption[platform] = isInfinite\r\n\t\t\t\t\t? [...this.templateOption[platform], ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\r\n\t\t\t\tthis.isHaveNextTemplateOption[platform] = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption[platform] = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getNextAccountBatch(platform: string) {\r\n\t\tif (!this.isHaveNextAccountOption[platform]) return;\r\n\r\n\t\tthis.pageNoAccountOption[platform] += 1;\r\n\t\tthis.getAccountOptionService(platform, '', true);\r\n\t}\r\n\r\n\tpublic accountSelectedDisplay(\r\n\t\tattribute1: WhatsAppAccountDto,\r\n\t\tattribute2: WhatsAppAccountDto\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.id == attribute2.id\r\n\t\t\t? `${attribute1.name} (${attribute1.accountNo})`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch(platform: string, account: any) {\r\n\t\tif (!this.isHaveNextTemplateOption[platform]) return;\r\n\r\n\t\tthis.pageNoTemplateOption[platform] += 1;\r\n\t\tthis.getTemplateOptionService(platform, account, '', true);\r\n\t}\r\n\r\n\tpublic updateSearch(\r\n\t\tsearchValue: string,\r\n\t\tplatform: string,\r\n\t\taccount: any\r\n\t): void {\r\n\t\tthis.pageNoTemplateOption[platform] = 1;\r\n\t\tthis.getTemplateOptionService(platform, account, searchValue);\r\n\t}\r\n\r\n\tpublic updateSearchAccount(searchValue: string, platform: string): void {\r\n\t\tthis.pageNoAccountOption[platform] = 1;\r\n\t\tthis.getAccountOptionService(platform, searchValue);\r\n\t}\r\n\r\n\tpublic activeChange(_active: boolean): void {\r\n\t\tthis.form\r\n\t\t\t.get('type')\r\n\t\t\t.setValue(this.getCampaignStorage?.failover?.type ?? '');\r\n\t\tthis.form.get('type').setValidators(Validators.required);\r\n\t\tthis.form.get('type').updateValueAndValidity();\r\n\r\n\t\tif (_active) {\r\n\t\t\tconst accounts =\r\n\t\t\t\tthis.getCampaignStorage?.failover?.accounts?.filter(\r\n\t\t\t\t\t(t: any) =>\r\n\t\t\t\t\t\tt.platform !==\r\n\t\t\t\t\t\tthis.getCampaignStorage?.generalInformation?.form\r\n\t\t\t\t\t\t\t?.medium\r\n\t\t\t\t);\r\n\r\n\t\t\tif (accounts) {\r\n\t\t\t\taccounts.map(account =>\r\n\t\t\t\t\tthis.addAccount(\r\n\t\t\t\t\t\taccount,\r\n\t\t\t\t\t\tthis.channelOption.find(\r\n\t\t\t\t\t\t\t(t: any) => t.value === account.platform\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\r\n\t\t\t\tthis.channelOption\r\n\t\t\t\t\t.filter((t: any) => {\r\n\t\t\t\t\t\treturn !accounts.find((account: any) => {\r\n\t\t\t\t\t\t\treturn account.platform === t.value;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.map(channel => this.addAccount({}, channel));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.channelOption.map(channel => this.addAccount({}, channel));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('type').clearValidators();\r\n\t\tthis.form.get('type').updateValueAndValidity();\r\n\t\t(this.form.get('accounts') as FormArray).controls = [];\r\n\t\t(this.form.get('accounts') as FormArray).reset();\r\n\t\tthis.form.get('accounts').updateValueAndValidity();\r\n\r\n\t\tthis.typeChange('Status');\r\n\t}\r\n\r\n\tpublic typeChange(_type: string): void {\r\n\t\tif (_type === 'Time') {\r\n\t\t\tthis.form\r\n\t\t\t\t.get('interval')\r\n\t\t\t\t.setValue(this.getCampaignStorage?.failover?.interval ?? null);\r\n\t\t\tthis.form\r\n\t\t\t\t.get('interval')\r\n\t\t\t\t.setValidators([Validators.required, intervalTimeValidator()]);\r\n\t\t\tthis.form.get('interval').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('interval').clearValidators();\r\n\t\tthis.form.get('interval').updateValueAndValidity();\r\n\t}\r\n\r\n\tpublic validationAccount(\r\n\t\taccount: WhatsAppAccountDto = null,\r\n\t\taccountControl: FormGroup = null\r\n\t): void {\r\n\t\taccountControl\r\n\t\t\t?.get('accountName')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.accountOption[accountControl.get('platform').value].find(\r\n\t\t\t\t\tt => t.id === account?.id\r\n\t\t\t\t)?.name ?? ''\r\n\t\t\t);\r\n\r\n\t\tconst isChooseAccount = this.getAccount.filter(\r\n\t\t\tcontrol => control.get('accountId').value\r\n\t\t);\r\n\r\n\t\tthis.getAccount.forEach(control => {\r\n\t\t\tcontrol.get('accountId').setValidators(Validators.required);\r\n\t\t\tcontrol.get('subject').setValidators(Validators.required);\r\n\t\t\tcontrol.get('template').setValidators(Validators.required);\r\n\r\n\t\t\tif (\r\n\t\t\t\t!control.get('accountId').value &&\r\n\t\t\t\tisChooseAccount?.length > 0\r\n\t\t\t) {\r\n\t\t\t\tcontrol.get('accountId').clearValidators();\r\n\t\t\t\tcontrol.get('subject').setValue('');\r\n\t\t\t\tcontrol.get('subject').clearValidators();\r\n\t\t\t\tcontrol.get('template').setValue('');\r\n\t\t\t\tcontrol.get('template').clearValidators();\r\n\t\t\t} else if (\r\n\t\t\t\t['WA', 'SMS', 'VOICE'].includes(control.get('platform').value)\r\n\t\t\t) {\r\n\t\t\t\tcontrol.get('subject').clearValidators();\r\n\t\t\t}\r\n\r\n\t\t\tcontrol.get('accountId').updateValueAndValidity();\r\n\t\t\tcontrol.get('subject').updateValueAndValidity();\r\n\t\t\tcontrol.get('template').updateValueAndValidity();\r\n\t\t});\r\n\r\n\t\tif (accountControl)\r\n\t\t\tthis.getTemplateOptionService(\r\n\t\t\t\taccountControl.get('platform').value,\r\n\t\t\t\taccountControl.get('accountId').value\r\n\t\t\t);\r\n\t}\r\n\r\n\tpublic drop(event: CdkDragDrop<any[]>) {\r\n\t\tmoveItemInArray(\r\n\t\t\tthis.getAccount,\r\n\t\t\tevent.previousIndex,\r\n\t\t\tevent.currentIndex\r\n\t\t);\r\n\r\n\t\tthis.failover.emit(this.form);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { SegmentedMessage } from 'sms-segments-calculator';\r\nimport {\r\n GeneralInformationMessageValidationConst,\r\n PlatformOptionConst,\r\n} from '../../../../core/const';\r\n\r\ninterface IMaps {\r\n zoom: number;\r\n latitude: number;\r\n longitude: number;\r\n isDraggable: boolean;\r\n isDoubleClickZoom: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-new-campaign-general-information',\r\n templateUrl: './general-information.component.html',\r\n styleUrls: ['./general-information.component.scss'],\r\n})\r\nexport class GeneralInformationComponent implements OnInit {\r\n @Output()\r\n public generalInformation: EventEmitter<{\r\n parent: FormGroup;\r\n child: FormGroup;\r\n }>;\r\n\r\n public form: FormGroup;\r\n public channelOption: any[];\r\n public generalInformationForm: FormGroup;\r\n public isTouchedWAForm: boolean = false;\r\n public isTouchedSMSForm: boolean = false;\r\n public isTouchedEmailForm: boolean = false;\r\n public isShowMore: boolean = false;\r\n public validationMessages: any;\r\n public maps: IMaps;\r\n public twilioResultCounter = {\r\n segments: 0,\r\n characters: 0,\r\n encoding: '',\r\n fulltext: `Encode - / Chars 0 / Segment 1`,\r\n };\r\n\r\n @Input() public isReadOnlyMode: boolean;\r\n\r\n constructor(private sanitizer: DomSanitizer) {\r\n this.generalInformation = new EventEmitter();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.channelOption = PlatformOptionConst;\r\n this.validationMessages = GeneralInformationMessageValidationConst;\r\n this.maps = {\r\n zoom: 15,\r\n latitude: null,\r\n longitude: null,\r\n isDraggable: true,\r\n isDoubleClickZoom: true,\r\n };\r\n\r\n this.initForm();\r\n this.initEdit();\r\n this.initDisable();\r\n }\r\n\r\n private initForm(): void {\r\n this.form = new FormGroup({\r\n id: new FormControl(null),\r\n campaignName: new FormControl(null, [Validators.required, Validators.maxLength(100)]),\r\n medium: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.form.valueChanges.subscribe(() => {\r\n this.isTouchedWAForm = !this.isTouchedWAForm;\r\n this.isTouchedSMSForm = !this.isTouchedSMSForm;\r\n this.isTouchedEmailForm = !this.isTouchedEmailForm;\r\n\r\n this.generalInformation.emit({\r\n parent: this.form,\r\n child: this.generalInformationForm,\r\n });\r\n });\r\n setInterval(() => {\r\n this.onCheckTwilioCounter();\r\n }, 400);\r\n }\r\n\r\n private initEdit(): void {\r\n const campaign = localStorage.getItem('telin.campaign')\r\n ? JSON.parse(localStorage.getItem('telin.campaign'))\r\n : {};\r\n\r\n if (Object.entries(campaign).length === 0) return;\r\n\r\n this.form.get('id').setValue(campaign?.generalInformation?.id);\r\n this.form.get('campaignName').setValue(campaign?.generalInformation?.form.campaignName);\r\n this.form.get('medium').setValue(campaign?.generalInformation?.form.medium);\r\n }\r\n\r\n private initDisable(): void {\r\n if (!this.isReadOnlyMode) {\r\n return;\r\n }\r\n\r\n this.form.disable();\r\n }\r\n\r\n public updateGeneralInformationForm(form: FormGroup): void {\r\n this.generalInformationForm = form;\r\n this.isShowMore = false;\r\n\r\n this.generalInformation.emit({\r\n parent: this.form,\r\n child: this.generalInformationForm,\r\n });\r\n\r\n if (this.getMedia === 'LOCATION') this.getLocation();\r\n }\r\n\r\n get getHeader(): string {\r\n return this.generalInformationForm?.getRawValue()?.from?.name || '';\r\n }\r\n\r\n get getBodyString(): string {\r\n const body =\r\n this.generalInformationForm?.getRawValue()?.text ||\r\n this.generalInformationForm?.getRawValue()?.template?.body?.text ||\r\n this.generalInformationForm?.getRawValue()?.body?.text;\r\n\r\n return (\r\n body\r\n ?.split(/\\\\n|\\n/)\r\n .join('<br />')\r\n .split(/\\\\t|\\t/)\r\n .join(' ') ?? ''\r\n );\r\n }\r\n\r\n get getBody(): any {\r\n const body =\r\n this.generalInformationForm?.getRawValue()?.text ||\r\n this.generalInformationForm?.getRawValue()?.template?.body?.text ||\r\n this.generalInformationForm?.getRawValue()?.body?.text;\r\n\r\n return this.sanitizer.bypassSecurityTrustHtml(\r\n this.fixGeneratedHtml(\r\n body\r\n ?.split(/\\\\n|\\n/)\r\n .join('<br />')\r\n .split(/\\\\t|\\t/)\r\n .join(' ') ?? ''\r\n )\r\n );\r\n }\r\n\r\n get getMedia(): string {\r\n return this.generalInformationForm?.getRawValue()?.media || '';\r\n }\r\n\r\n get getTemplate(): any {\r\n return this.generalInformationForm?.getRawValue()?.template || {};\r\n }\r\n\r\n get getTemplateButton(): any {\r\n const limit =\r\n !this.isShowMore && this.getTemplate?.buttons?.length > 3\r\n ? 2\r\n : this.getTemplate?.buttons?.length;\r\n\r\n return [...this.getTemplate?.buttons].splice(0, limit) || [];\r\n }\r\n\r\n get displayFile(): string {\r\n return (\r\n (\r\n this.generalInformationForm?.getRawValue()?.targetURL ||\r\n this.generalInformationForm?.getRawValue()?.template?.header?.url\r\n )?.replace('adlsandbox.com', 'adlsandbox.net') ?? ''\r\n );\r\n }\r\n\r\n /* LINE */\r\n get isText(): boolean {\r\n return this.generalInformationForm?.getRawValue()?.channel === 'TEXT';\r\n }\r\n\r\n get isJSON(): boolean {\r\n return this.generalInformationForm?.getRawValue()?.isJSON;\r\n }\r\n\r\n get getTemplateLine(): any {\r\n return this.isJSON\r\n ? JSON.parse(this.generalInformationForm?.getRawValue()?.template?.body?.text)\r\n : this.generalInformationForm?.getRawValue()?.template?.body?.text;\r\n }\r\n /* ./ LINE */\r\n\r\n private getLocation(): void {\r\n this.maps.latitude = this.generalInformationForm?.getRawValue()?.latitude;\r\n this.maps.longitude = this.generalInformationForm?.getRawValue()?.longitude;\r\n }\r\n\r\n private fixGeneratedHtml(htmlString) {\r\n return htmlString\r\n .replaceAll(/div src=\"http/g, 'img src=\"http')\r\n .replaceAll(/div src=\"data:image/g, 'img src=\"data:image')\r\n .replaceAll(/Drag and drop your image here/g, '');\r\n }\r\n\r\n public onCheckTwilioCounter = (): void => {\r\n const valuesGeneral = this.generalInformationForm?.getRawValue();\r\n if (valuesGeneral?.channel === 'TEXT') {\r\n const segmentedMessage = new SegmentedMessage(this.getBodyString);\r\n const result = {\r\n segments: segmentedMessage.segmentsCount,\r\n encoding: segmentedMessage.encodingName,\r\n characters: segmentedMessage.numberOfUnicodeScalars,\r\n };\r\n\r\n this.twilioResultCounter = {\r\n ...result,\r\n fulltext: `Encode ${result.encoding} / Chars ${result.characters} / Segment ${result.segments}`,\r\n };\r\n } else {\r\n let valueResult = this.getBodyString;\r\n Array.from(valuesGeneral?.template?.body?.examples || []).map((entry, index) => {\r\n const placeholder = `{{${entry}}}`;\r\n const value = valuesGeneral.paramBody[index]?.name;\r\n valueResult = valueResult.split(placeholder).join(value);\r\n });\r\n\r\n const segmentedMessage = new SegmentedMessage(valueResult);\r\n const result = {\r\n segments: segmentedMessage.segmentsCount,\r\n encoding: segmentedMessage.encodingName,\r\n characters: segmentedMessage.numberOfUnicodeScalars,\r\n };\r\n\r\n this.twilioResultCounter = {\r\n ...result,\r\n fulltext: `Encode ${result.encoding} / Chars ${result.characters} / Segment ${result.segments}`,\r\n };\r\n }\r\n };\r\n}\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { HttpBodyReqPaginationModel } from '../../../../core/models';\r\nimport { Parameter } from '../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../core/services';\r\nimport { downloadBlobFile } from '../../../../core/util';\r\nimport { ContactCategoryModel } from '../../../models';\r\nimport { TableModel } from '../../campaign-index/models';\r\n\r\n@Component({\r\n selector: 'lib-new-number-bases',\r\n templateUrl: './new-number-bases.component.html',\r\n styleUrls: ['./new-number-bases.component.scss'],\r\n})\r\nexport class NewNumberBasesComponent implements OnInit, OnDestroy {\r\n @Output()\r\n public targetAudience: EventEmitter<{\r\n targetAudience: string[];\r\n numberCount: number;\r\n isUpload: boolean;\r\n file: any;\r\n }>;\r\n\r\n public table: TableModel;\r\n public isUpload: boolean = false;\r\n public isLoading: boolean = false;\r\n public isShowUploadCSV: boolean = false;\r\n public categorySelected: ContactCategoryModel[] = [];\r\n public selection = new SelectionModel<ContactCategoryModel>(true, []);\r\n public extFileAccepted: string[] = [\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n '.csv',\r\n ];\r\n public fileSelected: {\r\n name: string;\r\n targetURL: string;\r\n } = null;\r\n\r\n private categoryParam: HttpBodyReqPaginationModel;\r\n private subscribers: Subscription[] = [];\r\n\r\n @Input() public isReadOnlyMode: boolean;\r\n\r\n @ViewChild(MatSort) matSort: MatSort;\r\n\r\n constructor(\r\n private apiAdapterService: ApiAdapterServiceService,\r\n private toastr: ToastrService\r\n ) {\r\n this.targetAudience = new EventEmitter();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.categoryParam = new HttpBodyReqPaginationModel();\r\n\r\n this.initTable();\r\n this.getCategoryList();\r\n\r\n this.targetAudience.emit({\r\n targetAudience: [],\r\n numberCount: 0,\r\n isUpload: this.getCampaignStorage?.generalInformation?.form?.isUpload,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n }\r\n\r\n private initTable(): void {\r\n this.table = new TableModel();\r\n this.table.labels = [\r\n 'select',\r\n 'Category',\r\n 'No. Of Customer',\r\n 'Created Date',\r\n 'Updated Date',\r\n ];\r\n this.table.columns = ['select', 'name', 'totalMembers', 'createdDate', 'updatedDate'];\r\n }\r\n\r\n get getCampaignStorage(): any {\r\n return localStorage.getItem('telin.campaign')\r\n ? JSON.parse(localStorage.getItem('telin.campaign'))\r\n : {};\r\n }\r\n\r\n private initEdit(): void {\r\n if (Object.entries(this.getCampaignStorage).length === 0) return;\r\n\r\n const genInfoForm = this.getCampaignStorage?.generalInformation?.form;\r\n this.isShowUploadCSV = genInfoForm?.isUpload || genInfoForm?.isDownloadVariableXLS;\r\n\r\n this.fileSelected = {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n };\r\n\r\n this.table.dataSource.data?.forEach((each) => {\r\n if (this.getCampaignStorage?.targetAudience?.includes(each.id))\r\n this.onChecked(true, each);\r\n });\r\n }\r\n\r\n private getCategoryList(filter: string = ''): void {\r\n this.isLoading = true;\r\n\r\n if (this.isReadOnlyMode) this.categoryParam.pageSize = 1000;\r\n\r\n const parameterList: Array<Parameter> = [\r\n this.initParam('pageNo', this.categoryParam.pageNo, 'number'),\r\n this.initParam('rowPerPage', this.categoryParam.pageSize, 'number'),\r\n this.initParam('filter', filter, 'string'),\r\n this.initParam(\r\n 'platform',\r\n this.getCampaignStorage?.generalInformation?.form?.medium,\r\n 'string'\r\n ),\r\n ];\r\n\r\n if (this.getCampaignStorage?.generalInformation?.form?.medium === 'LINE')\r\n parameterList.push(\r\n this.initParam(\r\n 'accountId',\r\n this.getCampaignStorage?.generalInformation?.form?.from?.id,\r\n 'string'\r\n )\r\n );\r\n\r\n if (this.isReadOnlyMode) parameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/admin/category', 'GET')\r\n .subscribe((resp: AppResponse<ContactCategoryModel[]>) => {\r\n if (this.isReadOnlyMode) {\r\n this.table.dataSource.data = resp.data?.filter((each) =>\r\n this.getCampaignStorage?.targetAudience?.includes(each.id)\r\n );\r\n\r\n this.categorySelected = this.table.dataSource.data;\r\n this.isLoading = false;\r\n this.initEdit();\r\n return;\r\n }\r\n\r\n this.table.dataSource.data = resp.data;\r\n this.table.setNextPage(resp.haveNext);\r\n this.isLoading = false;\r\n this.initEdit();\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private initParam(_name: string, _value: any, _type: string): Parameter {\r\n return {\r\n name: _name,\r\n value: _value,\r\n in: 'query',\r\n type: _type,\r\n };\r\n }\r\n\r\n public updateSearch(searchValue: string): void {\r\n this.table.resetPage();\r\n this.categoryParam.pageNo = this.table.page;\r\n this.getCategoryList(searchValue);\r\n }\r\n\r\n public updatePage(event: any): void {\r\n if (this.table.pageSize !== event?.pageSize) this.table.resetPage();\r\n\r\n this.table.page =\r\n this.table.pageSize !== event?.pageSize ? this.table.page : event?.pageIndex + 1;\r\n this.table.pageSize = event?.pageSize;\r\n this.categoryParam.pageNo = this.table.page;\r\n this.categoryParam.pageSize = this.table.pageSize;\r\n\r\n this.getCategoryList();\r\n }\r\n\r\n public sort(): void {\r\n this.table.dataSource.sort = this.matSort;\r\n }\r\n\r\n public checkboxLabel(row?: ContactCategoryModel): string {\r\n if (!row) return `${this.isAllSelected() ? 'deselect' : 'select'} all`;\r\n\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.name + 1}`;\r\n }\r\n\r\n public isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.table.dataSource.data?.length ?? 0;\r\n\r\n if (\r\n this.table.dataSource.data &&\r\n this.table.dataSource.data.length > 0 &&\r\n this.selection.selected &&\r\n this.selection.selected.length > 0\r\n ) {\r\n for (const data of this.table.dataSource.data) {\r\n if (this.selection.selected.filter((t) => t.id === data.id).length > 0) continue;\r\n\r\n return false;\r\n }\r\n }\r\n\r\n return numSelected === numRows;\r\n }\r\n\r\n public masterToggle(isChecked: boolean) {\r\n if (!isChecked) {\r\n this.selection.clear();\r\n this.categorySelected = [];\r\n\r\n this.targetAudience.emit({\r\n targetAudience: [],\r\n numberCount: 0,\r\n isUpload: this.isShowUploadCSV,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.selection.select(...this.table.dataSource.data);\r\n this.categorySelected = this.selection.selected;\r\n\r\n this.targetAudience.emit({\r\n targetAudience: this.categorySelected.map((t) => t.id),\r\n numberCount: this.categorySelected.reduce((sum, x) => sum + x.totalMembers, 0),\r\n isUpload: this.isShowUploadCSV,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n }\r\n\r\n public onChecked(isChecked: boolean, row: ContactCategoryModel) {\r\n if (!isChecked) {\r\n this.selection.deselect(...this.selection.selected.filter((x) => x.id === row.id));\r\n this.categorySelected = this.selection.selected;\r\n\r\n this.targetAudience.emit({\r\n targetAudience: this.categorySelected.map((t) => t.id),\r\n numberCount: this.categorySelected.reduce((sum, x) => sum + x.totalMembers, 0),\r\n isUpload: this.isShowUploadCSV,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.selection.select(row);\r\n this.categorySelected = this.selection.selected;\r\n\r\n this.targetAudience.emit({\r\n targetAudience: this.categorySelected.map((t) => t.id),\r\n numberCount: this.categorySelected.reduce((sum, x) => sum + x.totalMembers, 0),\r\n isUpload: this.isShowUploadCSV,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n }\r\n\r\n public isChecked(row: ContactCategoryModel) {\r\n const found = this.selection.selected.find((x) => x.id === row.id);\r\n return found ? true : false;\r\n }\r\n\r\n public onDownloadSampleService(): void {\r\n const genInfoForm = this.getCampaignStorage?.generalInformation?.form;\r\n const isNeedSave = genInfoForm?.isNeedSave;\r\n\r\n // 1. Parameter Wajib (Selalu dikirim di semua skenario)\r\n const parameterList: Array<Parameter> = [\r\n this.initParam('platform', genInfoForm?.template?.platform || 'WA', 'string'),\r\n this.initParam(\r\n 'category',\r\n this.categorySelected?.map((t) => t.id).join() ?? '', // <-- Category selalu dikirim\r\n 'string'\r\n ),\r\n ];\r\n\r\n if (isNeedSave) {\r\n // SKENARIO 1: USE EXISTING / TEMPLATE SUDAH DISAVE\r\n parameterList.push(\r\n this.initParam('templateName', genInfoForm?.template?.name, 'string'),\r\n this.initParam('templateLang', genInfoForm?.template?.lang, 'string')\r\n );\r\n } else {\r\n // SKENARIO 2: CREATE NEW / DIRECT SEND (Belum di-save)\r\n\r\n // Cek aman: Kirim templateName & Lang HANYA kalau ada (biar nggak undefined)\r\n if (genInfoForm?.template?.name) {\r\n parameterList.push(\r\n this.initParam('templateName', genInfoForm?.template?.name, 'string')\r\n );\r\n }\r\n if (genInfoForm?.template?.lang) {\r\n parameterList.push(\r\n this.initParam('templateLang', genInfoForm?.template?.lang, 'string')\r\n );\r\n }\r\n\r\n // Variabel khusus Direct Send\r\n const safeBodyText = encodeURIComponent(genInfoForm?.text || '');\r\n parameterList.push(this.initParam('bodyText', safeBodyText, 'string'));\r\n\r\n if (genInfoForm?.template?.header?.text) {\r\n const safeHeaderText = encodeURIComponent(genInfoForm.template.header.text);\r\n parameterList.push(this.initParam('headerText', safeHeaderText, 'string'));\r\n }\r\n }\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/message/bulkupload/template', 'GET', true)\r\n .subscribe((resp: AppResponse<any>) => {\r\n downloadBlobFile(resp, 'Sample-UploadParameter.xlsx');\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public onFileSelected(event: Event) {\r\n const file: FileList = (event.target as HTMLInputElement).files;\r\n const MAXIMUM_SIZE = 30 * 1024 * 1024;\r\n\r\n if (file.length === 0) return;\r\n\r\n if (file[0].size > MAXIMUM_SIZE) {\r\n this.toastr.error('Upload media failed, max size 30mb');\r\n return;\r\n }\r\n\r\n this.getPresignedUrlService(file[0]);\r\n }\r\n\r\n private getPresignedUrlService(file: File): void {\r\n this.isUpload = true;\r\n\r\n const parameterList: Array<Parameter> = [\r\n { name: 'fileName', value: file.name, in: 'query', type: 'string' },\r\n { name: 'fileType', value: file.type, in: 'query', type: 'string' },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/campaign/upload/pre-signed-url', 'GET')\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n if (resp && resp.data) {\r\n this.uploadToS3Service(file, resp.data.url, resp.data.fileName);\r\n }\r\n },\r\n () => (this.isUpload = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private uploadToS3Service(file: File, s3Url: string, fileNameS3: string): void {\r\n this.apiAdapterService.uploadFileToS3(s3Url, file).subscribe(\r\n () => {\r\n this.finalizeTargetFileService(fileNameS3);\r\n },\r\n (err) => {\r\n this.toastr.error('Failed uploading to S3 storage');\r\n this.isUpload = false;\r\n console.error('S3 Upload Error:', err);\r\n }\r\n );\r\n }\r\n\r\n private finalizeTargetFileService(fileNameS3: string): void {\r\n const campaignId = this.getCampaignStorage?.generalInformation?.id;\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'body',\r\n value: { fileName: fileNameS3 },\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, `/campaign/${campaignId}/targetfile`, 'POST')\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n if (!resp) return;\r\n\r\n this.toastr.info('Upload XLSX has been uploaded successfully');\r\n this.isUpload = false;\r\n\r\n this.targetAudience.emit({\r\n targetAudience: this.categorySelected.map((t) => t.id),\r\n numberCount: this.categorySelected.reduce(\r\n (sum, x) => sum + x.totalMembers,\r\n 0\r\n ),\r\n isUpload: true,\r\n file: {\r\n name: fileNameS3,\r\n targetURL: resp.data?.targetURL || '',\r\n },\r\n });\r\n },\r\n () => (this.isUpload = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscribers.forEach((each) => each.unsubscribe());\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { SchedulerMessageValidationConst } from '../../../../core/const';\r\n\r\n@Component({\r\n\tselector: 'lib-new-campaign-scheduler',\r\n\ttemplateUrl: './scheduler.component.html',\r\n\tstyleUrls: ['./scheduler.component.scss'],\r\n})\r\nexport class SchedulerComponent implements OnInit {\r\n\t@Output()\r\n\tpublic scheduler: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic minDate: Date;\r\n\tpublic validationMessages: any;\r\n\r\n\tprivate datePipe: DatePipe;\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\tconstructor(private toastr: ToastrService) {\r\n\t\tthis.datePipe = new DatePipe('en-US');\r\n\t\tthis.scheduler = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.validationMessages = SchedulerMessageValidationConst;\r\n\t\tthis.minDate = new Date();\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initEdit();\r\n\t\tthis.initDisable();\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tschedulerType: new FormControl(null, Validators.required),\r\n\t\t\tstartDate: new FormControl(null),\r\n\t\t\tstartTime: new FormControl(null),\r\n\t\t\tisRepeat: new FormControl(false),\r\n\t\t\tdelivery: new FormControl(null),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tthis.scheduler.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(isEdit: boolean = true): void {\r\n\t\tconst campaign = localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\r\n\t\tif (Object.entries(campaign).length === 0) return;\r\n\r\n\t\tif (isEdit)\r\n\t\t\tthis.form\r\n\t\t\t\t.get('schedulerType')\r\n\t\t\t\t.setValue(campaign?.scheduler?.schedulerType);\r\n\r\n\t\tthis.form.get('startDate').setValue(campaign?.scheduler?.startDate);\r\n\t\tthis.form.get('startTime').setValue(campaign?.scheduler?.startTime);\r\n\t\tthis.form.get('isRepeat').setValue(campaign?.scheduler?.isRepeat);\r\n\t\tthis.form\r\n\t\t\t.get('delivery')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.capitalizeFirstLetter(campaign?.scheduler?.delivery)\r\n\t\t\t);\r\n\t}\r\n\r\n\tprivate capitalizeFirstLetter(value: string): string {\r\n\t\tif (!value) return '';\r\n\r\n\t\treturn (\r\n\t\t\tvalue?.charAt(0).toUpperCase() + value?.slice(1).toLowerCase() ?? ''\r\n\t\t);\r\n\t}\r\n\r\n\tpublic updateSchedulerType(type: string): void {\r\n\t\tthis.form.get('schedulerType').setValue(type);\r\n\r\n\t\tif (this.form.get('schedulerType').value === 'NOW') {\r\n\t\t\tthis.form.get('startDate').setValue(null);\r\n\t\t\tthis.form.get('startDate').clearValidators();\r\n\t\t\tthis.form.get('startDate').updateValueAndValidity();\r\n\t\t\tthis.form.get('startTime').setValue(null);\r\n\t\t\tthis.form.get('startTime').clearValidators();\r\n\t\t\tthis.form.get('startTime').updateValueAndValidity();\r\n\t\t\tthis.form.get('delivery').setValue(null);\r\n\t\t\tthis.form.get('delivery').clearValidators();\r\n\t\t\tthis.form.get('delivery').updateValueAndValidity();\r\n\t\t\tthis.form.get('isRepeat').setValue(false);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('startDate').setValidators(Validators.required);\r\n\t\tthis.form.get('startDate').updateValueAndValidity();\r\n\t\tthis.form.get('startTime').setValidators(Validators.required);\r\n\t\tthis.form.get('startTime').updateValueAndValidity();\r\n\t\tthis.initEdit(false);\r\n\t}\r\n\r\n\tpublic updateTime(): void {\r\n\t\tif (!this.form.get('startDate').value) return;\r\n\r\n\t\tconst dateNow = new Date().getTime();\r\n\t\tconst startDate = new Date(\r\n\t\t\t`${this.datePipe.transform(\r\n\t\t\t\tthis.form.get('startDate').value,\r\n\t\t\t\t'yyyy-MM-dd'\r\n\t\t\t)} ${this.form.get('startTime').value}`\r\n\t\t).getTime();\r\n\r\n\t\tif (dateNow > startDate) {\r\n\t\t\tthis.form.get('startTime').setValue(null);\r\n\t\t\tthis.toastr.error('Selected time has been surpassed');\r\n\t\t}\r\n\t}\r\n\r\n\tpublic updateRepeat(isChecked: boolean): void {\r\n\t\tif (isChecked) {\r\n\t\t\tthis.form.get('delivery').setValidators(Validators.required);\r\n\t\t\tthis.form.get('delivery').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('isRepeat').setValue(null);\r\n\t\tthis.form.get('delivery').setValue(null);\r\n\t\tthis.form.get('delivery').clearValidators();\r\n\t\tthis.form.get('delivery').updateValueAndValidity();\r\n\t}\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-new-campaign-summary',\r\n\ttemplateUrl: './summary.component.html',\r\n\tstyleUrls: ['./summary.component.scss'],\r\n})\r\nexport class SummaryComponent {\r\n\t@Input() public isShowLabel: boolean;\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-wizard',\r\n\ttemplateUrl: './wizard.component.html',\r\n\tstyleUrls: ['./wizard.component.scss'],\r\n})\r\nexport class WizardComponent implements OnInit {\r\n\t@Input() positionWizard: number = 1;\r\n\t@Input() dataWizard: string[] = [];\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnInit(): void {}\r\n}\r\n","import { AgmCoreModule } from '@agm/core';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { PickerModule } from '@ctrl/ngx-emoji-mart';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { NgbDropdownModule, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as echarts from 'echarts';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { SearchModule } from '../global/search/search.module';\r\nimport { CampaignManagementComponent } from './campaign-management.component';\r\nimport { InputNumericModule } from './components/input-numeric/input-numeric.module';\r\nimport { CampaignIndexModule } from './modules/campaign-index/campaign-index.module';\r\nimport { PendingApprovalDialogViewComponent } from './modules/campaign-index/dialog/pending-approval-dialog-view';\r\nimport { DashboardModule } from './modules/dashboard/dashboard.module';\r\nimport { NewCampaignComponent } from './modules/new-campaign';\r\nimport { GeneralInformationEmailComponent } from './modules/new-campaign/components/general-information-email';\r\nimport { GeneralInformationLineComponent } from './modules/new-campaign/components/general-information-line';\r\nimport { GeneralInformationSMSComponent } from './modules/new-campaign/components/general-information-sms';\r\nimport { GeneralInformationWAComponent } from './modules/new-campaign/components/general-information-wa';\r\nimport { FailoverMechanismComponent } from './modules/new-campaign/failover-mechanism';\r\nimport { GeneralInformationComponent } from './modules/new-campaign/general-information';\r\nimport { NewNumberBasesComponent } from './modules/new-campaign/new-number-bases';\r\nimport { SchedulerComponent } from './modules/new-campaign/scheduler';\r\nimport { SummaryComponent } from './modules/new-campaign/summary';\r\nimport { WizardComponent } from './modules/wizard';\r\n\r\n@NgModule({\r\n declarations: [\r\n CampaignManagementComponent,\r\n WizardComponent,\r\n NewCampaignComponent,\r\n GeneralInformationComponent,\r\n SchedulerComponent,\r\n SummaryComponent,\r\n NewNumberBasesComponent,\r\n GeneralInformationLineComponent,\r\n GeneralInformationWAComponent,\r\n GeneralInformationSMSComponent,\r\n GeneralInformationEmailComponent,\r\n PendingApprovalDialogViewComponent,\r\n FailoverMechanismComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyCHReBe_RpzAgLTrUC5QIDyeKttQ817wRY',\r\n libraries: ['places'],\r\n }),\r\n DashboardModule,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatRadioModule,\r\n MatListModule,\r\n MatButtonModule,\r\n NgxEchartsModule.forRoot({\r\n echarts,\r\n }),\r\n MatIconModule,\r\n PickerModule,\r\n AngularEditorModule,\r\n MatDialogModule,\r\n MatTabsModule,\r\n MatBadgeModule,\r\n NgbDropdownModule,\r\n NgbPaginationModule,\r\n MatCardModule,\r\n MatTableModule,\r\n MatCheckboxModule,\r\n MatPaginatorModule,\r\n MatGridListModule,\r\n MatDatepickerModule,\r\n MatSortModule,\r\n SearchModule,\r\n MatDividerModule,\r\n MatProgressSpinnerModule,\r\n MatSlideToggleModule,\r\n DragDropModule,\r\n CampaignIndexModule,\r\n InputNumericModule,\r\n ],\r\n exports: [CampaignManagementComponent, SummaryComponent],\r\n entryComponents: [PendingApprovalDialogViewComponent],\r\n providers: [DatePipe],\r\n})\r\nexport class CampaignManagementModule {}\r\n","import { AgmCoreModule } from '@agm/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { AdlCampaignManagementLibraryInternalComponent } from './adl-campaign-management-library-internal.component';\r\nimport { CampaignManagementModule } from './campaign-management/campaign-management.module';\r\nimport { CustomPaginator } from './core/util';\r\n\r\n@NgModule({\r\n\tdeclarations: [AdlCampaignManagementLibraryInternalComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tAgmCoreModule.forRoot({\r\n\t\t\tapiKey: 'AIzaSyCHReBe_RpzAgLTrUC5QIDyeKttQ817wRY',\r\n\t\t\tlibraries: ['places'],\r\n\t\t}),\r\n\t\tCampaignManagementModule,\r\n\t\tNgxEchartsModule,\r\n\t\tMatCardModule,\r\n\t\tHttpClientModule,\r\n\t\tToastrModule.forRoot(),\r\n\t],\r\n\texports: [AdlCampaignManagementLibraryInternalComponent],\r\n\tproviders: [{ provide: MatPaginatorIntl, useClass: CustomPaginator }],\r\n})\r\nexport class AdlCampaignManagementLibraryInternalModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { ConfirmationComponent } from './confirmation';\r\n\r\n@NgModule({\r\n\tdeclarations: [ConfirmationComponent],\r\n\timports: [CommonModule, MatDialogModule, MatButtonModule],\r\n\texports: [ConfirmationComponent]\r\n})\r\nexport class ConfirmationModule {}\r\n"],"names":["Component","Subject","EventEmitter","FormControl","debounceTime","Output","Input","NgModule","CommonModule","FormsModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatButtonModule","MatIconModule","ControlContainer","ContentChild","NG_VALUE_ACCESSOR","forwardRef","SELECT_ITEM_HEIGHT_EM","takeUntil","fromEvent","tap","MatSelect","NgZone","Directive","HttpHeaders","catchError","of","HttpClient","Injectable","MatTableDataSource","DatePipe","MatPaginatorIntl","HttpParams","FormGroup","Inject","MAT_DIALOG_DATA","MatDialogRef","ToastrService","MatDialog","ViewChild","MatSort","MatDatepickerModule","MatTableModule","MatSortModule","MatPaginatorModule","MatDialogModule","MatTabsModule","MatCardModule","MatCheckboxModule","MatSelectModule","MatRadioModule","MatChipsModule","NgbPaginationModule","NgbDropdownModule","MatGridListModule","MatNativeDateModule","MatToolbarModule","MatTooltipModule","MatAutocompleteModule","MatListModule","PickerModule","AngularEditorModule","MatButtonToggleModule","MatBadgeModule","NgxEchartsModule","SegmentedMessage","Validators","FormArray","AngularValidators","CustomValidators","MapsAPILoader","moveItemInArray","DomSanitizer","SelectionModel","AgmCoreModule","MatDividerModule","MatProgressSpinnerModule","MatSlideToggleModule","DragDropModule","HttpClientModule","ToastrModule"],"mappings":"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"}
1
+ {"version":3,"file":"adlfe-campaign-management-library.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@adlfe/campaign-management-library/lib/adl-campaign-management-library-internal.component.ts","ng://@adlfe/campaign-management-library/lib/global/search/search/search.component.ts","ng://@adlfe/campaign-management-library/lib/global/search/search.module.ts","ng://@adlfe/campaign-management-library/lib/core/enums/main-area.enum.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/campaign-management.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/components/input-numeric/input-numeric.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/components/input-numeric/input-numeric.module.ts","ng://@adlfe/campaign-management-library/lib/core/directives/mat-select-infinite-scroll.ts","ng://@adlfe/campaign-management-library/lib/core/models/Package.ts","ng://@adlfe/campaign-management-library/lib/core/models/base-option.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/util/http-body-req/http-body-req-pagination-global-var.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/util/http-body-req/http-body-req-pagination.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/util/index.ts","ng://@adlfe/campaign-management-library/lib/core/models/billing-param-req.component.ts","ng://@adlfe/campaign-management-library/lib/core/models/country.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/create-package-param.model.ts","ng://@adlfe/campaign-management-library/lib/core/models/http-body-resp.model.ts","ng://@adlfe/campaign-management-library/environments/environment.ts","ng://@adlfe/campaign-management-library/lib/core/services/api-adapter-service.service.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/models/campaign-table-config.const.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/models/campaigns-list.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/models/table.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/campaign-index.component.ts","ng://@adlfe/campaign-management-library/lib/core/const/constants.const.ts","ng://@adlfe/campaign-management-library/lib/core/const/create-package-service.const.ts","ng://@adlfe/campaign-management-library/lib/core/const/failover.const.ts","ng://@adlfe/campaign-management-library/lib/core/const/rate-card-table-config.ts","ng://@adlfe/campaign-management-library/lib/core/const/validation-message.const.ts","ng://@adlfe/campaign-management-library/lib/core/enums/constant.enum.ts","ng://@adlfe/campaign-management-library/lib/core/util/custom-paginator.ts","ng://@adlfe/campaign-management-library/lib/core/util/download-blob-file.ts","ng://@adlfe/campaign-management-library/lib/core/util/enum-to-option-generator.ts","ng://@adlfe/campaign-management-library/lib/core/util/http-param-generator.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/component/filter-in-list-of-campaign/filter-in-list-of-campaign.component.ts","ng://@adlfe/campaign-management-library/lib/global/confirmation/shared/shared-services.service.ts","ng://@adlfe/campaign-management-library/lib/global/confirmation/shared/model/confirmation.model.ts","ng://@adlfe/campaign-management-library/lib/global/confirmation/confirmation/confirmation.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/dialog/pending-approval-dialog-view/pending-approval-dialog-view.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/component/viewing-list-of-campaign-table/viewing-list-of-campaign-table.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/campaign-index/campaign-index.module.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/dashboard/dashboard.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/dashboard/dashboard.module.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/models/failover-req.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/models/general-information-wa-req.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/models/scheduler-req.model.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/new-campaign.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/components/general-information-email/general-information-email.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/components/general-information-line/general-information-line.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/components/general-information-sms/general-information-sms.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/util/enums.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/validators/max.validator.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/validators/min.validator.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/validators/required.validator.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/validators/index.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/components/general-information-wa/general-information-wa.component.ts","ng://@adlfe/campaign-management-library/lib/core/const/form-validators.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/failover-mechanism/failover-mechanism.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/general-information/general-information.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/new-number-bases/new-number-bases.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/scheduler/scheduler.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/new-campaign/summary/summary.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/modules/wizard/wizard.component.ts","ng://@adlfe/campaign-management-library/lib/campaign-management/campaign-management.module.ts","ng://@adlfe/campaign-management-library/lib/adl-campaign-management-library-internal.module.ts","ng://@adlfe/campaign-management-library/lib/global/confirmation/confirmation.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-adl-campaign-management-library-internal',\r\n\ttemplate: `\r\n\t\t<p>\r\n\t\t\t<lib-campaign-management></lib-campaign-management>\r\n\t\t</p>\r\n\t`,\r\n})\r\nexport class AdlCampaignManagementLibraryInternalComponent {}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n\tselector: 'lib-search',\r\n\ttemplateUrl: './search.component.html',\r\n\tstyleUrls: ['./search.component.scss'],\r\n})\r\nexport class SearchComponent implements OnInit {\r\n\t@Output()\r\n\tpublic searchRes: EventEmitter<string>;\r\n\r\n\tpublic form: FormControl;\r\n\r\n\tprivate debounceSubject = new Subject();\r\n\r\n\t@Input()\r\n\tpublic placeholder: string;\r\n\r\n\t@Input()\r\n\tpublic currentValue: string;\r\n\r\n\tconstructor() {\r\n\t\tthis.searchRes = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.form = new FormControl(this.currentValue ?? '');\r\n\r\n\t\tthis.debounceSubject.pipe(debounceTime(500)).subscribe((value: any) => {\r\n\t\t\tthis.searchRes.emit(value.toLowerCase());\r\n\t\t});\r\n\t}\r\n\r\n\tpublic searchResult(event: any) {\r\n\t\tthis.debounceSubject.next(event.target.value);\r\n\t}\r\n\r\n\tpublic clearInput(): void {\r\n\t\tthis.form.setValue('');\r\n\t\tthis.searchRes.emit(this.form.value);\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SearchComponent } from './search/search.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\n\r\n@NgModule({\r\n declarations: [SearchComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatButtonModule,\r\n\t\tMatIconModule,\r\n ],\r\n exports: [\r\n SearchComponent\r\n ]\r\n})\r\nexport class SearchModule { }\r\n","export enum MainArea {\r\n 'Dashboard' = 1,\r\n 'CampaignIndex' = 2,\r\n 'CreateCampaign' = 3,\r\n 'NewCampaign' = 4,\r\n 'UpdateNumberBases' = 5,\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MainArea } from '../core/enums/main-area.enum';\r\n\r\n@Component({\r\n\tselector: 'lib-campaign-management',\r\n\ttemplateUrl: './campaign-management.component.html',\r\n\tstyleUrls: [],\r\n})\r\nexport class CampaignManagementComponent {\r\n\tpublic currentView: MainArea = MainArea.CampaignIndex;\r\n\tpublic currentViews = MainArea;\r\n\r\n\tconstructor() {\r\n\t\t/* Init Localstorage (Local Only) */\r\n\t\t/* const data = {\r\n\t\t\t'telin.accessToken':\r\n\t\t\t\t'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRJZCI6IlBST1ZJREVSIiwiZXhwIjoxNzA4MDAyNzI4LCJpYXQiOjE3MDc5Nzg3MjgsIm5iZiI6MTcwNzk3ODcyOCwic2Vzc2lvbklkIjoiMDFIUE5RRTk5N0E3SkZLNjk1QTgyWEtTWkEiLCJ1c2VySWQiOiJhZG1pbiJ9.JWn1gRtlU6SYHa3KkP2FLhje9tvhxsD005dtxmTT5z4-lc65ekiClS5r7Wg8vamUappN_9uQINTJeZCjEU1IwYf6InUddxX6XsDWtCwixuePNq4JZMPrCUl_N4DBewPwL30RRrodoo0dxUstHLbTg9BUZ3qPq1QK6pLyd1HhKtN_jkRJ11VP2hEl6ef364ofmZvByDTKO56ah0GYzpxZ1uxvNV9PsyiuQk_drxE6x7PI7n-yH_H00zauMF6FYhTgv0SbqIRGQr-O8MKl1mbmk3efSdEr3gx6Q-bztG8p_jgOPWjVf4ol_6gfqtMOrlxTe2UJeR23fhWXCbp0ld20HpjgeIlkawoqpj8_TsjsnsPYk5epC2h5YVXrCuozWw5GnxYg7LDSx0CGQhe2JNRSy92b3hSvSahTQ0rKbmVDyvCIcRVhk2RO4Ilc-ddx4HhB8fcvbSVTAPBnI0A9NkPKSYKXA5SwiIlcPqex15BBG4zBbEX7D4JWr4925t2--WXkUIjsKvteOx0u9OhcBTbajahVepTNByNyqdKrJzdShWTBXw4mRNprL57ZZ3qFdCA6-11FcmeRkpDRqUX7kAXloFKBtcOECNjUpLNkf4FmT687-gt1R0xGIJsTatLSsc2K4Xr1TpTiuC7D3xledvsGTC07UuDgVQBb7AkN1Kch3Mg',\r\n\t\t\t'telin.clientId': 'PROVIDER',\r\n\t\t\t'telin.clientName': 'Provider',\r\n\t\t\t'telin.email': 'admin@bsp.com',\r\n\t\t\t'telin.id': 'admin',\r\n\t\t\t'telin.name': 'admin',\r\n\t\t\t'telin.roleCode': 'admin',\r\n\t\t\t'telin.roleId': 'admin',\r\n\t\t\t'telin.roleName': 'Administrator',\r\n\t\t\t'telin.roles':\r\n\t\t\t\t'[{\"isClientRole\":false,\"name\":\"Administrator\",\"code\":\"admin\",\"id\":\"admin\"}]',\r\n\t\t};\r\n\r\n\t\tObject.keys(data).forEach(function (k) {\r\n\t\t\tlocalStorage.setItem(k, data[k]);\r\n\t\t}); */\r\n\t\t/* Init Localstorage (Local Only) */\r\n\t}\r\n\r\n\tonChangeMainArea(area: MainArea): void {\r\n\t\tthis.currentView = area;\r\n\t}\r\n}\r\n","import { Component, ContentChild, forwardRef, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport {\r\n ControlContainer,\r\n ControlValueAccessor,\r\n FormControl,\r\n FormGroup,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-input[type=numeric]',\r\n templateUrl: './input-numeric.component.html',\r\n styleUrls: ['./input-numeric.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputNumericComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputNumericComponent implements ControlValueAccessor, OnInit {\r\n @Input() formControlName: string;\r\n @Input() formControl: FormControl;\r\n @Input() trimLeadingZeros: boolean;\r\n @Input() disallowLeadingZero: boolean;\r\n @Input() allowDecimal: boolean = true;\r\n @Input() identifier: string;\r\n @Input() placeholder: string;\r\n @Input() label: string;\r\n @Input() maxLength: number;\r\n @Input() suffix: string;\r\n @Input() hint: string;\r\n\r\n @ContentChild('suffix') suffixTmpl: TemplateRef<any>;\r\n\r\n private _value: any;\r\n private _isDisabled: boolean;\r\n private _onBaseChange: () => void;\r\n private _onBaseTouched: () => void;\r\n\r\n constructor(private controlContainer: ControlContainer) {}\r\n\r\n public handleInput(event: Event): void {\r\n const inputElement = event.target as HTMLInputElement;\r\n const value = inputElement.value || '';\r\n\r\n let numeric = this.allowDecimal ? value.replace(/[^0-9.]/g, '') : value.replace(/\\D/g, '');\r\n\r\n if (this.allowDecimal) {\r\n const parts = numeric.split('.');\r\n if (parts.length > 2) {\r\n numeric = parts[0] + '.' + parts.slice(1).join('');\r\n }\r\n }\r\n\r\n if (\r\n this.disallowLeadingZero &&\r\n numeric.startsWith('0') &&\r\n numeric.length > 1 &&\r\n numeric[1] !== '.'\r\n ) {\r\n numeric = numeric.replace(/^0+/, '');\r\n }\r\n\r\n let finalValue: string | number = numeric;\r\n if (this.trimLeadingZeros && numeric !== '' && !numeric.includes('.')) {\r\n finalValue = +numeric;\r\n }\r\n\r\n this.formControl.patchValue(finalValue, { emitEvent: false });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setBaseStateInitialization();\r\n }\r\n\r\n private setBaseStateInitialization(): void {\r\n if (!this.formControlName) return;\r\n const formGroup = this.controlContainer.control as FormGroup;\r\n this.formControl = formGroup.get(this.formControlName) as FormControl;\r\n }\r\n\r\n public get isValid(): boolean {\r\n return !!(this.formControl?.touched && this.formControl?.valid);\r\n }\r\n\r\n public get isInvalid(): boolean {\r\n return !!(this.formControl?.touched && this.formControl?.invalid);\r\n }\r\n\r\n public get errors(): ValidationErrors | null {\r\n return this.formControl.errors;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this._value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onBaseChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onBaseTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._isDisabled = isDisabled;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { InputNumericComponent } from './input-numeric.component';\r\n\r\n@NgModule({\r\n imports: [MatFormFieldModule, MatInputModule, ReactiveFormsModule, CommonModule],\r\n declarations: [InputNumericComponent],\r\n exports: [InputNumericComponent],\r\n})\r\nexport class InputNumericModule {}\r\n","import {\r\n\tAfterViewInit,\r\n\tDirective,\r\n\tEventEmitter,\r\n\tInput,\r\n\tNgZone,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { MatSelect, SELECT_ITEM_HEIGHT_EM } from '@angular/material/select';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport { debounceTime, takeUntil, tap } from 'rxjs/operators';\r\n\r\n@Directive({\r\n\tselector: '[matSelectInfiniteScroll]',\r\n})\r\nexport class MatSelectInfiniteScrollDirective\r\n\timplements OnInit, OnDestroy, AfterViewInit\r\n{\r\n\t@Input() threshold = '15%';\r\n\t@Input() debounceTime = 150;\r\n\t@Input() complete: boolean;\r\n\t@Output() infiniteScroll = new EventEmitter<void>();\r\n\r\n\tprivate panel: Element;\r\n\tprivate thrPx = 0;\r\n\tprivate thrPc = 0;\r\n\tprivate singleOptionHeight = SELECT_ITEM_HEIGHT_EM;\r\n\tprivate destroyed$ = new Subject<boolean>();\r\n\r\n\tconstructor(private matSelect: MatSelect, private ngZone: NgZone) {}\r\n\r\n\tngOnInit() {\r\n\t\tthis.evaluateThreshold();\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.matSelect.openedChange\r\n\t\t\t.pipe(takeUntil(this.destroyed$))\r\n\t\t\t.subscribe(opened => {\r\n\t\t\t\tif (opened) {\r\n\t\t\t\t\tthis.panel = this.matSelect.panel.nativeElement;\r\n\t\t\t\t\tthis.singleOptionHeight = this.getSelectItemHeightPx();\r\n\t\t\t\t\tthis.registerScrollListener();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.destroyed$.next(true);\r\n\t\tthis.destroyed$.complete();\r\n\t}\r\n\r\n\tevaluateThreshold() {\r\n\t\tif (this.threshold.lastIndexOf('%') > -1) {\r\n\t\t\tthis.thrPx = 0;\r\n\t\t\tthis.thrPc = parseFloat(this.threshold) / 100;\r\n\t\t} else {\r\n\t\t\tthis.thrPx = parseFloat(this.threshold);\r\n\t\t\tthis.thrPc = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tregisterScrollListener() {\r\n\t\tfromEvent(this.panel, 'scroll')\r\n\t\t\t.pipe(\r\n\t\t\t\ttakeUntil(this.destroyed$),\r\n\t\t\t\tdebounceTime(this.debounceTime),\r\n\t\t\t\ttap(event => {\r\n\t\t\t\t\tthis.handleScrollEvent(event);\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t\t.subscribe();\r\n\t}\r\n\r\n\thandleScrollEvent(event) {\r\n\t\tthis.ngZone.runOutsideAngular(() => {\r\n\t\t\tif (this.complete) return;\r\n\r\n\t\t\tconst countOfRenderedOptions = this.matSelect.options.length;\r\n\t\t\tconst infiniteScrollDistance =\r\n\t\t\t\tthis.singleOptionHeight * countOfRenderedOptions;\r\n\t\t\tconst threshold =\r\n\t\t\t\tthis.thrPc !== 0\r\n\t\t\t\t\t? infiniteScrollDistance * this.thrPc\r\n\t\t\t\t\t: this.thrPx;\r\n\t\t\tconst scrolledDistance =\r\n\t\t\t\tthis.panel.clientHeight + event.target.scrollTop;\r\n\r\n\t\t\tif (scrolledDistance + threshold >= infiniteScrollDistance)\r\n\t\t\t\tthis.ngZone.run(() => this.infiniteScroll.emit());\r\n\t\t});\r\n\t}\r\n\r\n\tgetSelectItemHeightPx(): number {\r\n\t\treturn (\r\n\t\t\tparseFloat(getComputedStyle(this.panel).fontSize) *\r\n\t\t\tSELECT_ITEM_HEIGHT_EM\r\n\t\t);\r\n\t}\r\n}\r\n","export class PackageReqModel {\r\n\tpublic name: string;\r\n\tpublic monthlyRental: number;\r\n\tpublic conversationMsg: string;\r\n\tpublic businessMsg: string;\r\n\tpublic contacts: string;\r\n\tpublic isMultipleFlow: boolean;\r\n\tpublic tps: number;\r\n\tpublic multichatLiveAgent: string;\r\n\tpublic multichatLiveSupervisor: string;\r\n\tpublic numberOfFlow: string;\r\n\tpublic waOfficialAccount: string;\r\n\tpublic dashboardToSendMessage: string;\r\n\tpublic reportAdminPanel: string;\r\n\tpublic trainingSupport: string;\r\n\tpublic isMultiple: string;\r\n\tpublic checklistWa:\tboolean;\r\n\tpublic checklistTele:\tboolean;\r\n\tpublic checklistLine:\tboolean;\r\n\tpublic specifyPackage: string;\r\n\tpublic customDevelopment: string;\r\n\tpublic oneUsageCostConversation: string;\r\n\tpublic ovrUsgConversationRateCard: boolean;\r\n\tpublic ovrUsgNotficationRateCard: boolean | string;\r\n\tpublic ovrUsgConversationCost: string;\r\n\tpublic ovrUsgNotficationCost: string;\r\n\tpublic signupOrSetup: string;\r\n\tpublic checklistAdm: boolean;\r\n\tpublic checklistUser: boolean;\r\n\tpublic checklistClient: boolean;\r\n\tpublic checklistChatAgentAdmin: boolean;\r\n\tpublic checklistChatAgentUser: boolean;\r\n\tpublic country: string;\r\n\tpublic currency: string;\r\n\tpublic customPackage: boolean;\r\n\tpublic costPerCustomer: string;\r\n\tpublic costPerBusiness: string;\r\n\tpublic setupFeeRateCard: boolean | string;\r\n\tpublic setupFee: string;\r\n\tpublic type: string;\r\n\tpublic recomended: string;\r\n\r\n\t\r\n\r\n\tpublic clone(source: any): PackageReqModel {\r\n\t\tif (source.country) {\r\n\t\t\tthis.country = source.country;\r\n\t\t}\r\n\t\tif (source.recomended) {\r\n\t\t\tthis.recomended = source.recomended;\r\n\t\t}\r\n\t\tif (source.type) {\r\n\t\t\tthis.type = source.type;\r\n\t\t}\r\n\t\tif (source.setupFeeRateCard) {\r\n\t\t\tthis.setupFeeRateCard = source.setupFeeRateCard;\r\n\t\t}\r\n\t\tif (source.setupFee) {\r\n\t\t\tif(source.setupFeeRateCard === 'true') {\r\n\t\t\t\tthis.setupFee = null;\r\n\t\t\t}else {\r\n\t\t\t\tthis.setupFee = source.setupFee;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (source.ovrUsgConversationRateCard) {\r\n\t\t\tthis.ovrUsgConversationRateCard = source.ovrUsgConversationRateCard;\r\n\t\t}\r\n\t\tif (source.costPerCustomer) {\r\n\t\t\tthis.costPerCustomer = source.costPerCustomer;\r\n\t\t}\r\n\t\tif (source.costPerBusiness) {\r\n\t\t\tthis.costPerBusiness = source.costPerBusiness;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotficationRateCard) {\r\n\t\t\t\tthis.ovrUsgNotficationRateCard = source.ovrUsgNotficationRateCard;\r\n\t\t}\r\n\t\tif (source.ovrUsgConversationCost) {\r\n\t\t\tthis.ovrUsgConversationCost = source.ovrUsgConversationCost;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotficationCost) {\r\n\t\t\tif(source.ovrUsgNotficationRateCard === 'true') {\r\n\t\t\t\tthis.ovrUsgNotficationCost = null;\r\n\t\t\t}else {\r\n\t\t\t\tthis.ovrUsgNotficationCost = source.ovrUsgNotficationCost;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\tif (source.customPackage) {\r\n\t\t\tthis.customPackage = source.customPackage;\r\n\t\t}\r\n\t\tif (source.currency) {\r\n\t\t\tthis.currency = source.currency;\r\n\t\t}\r\n\t\tif (source.name) {\r\n\t\t\tthis.name = source.name;\r\n\t\t}\r\n\t\tif (source.monthlyRental) {\r\n\t\t\tthis.monthlyRental = source.monthlyRental;\r\n\t\t}\r\n\t\tif (source.conversationMsg) {\r\n\t\t\tthis.conversationMsg = source.conversationMsg;\r\n\t\t}\r\n\t\tif (source.businessMsg) {\r\n\t\t\tthis.businessMsg = source.businessMsg;\r\n\t\t}\r\n\t\tif (source.contacts) {\r\n\t\t\tthis.contacts = source.contacts;\r\n\t\t}\r\n\t\tif (source.isMultipleFlow) {\r\n\t\t\tthis.isMultipleFlow = source.isMultipleFlow;\r\n\t\t}\r\n\t\tif (source.tps) {\r\n\t\t\tthis.tps = source.tps;\r\n\t\t}\r\n\t\tif (source.multichatLiveAgent) {\r\n\t\t\tthis.multichatLiveAgent = source.multichatLiveAgent;\r\n\t\t}\r\n\t\tif (source.multichatLiveSupervisor) {\r\n\t\t\tthis.multichatLiveSupervisor = source.multichatLiveSupervisor;\r\n\t\t}\r\n\t\tif (source.numberOfFlow) {\r\n\t\t\tthis.numberOfFlow = source.numberOfFlow;\r\n\t\t}\r\n\t\tif (source.waOfficialAccount) {\r\n\t\t\tthis.waOfficialAccount = source.waOfficialAccount;\r\n\t\t}\r\n\t\tif (source.dashboardToSendMessage) {\r\n\t\t\tthis.dashboardToSendMessage = source.dashboardToSendMessage;\r\n\t\t}\r\n\t\tif (source.reportAdminPanel) {\r\n\t\t\tthis.reportAdminPanel = source.reportAdminPanel;\r\n\t\t}\r\n\t\tif (source.trainingSupport) {\r\n\t\t\tthis.trainingSupport = source.trainingSupport;\r\n\t\t}\r\n\t\tif (source.isMultiple) {\r\n\t\t\tthis.isMultiple = source.isMultiple;\r\n\t\t}\r\n\t\tif (source.checklistWa) {\r\n\t\t\tthis.checklistWa = source.checklistWa;\r\n\t\t}\r\n\t\tif (source.checklistLine) {\r\n\t\t\tthis.checklistLine = source.checklistLine;\r\n\t\t}\r\n\t\tif (source.checklistTele) {\r\n\t\t\tthis.checklistTele = source.checklistTele;\r\n\t\t}\r\n\t\tif (source.specifyPackage) {\r\n\t\t\tthis.specifyPackage = source.specifyPackage;\r\n\t\t}\r\n\t\tif (source.customDevelopment) {\r\n\t\t\tthis.customDevelopment = source.customDevelopment;\r\n\t\t}\r\n\t\tif (source.oneUsageCostConversation) {\r\n\t\t\tthis.oneUsageCostConversation = source.oneUsageCostConversation;\r\n\t\t}\r\n\t\t// if (source.oneUsageCostNotification) {\r\n\t\t// \tthis.oneUsageCostNotification = source.oneUsageCostNotification;\r\n\t\t// }\r\n\t\tif (source.signupOrSetup) {\r\n\t\t\tthis.signupOrSetup = source.signupOrSetup;\r\n\t\t}\r\n\t\tif (source.checklistAdm) {\r\n\t\t\tthis.checklistAdm = source.checklistAdm;\r\n\t\t}\r\n\t\tif (source.checklistUser) {\r\n\t\t\tthis.checklistUser = source.checklistUser;\r\n\t\t}\r\n\t\tif (source.checklistClient) {\r\n\t\t\tthis.checklistClient = source.checklistClient;\r\n\t\t}\r\n\t\tif (source.checklistChatAgentAdmin) {\r\n\t\t\tthis.checklistChatAgentAdmin = source.checklistChatAgentAdmin;\r\n\t\t}\r\n\t\tif (source.checklistChatAgentUser) {\r\n\t\t\tthis.checklistChatAgentUser = source.checklistChatAgentUser;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n}","export class BaseOptionModel {\r\n\tpublic label: string;\r\n\tpublic value: string | number;\r\n}\r\n","export class HttpBodyReqPaginationGlobalVarModel {\r\n\tpublic pageSize: number;\r\n\tpublic pageNo: number;\r\n\r\n\tconstructor() {\r\n\t\tthis.pageSize = 3;\r\n\t\tthis.pageNo = 1;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\tpageSize: this.pageSize,\r\n\t\t\tpageNo: this.pageNo,\r\n\t\t};\r\n\t}\r\n}\r\n","export class HttpBodyReqPaginationModel {\r\n\tpublic pageSize: number;\r\n\tpublic pageNo: number;\r\n\r\n\tconstructor() {\r\n\t\tthis.pageSize = 10;\r\n\t\tthis.pageNo = 1;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\tpageSize: this.pageSize,\r\n\t\t\tpageNo: this.pageNo,\r\n\t\t};\r\n\t}\r\n}\r\n","export * from './http-body-req';\r\n// export * from './api-adapter-service-models';\r\n// export * from './api-dto';","import { HttpBodyReqPaginationModel } from \"./util\";\r\n\r\nexport class BillingParamReqModel extends HttpBodyReqPaginationModel {\r\n\tpublic filter: string;\r\n\tpublic platform: string;\r\n\tpublic clientId: string;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\tfilter: this.filter,\r\n\t\t\tplatform: this.platform,\r\n\t\t\tclientId: this.clientId,\r\n\t\t\tpageNo: String(this.pageNo),\r\n\t\t\tpageSize: String(this.pageSize),\r\n\t\t};\r\n\t}\r\n}\r\n","export class CountryModel {\r\n\tpublic category: string;\r\n\tpublic code: string;\r\n\tpublic values: string;\r\n\tpublic param1: string;\r\n\tpublic param2: boolean;\r\n\tpublic ìcon: boolean;\r\n\r\n\tpublic convert(dto: any): CountryModel {\r\n\r\n\t\tif (dto.category) {\r\n\t\t\tthis.category = dto.category;\r\n\t\t}\r\n\t\tif (dto.code) {\r\n\t\t\tthis.code = dto.code;\r\n\t\t}\r\n\t\tif (dto.values) {\r\n\t\t\tthis.values = dto.values;\r\n\t\t}\r\n\t\tif (dto.param1) {\r\n\t\t\tthis.param1 = dto.param1;\r\n\t\t}\r\n\t\tif (dto.param2) {\r\n\t\t\tthis.param2 = dto.param2;\r\n\t\t}\r\n\t\tif (dto.ìcon) {\r\n\t\t\tthis.ìcon = dto.ìcon;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n}\r\n","export class CreatePackageReqModel {\r\n\tpublic name : string;\r\n\tpublic channels : string[] = [];\r\n\tpublic customDevelopment : boolean;\r\n\tpublic maxAgent : string;\r\n\tpublic maxContact : string;\r\n\tpublic maxFlow : string;\r\n\tpublic maxSupervisor : string;\r\n\tpublic monthlyConversation : string;\r\n\tpublic monthlyNotification : string;\r\n\tpublic monthlyRental : number;\r\n\tpublic monthlyRentalRateCard : string;\r\n\tpublic ovrUsgConversation : string;\r\n\tpublic ovrUsgConversationCost : string;\r\n\tpublic ovrUsgConversationRateCard : boolean;\r\n\tpublic ovrUsgNotification : string;\r\n\tpublic ovrUsgNotificationCost : string;\r\n\tpublic ovrUsgNotificationRateCard : boolean;\r\n\tpublic reports : boolean;\r\n\tpublic roles : string;\r\n\tpublic sendMsgDashboard : boolean;\r\n\tpublic setupFee : string;\r\n\tpublic tps : number;\r\n\tpublic training : boolean;\r\n\tpublic waOfficialAcc : boolean;\r\n\tpublic customPackage: boolean;\r\n\tpublic countryCode: string;\r\n\tpublic costPerCustomer: string;\r\n\tpublic costPerBusiness: string;\r\n\tpublic setupFeeRateCard: boolean;\r\n\tpublic type: string;\r\n\tpublic recomended: string;\r\n\r\n\tpublic clone(source:any): CreatePackageReqModel {\r\n\t\tif (source.name) {\r\n\t\t\tthis.name = source.name;\r\n\t\t}\r\n\t\tif (source.type) {\r\n\t\t\tthis.type = source.type;\r\n\t\t}\r\n\t\tif (source.recomended) {\r\n\t\t\tthis.recomended = source.recomended;\r\n\t\t}\r\n\t\tif (source.setupFeeRateCard) {\r\n\t\t\tthis.setupFeeRateCard = source.setupFeeRateCard;\r\n\t\t}\r\n\t\tif (source.countryCode) {\r\n\t\t\tthis.countryCode = source.countryCode;\r\n\t\t}\r\n\t\tif (source.costPerCustomer) {\r\n\t\t\tthis.costPerCustomer = source.costPerCustomer;\r\n\t\t}\r\n\t\tif (source.costPerBusiness) {\r\n\t\t\tthis.costPerBusiness = source.costPerBusiness;\r\n\t\t}\r\n\t\tif (source.customPackage) {\r\n\t\t\tthis.customPackage = source.customPackage;\r\n\t\t}\r\n\t\tif (source.channels) {\r\n\t\t\tthis.channels = [source.channels];\r\n\t\t}\r\n\t\tif (source.customDevelopment) {\r\n\t\t\tthis.customDevelopment = source.customDevelopment;\r\n\t\t}\r\n\t\tif (source.maxAgent) {\r\n\t\t\tthis.maxAgent = source.maxAgent;\r\n\t\t}\r\n\t\tif (source.maxContact) {\r\n\t\t\tthis.maxContact = source.maxContact;\r\n\t\t}\r\n\t\tif (source.maxFlow) {\r\n\t\t\tthis.maxFlow = source.maxFlow;\r\n\t\t}\r\n\t\tif (source.maxSupervisor) {\r\n\t\t\tthis.maxSupervisor = source.maxSupervisor;\r\n\t\t}\r\n\t\tif (source.monthlyConversation) {\r\n\t\t\tthis.monthlyConversation = source.monthlyConversation;\r\n\t\t}\r\n\t\tif (source.monthlyNotification) {\r\n\t\t\tthis.monthlyNotification = source.monthlyNotification;\r\n\t\t}\r\n\t\tif (source.monthlyRental) {\r\n\t\t\tthis.monthlyRental = source.monthlyRental;\r\n\t\t}\r\n\t\tif (source.monthlyRentalRateCard) {\r\n\t\t\tthis.monthlyRentalRateCard = source.monthlyRentalRateCard;\r\n\t\t}\r\n\t\tif (source.ovrUsgConversation) {\r\n\t\t\tthis.ovrUsgConversation = source.ovrUsgConversation;\r\n\t\t}\r\n\t\tif (source.ovrUsgConversationCost) {\r\n\t\t\tthis.ovrUsgConversationCost = source.ovrUsgConversationCost;\r\n\t\t}\r\n\t\tif (source.ovrUsgConversationRateCard) {\r\n\t\t\tthis.ovrUsgConversationRateCard = source.ovrUsgConversationRateCard;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotification) {\r\n\t\t\tthis.ovrUsgNotification = source.ovrUsgNotification;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotificationCost) {\r\n\t\t\tthis.ovrUsgNotificationCost = source.ovrUsgNotificationCost;\r\n\t\t}\r\n\t\tif (source.ovrUsgNotificationRateCard) {\r\n\t\t\tthis.ovrUsgNotificationRateCard = source.ovrUsgNotificationRateCard;\r\n\t\t}\r\n\t\tif (source.reports) {\r\n\t\t\tthis.reports = source.reports;\r\n\t\t}\r\n\t\tif (source.roles) {\r\n\t\t\tthis.roles = source.roles;\r\n\t\t}\r\n\t\tif (source.sendMsgDashboard) {\r\n\t\t\tthis.sendMsgDashboard = source.sendMsgDashboard;\r\n\t\t}\r\n\t\tif (source.setupFee) {\r\n\t\t\tthis.setupFee = source.setupFee;\r\n\t\t}\r\n\t\tif (source.tps) {\r\n\t\t\tthis.tps = source.tps;\r\n\t\t}\r\n\t\tif (source.training) {\r\n\t\t\tthis.training = source.training;\r\n\t\t}\r\n\t\tif (source.waOfficialAcc) {\r\n\t\t\tthis.waOfficialAcc = source.waOfficialAcc;\r\n\t\t}\r\n\r\n\t\t\r\n\t\treturn this;\r\n\t}\r\n\r\n\tconvert(): any {\r\n\t\treturn {\r\n\t\t\tname: this.name,\r\n\t\t\tchannels : this.channels ,\r\n\t\t\tcustomDevelopment : this.customDevelopment ,\r\n\t\t\tmaxAgent : +this.maxAgent ,\r\n\t\t\tmaxContact :+this.maxContact ,\r\n\t\t\tmaxFlow : +this.maxFlow ,\r\n\t\t\tmaxSupervisor : +this.maxSupervisor ,\r\n\t\t\tmonthlyConversation : +this.monthlyConversation ,\r\n\t\t\tmonthlyNotification : +this.monthlyNotification ,\r\n\t\t\tmonthlyRental : +this.monthlyRental ,\r\n\t\t\tmonthlyRentalRateCard : this.monthlyRentalRateCard ,\r\n\t\t\tovrUsgConversation : this.ovrUsgConversation ,\r\n\t\t\tovrUsgConversationCost : +this.ovrUsgConversationCost ,\r\n\t\t\tovrUsgConversationRateCard : this.ovrUsgConversationRateCard ,\r\n\t\t\tovrUsgNotification : this.ovrUsgNotification ,\r\n\t\t\tovrUsgNotificationCost : +this.ovrUsgNotificationCost ,\r\n\t\t\tovrUsgNotificationRateCard : this.ovrUsgNotificationRateCard ,\r\n\t\t\treports : this.reports ,\r\n\t\t\troles : this.roles ,\r\n\t\t\tsendMsgDashboard : this.sendMsgDashboard ,\r\n\t\t\tsetupFee : +this.setupFee ,\r\n\t\t\ttps : +this.tps ,\r\n\t\t\ttraining : this.training ,\r\n\t\t\twaOfficialAcc : this.waOfficialAcc,\r\n\t\t\tcustomPackage: this.customPackage,\r\n\t\t\tcountryCode: this.countryCode,\r\n\t\t\tcostPerBusiness: this.costPerBusiness,\r\n\t\t\tcostPerCustomer: this.costPerCustomer,\r\n\t\t\tsetupFeeRateCard: this.setupFeeRateCard,\r\n\t\t\ttype: this.type,\r\n\t\t\trecomended: this.recomended\r\n\t\t};\r\n\t}\r\n}","export class HttpBodyRespModel {\r\n\tpublic status: number;\r\n\tpublic errorCode: number;\r\n\tpublic message: string;\r\n\tpublic data: any;\r\n\tpublic totalRecord: number;\r\n\r\n\tpublic convert(dto: any): HttpBodyRespModel {\r\n\t\tif (dto.status) {\r\n\t\t\tthis.status = dto.status;\r\n\t\t}\r\n\t\tif (dto.errorCode) {\r\n\t\t\tthis.errorCode = dto.errorCode;\r\n\t\t}\r\n\t\tif (dto.message) {\r\n\t\t\tthis.message = dto.message;\r\n\t\t}\r\n\t\tif (dto.data) {\r\n\t\t\tthis.data = dto.data;\r\n\t\t}\r\n\t\tif (dto.totalRecord >= 0) {\r\n\t\t\tthis.totalRecord = dto.totalRecord;\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n}\r\n","// let API_CONST = '';\r\n\r\n// if (location.origin.includes('dashboard.neuapix'))\r\n// \tAPI_CONST = 'https://api.neuapix.com';\r\n// else if (location.origin.includes('dashboard-staging.neuapix'))\r\n// \tAPI_CONST = 'https://api-staging.neuapix.com';\r\n// else if (location.origin.includes('dashboard-qa.adlsandbox'))\r\n// \tAPI_CONST = 'https://apibsp-qa.adlsandbox.net';\r\n// else if (location.origin.includes('demo-dev.adlsandbox.net'))\r\n// \tAPI_CONST = 'https://apibsp-dev.adlsandbox.net';\r\n// else API_CONST = 'https://apibsp-dev.adlsandbox.net';\r\n\r\n// export const environment = {\r\n// \tproduction: false,\r\n// \tapi: API_CONST,\r\n// };\r\nlet API_CONST = '';\r\nconst origin = location.origin;\r\n\r\n// 1. Cek Production\r\nif (origin.includes('dashboard.neuapix.com')) {\r\n API_CONST = 'https://api.neuapix.com';\r\n}\r\n// 2. Cek Staging\r\nelse if (origin.includes('dashboard-staging')) {\r\n API_CONST = 'https://api-staging.neuapix.com';\r\n}\r\n// 3. Cek QA\r\nelse if (origin.includes('dashboard-qa')) {\r\n API_CONST = 'https://apibsp-qa.adlsandbox.net';\r\n}\r\n// 4. Cek Demo Dev secara spesifik\r\nelse if (origin.includes('demo-dev')) {\r\n API_CONST = 'https://apibsp-dev.adlsandbox.net';\r\n}\r\n// 5. Default (Localhost atau lainnya)\r\nelse {\r\n API_CONST = 'https://apibsp-dev.adlsandbox.net';\r\n}\r\n\r\nexport const environment = {\r\n production: false,\r\n api: API_CONST,\r\n};\r\n","import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/internal/operators/catchError';\r\nimport { environment } from '../../../environments/environment';\r\nimport { Parameter, ServerInBuiltError } from '../models/util/api-adapter-service-models';\r\nimport { AppRequest } from '../models/util/api-dto/request-models/app-request';\r\nimport { AppResponse } from '../models/util/api-dto/response-models/app-response';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiAdapterServiceService {\r\n private queryCount = 0;\r\n\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public executeApiRequest<T>(\r\n parameterList: Array<Parameter>,\r\n path: string,\r\n httpVerb: string,\r\n isFile: boolean = false\r\n ): Observable<any> {\r\n let url = path;\r\n let bodyData: {};\r\n let parameter: Parameter;\r\n let formData = new FormData();\r\n\r\n parameterList\r\n ?.filter((rt) => rt.in !== 'header')\r\n .forEach((requestType) => {\r\n parameter = parameterList.find(\r\n (parameter) => parameter.name === requestType.name\r\n ) as Parameter;\r\n\r\n if (!parameter && requestType.required && requestType.in !== 'header') {\r\n window.alert(\r\n `Parameter \"${requestType.name}\" is required!, Try again with \"${requestType.name}\"`\r\n );\r\n } else if (!parameter && !requestType.required) {\r\n // continue;\r\n } else {\r\n switch (requestType.in) {\r\n case 'body': {\r\n bodyData = parameter.value;\r\n break;\r\n }\r\n case 'path': {\r\n url = url.replace(`{${parameter.name}}`, parameter.value);\r\n break;\r\n }\r\n case 'query': {\r\n url = this.setQuery(parameter.name, parameter.value, url);\r\n break;\r\n }\r\n case 'formData': {\r\n formData = this.setFormData(parameter, formData);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n parameter = undefined;\r\n });\r\n\r\n this.queryCount = 0;\r\n\r\n url = `${environment.api}${url}`;\r\n const appRequest: AppRequest<any> = {\r\n ...(parameterList?.[0]?.withoutKeyData ? bodyData : { data: bodyData }),\r\n };\r\n\r\n const headers = new HttpHeaders()\r\n .set('Authorization', 'Bearer ' + localStorage.getItem('telin.accessToken'))\r\n .set('Access-Control-Allow-Origin', '*');\r\n\r\n return this.httpClient\r\n .request<AppResponse<T>>(httpVerb, url, {\r\n body: !bodyData ? formData : appRequest,\r\n responseType: isFile ? ('blob' as 'json') : ('json' as 'json'),\r\n headers,\r\n })\r\n .pipe(\r\n catchError((err: HttpErrorResponse) => {\r\n if (err.error instanceof ErrorEvent) {\r\n return of<AppResponse<any>>({\r\n error: {\r\n title: 'Network error!',\r\n detail: err.message,\r\n source: err.statusText,\r\n status: err.status.toString(),\r\n },\r\n meta: {\r\n code: err.status,\r\n message: err.message,\r\n },\r\n });\r\n }\r\n\r\n return of<ServerInBuiltError>(err.error);\r\n })\r\n );\r\n }\r\n\r\n public uploadFileToS3(s3Url: string, file: File): Observable<any> {\r\n // Kita kirim raw binary/file dengan header Content-Type yang sesuai\r\n return this.httpClient.put(s3Url, file, {\r\n headers: { 'Content-Type': file.type },\r\n });\r\n }\r\n\r\n private setQuery(name: string, value: any, url: string): string {\r\n url = this.queryCount === 0 ? `${url}?${name}=${value}` : `${url}&${name}=${value}`;\r\n this.queryCount++;\r\n return url;\r\n }\r\n\r\n private setFormData(parameter: Parameter, formData: FormData): FormData {\r\n if (parameter.type === 'array') {\r\n for (let i = 0; parameter.value.length > i; i++) {\r\n formData.append(parameter.name, parameter.value[i], parameter.value[i].name);\r\n }\r\n } else {\r\n formData.append(parameter.name, parameter.value ? parameter.value : null);\r\n }\r\n return formData;\r\n }\r\n}\r\n","export const CampaignListTableLabelConst = [\r\n\t'Broadcast ID',\r\n\t'Business Name',\r\n\t'Broadcast Name',\r\n\t'Template Name',\r\n\t'Channel',\r\n\t'Status',\r\n\t'Number Count',\r\n\t'On Progress',\r\n\t'Sent',\r\n\t'Delivered',\r\n\t'Read',\r\n\t'Failed',\r\n\t'Repeat Count',\r\n\t'Start Date',\r\n\t'End Date',\r\n\t'Action',\r\n];\r\n\r\nexport const CampaignListTableColumnConst = [\r\n\t'id',\r\n\t'clientName',\r\n\t'name',\r\n\t'templateName',\r\n\t'platform',\r\n\t'statusName',\r\n\t'numberCount',\r\n\t'queuedCount',\r\n\t'sentCount',\r\n\t'delivCount',\r\n\t'readCount',\r\n\t'failedCount',\r\n\t'repeatCount',\r\n\t'startTime',\r\n\t'endTime',\r\n\t'action',\r\n];\r\n","export class CampaignsListModel {\r\n\tpublic campaignID: string;\r\n\tpublic businessName: string;\r\n\tpublic campaignName: string;\r\n\tpublic medium: string;\r\n\tpublic status: string;\r\n\tpublic numberCount: number;\r\n\tpublic deilveredCount: number;\r\n\tpublic seenCount: number;\r\n\tpublic responseCount: number;\r\n\tpublic estimatedCost: number;\r\n\tpublic actualCost: number;\r\n\tpublic startDate: string;\r\n\tpublic endDate: string;\r\n\tpublic id: string;\r\n\r\n\tpublic convert(dto: any): CampaignsListModel {\r\n\t\tif (dto.campaignID) {\r\n\t\t\tthis.campaignID = dto.campaignID;\r\n\t\t}\r\n\t\tif (dto.businessName) {\r\n\t\t\tthis.businessName = dto.businessName;\r\n\t\t}\r\n\t\tif (dto.campaignName) {\r\n\t\t\tthis.campaignName = dto.campaignName;\r\n\t\t}\r\n\t\tif (dto.medium) {\r\n\t\t\tthis.medium = dto.medium;\r\n\t\t}\r\n\t\tif (dto.status) {\r\n\t\t\tthis.status = dto.status;\r\n\t\t}\r\n\t\tif (dto.numberCount) {\r\n\t\t\tthis.numberCount = dto.numberCount;\r\n\t\t}\r\n\t\tif (dto.deilveredCount) {\r\n\t\t\tthis.deilveredCount = dto.deilveredCount;\r\n\t\t}\r\n\t\tif (dto.seenCount) {\r\n\t\t\tthis.seenCount = dto.seenCount;\r\n\t\t}\r\n\t\tif (dto.responseCount) {\r\n\t\t\tthis.responseCount = dto.responseCount;\r\n\t\t}\r\n\t\tif (dto.estimatedCost) {\r\n\t\t\tthis.estimatedCost = dto.estimatedCost;\r\n\t\t}\r\n\t\tif (dto.actualCost) {\r\n\t\t\tthis.actualCost = dto.actualCost;\r\n\t\t}\r\n\t\tif (dto.startDate) {\r\n\t\t\tthis.startDate = dto.startDate;\r\n\t\t}\r\n\t\tif (dto.endDate) {\r\n\t\t\tthis.endDate = dto.endDate;\r\n\t\t}\r\n\t\tif (dto.id) {\r\n\t\t\tthis.id = dto.id;\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n}\r\n","import { MatTableDataSource } from '@angular/material/table';\r\n\r\nexport class TableModel {\r\n\tpublic columns: any[];\r\n\tpublic dataSource: MatTableDataSource<any>;\r\n\tpublic labels: string[];\r\n\tpublic page: number;\r\n\tpublic pageSize: number;\r\n\tpublic totalData: number;\r\n\r\n\tconstructor() {\r\n\t\tthis.columns = [];\r\n\t\tthis.dataSource = new MatTableDataSource();\r\n\t\tthis.labels = [];\r\n\t\tthis.page = 1;\r\n\t\tthis.pageSize = 10;\r\n\t\tthis.totalData = 0;\r\n\t}\r\n\r\n\tpublic getNumber(index: number, limit: number): number {\r\n\t\treturn (this.page - 1) * limit + index;\r\n\t}\r\n\r\n\tpublic getPageIndex(): number {\r\n\t\treturn this.page - 1;\r\n\t}\r\n\r\n\tpublic isEmpty(): boolean {\r\n\t\treturn this.totalData === 0;\r\n\t}\r\n\r\n\tpublic setPage(page: number): void {\r\n\t\tthis.page = page;\r\n\t}\r\n\r\n\tpublic setPageSize(size: number): void {\r\n\t\tthis.pageSize = size;\r\n\t}\r\n\r\n\tpublic resetPage(): void {\r\n\t\tthis.page = 1;\r\n\t}\r\n\r\n\tpublic setNextPage(isNext: boolean): void {\r\n\t\tif (!isNext && this.page === 1) {\r\n\t\t\tthis.totalData = this.dataSource.data?.length ?? 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.totalData =\r\n\t\t\tthis.page === 1\r\n\t\t\t\t? this.pageSize * 2\r\n\t\t\t\t: this.pageSize * (this.page + 1);\r\n\r\n\t\tconst diffData = this.pageSize - this.dataSource.data?.length;\r\n\r\n\t\t/* totalData substracted by diffData if data < pageSize */\r\n\t\tif (diffData !== 0) this.totalData -= diffData;\r\n\r\n\t\t/* totalData substracted by pageSize if isNext false */\r\n\t\tif (!isNext) this.totalData -= this.pageSize;\r\n\t}\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { MainArea } from '../../../core/enums/main-area.enum';\r\nimport { HttpBodyReqPaginationModel } from '../../../core/models';\r\nimport { Parameter } from '../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../core/models/util/api-dto/response-models/app-response';\r\nimport { ApiAdapterServiceService } from '../../../core/services/api-adapter-service.service';\r\nimport { CampaignTotalDto } from '../../models/campaign-count-final-response-dto.model';\r\nimport {\r\n\tCampaignListTableColumnConst,\r\n\tCampaignListTableLabelConst,\r\n\tTableModel,\r\n} from './models';\r\nimport { CampaignResponseDtoApi } from './models/campaign-response-dto.model';\r\n\r\n@Component({\r\n\tselector: 'lib-campaign-index',\r\n\ttemplateUrl: './campaign-index.component.html',\r\n\tstyleUrls: ['./campaign-index.component.scss'],\r\n})\r\nexport class CampaignIndexComponent implements OnInit, OnDestroy {\r\n\t@Output() currentView = new EventEmitter<MainArea>();\r\n\r\n\tpublic table: TableModel;\r\n\tpublic filterValue: any;\r\n\tpublic currentViews = MainArea;\r\n\tpublic campaignTotal: CampaignTotalDto;\r\n\r\n\tprivate campaignParam: HttpBodyReqPaginationModel;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\tconstructor(\r\n\t\tprivate datePipe: DatePipe,\r\n\t\tprivate apiAdapterService: ApiAdapterServiceService\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.campaignParam = new HttpBodyReqPaginationModel();\r\n\r\n\t\tthis.initTable();\r\n\t\tthis.campaignCountService();\r\n\t\tthis.getCampaignList();\r\n\r\n\t\tlocalStorage.removeItem('telin.campaign');\r\n\t}\r\n\r\n\tprivate initTable(): void {\r\n\t\tthis.table = new TableModel();\r\n\t\tthis.table.labels = CampaignListTableLabelConst;\r\n\t\tthis.table.columns = CampaignListTableColumnConst;\r\n\t}\r\n\r\n\tprivate campaignCountService() {\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest([], '/campaign/totals', 'GET')\r\n\t\t\t.subscribe((response: AppResponse<CampaignTotalDto>) => {\r\n\t\t\t\tthis.campaignTotal = response?.data;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getCampaignList(searchValue: string = ''): void {\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.campaignParam.pageNo, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', this.campaignParam.pageSize, 'number'),\r\n\t\t\tthis.initParam('filter', searchValue, 'string'),\r\n\t\t];\r\n\r\n\t\tif (this.filterValue?.businessName)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam(\r\n\t\t\t\t\t'clientId',\r\n\t\t\t\t\tthis.filterValue.businessName,\r\n\t\t\t\t\t'string'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\tif (this.filterValue?.medium)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam('channel', this.filterValue.medium, 'string')\r\n\t\t\t);\r\n\t\tif (this.filterValue?.templateName)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam(\r\n\t\t\t\t\t'templateName',\r\n\t\t\t\t\tthis.filterValue.templateName?.name,\r\n\t\t\t\t\t'string'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\tif (this.filterValue?.status)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam('status', this.filterValue.status, 'string')\r\n\t\t\t);\r\n\t\tif (this.filterValue?.startDate)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam(\r\n\t\t\t\t\t'startDate',\r\n\t\t\t\t\tthis.datePipe.transform(\r\n\t\t\t\t\t\tthis.filterValue.startDate,\r\n\t\t\t\t\t\t'yyyy-MM-dd'\r\n\t\t\t\t\t),\r\n\t\t\t\t\t'string'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\tif (this.filterValue?.endDate)\r\n\t\t\tparameterList.push(\r\n\t\t\t\tthis.initParam(\r\n\t\t\t\t\t'endDate',\r\n\t\t\t\t\tthis.datePipe.transform(\r\n\t\t\t\t\t\tthis.filterValue.endDate,\r\n\t\t\t\t\t\t'yyyy-MM-dd'\r\n\t\t\t\t\t),\r\n\t\t\t\t\t'string'\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/campaign', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<CampaignResponseDtoApi[]>) => {\r\n\t\t\t\tthis.table.dataSource.data = resp.data;\r\n\t\t\t\tthis.table.setNextPage(resp.haveNext);\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tpublic updatePage(event: any): void {\r\n\t\tif (event.pageSize) {\r\n\t\t\tthis.table.totalData = event.pageSize;\r\n\t\t\tthis.table.setPageSize(event.pageSize);\r\n\t\t\tthis.table.resetPage();\r\n\t\t} else {\r\n\t\t\tthis.table.setPage(event);\r\n\t\t}\r\n\r\n\t\tthis.campaignParam.pageNo = this.table.page;\r\n\t\tthis.campaignParam.pageSize = this.table.pageSize;\r\n\t\tthis.getCampaignList();\r\n\t}\r\n\r\n\tpublic updateFilter(_filter: any) {\r\n\t\tthis.table.resetPage();\r\n\t\tthis.campaignParam.pageNo = this.table.page;\r\n\t\tthis.campaignParam.pageSize = this.table.pageSize;\r\n\t\tthis.filterValue = _filter;\r\n\r\n\t\tthis.getCampaignList();\r\n\t}\r\n\r\n\tpublic updateSearch(searchValue: string) {\r\n\t\tthis.table.resetPage();\r\n\t\tthis.campaignParam.pageNo = this.table.page;\r\n\t\tthis.getCampaignList(searchValue);\r\n\t}\r\n\r\n\tpublic addCampaign(): void {\r\n\t\tlocalStorage.removeItem('telin.campaign');\r\n\t\tthis.changeCurrentView(this.currentViews.NewCampaign);\r\n\t}\r\n\r\n\tpublic changeCurrentView(area: MainArea) {\r\n\t\tthis.currentView.emit(area);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","export const PlatformOptionConst = [\r\n {\r\n icon: 'icon_wa',\r\n inputSvgIcon: 'icon-wa-gray',\r\n image: 'whatsapp.png',\r\n label: 'WhatsApp',\r\n value: 'WA',\r\n },\r\n {\r\n icon: 'menu_sms',\r\n inputSvgIcon: 'icon-sms-gray',\r\n image: 'sms.png',\r\n label: 'SMS',\r\n value: 'SMS',\r\n },\r\n {\r\n icon: 'icon_email',\r\n inputSvgIcon: 'icon-email-gray',\r\n image: 'email-contact.png',\r\n label: 'Email',\r\n value: 'EMAIL',\r\n },\r\n {\r\n icon: 'icon_line',\r\n inputSvgIcon: 'icon-line-gray',\r\n image: 'line.png',\r\n label: 'Line',\r\n value: 'LINE',\r\n },\r\n];\r\n\r\nexport const MsgTypeWAOptionConst = [\r\n {\r\n name: 'Text',\r\n code: 'TEXT',\r\n },\r\n {\r\n name: 'Media',\r\n code: 'MEDIA',\r\n },\r\n {\r\n name: 'Template',\r\n code: 'TEMPLATE',\r\n },\r\n {\r\n name: 'Text - Utility',\r\n code: 'utility',\r\n },\r\n /* {\r\n\t\tname: 'Catalogue',\r\n\t\tcode: 'CATALOGUE',\r\n\t}, */\r\n];\r\n\r\nexport const MsgTypeEmailOptionConst = [\r\n {\r\n name: 'Text',\r\n code: 'HTML',\r\n },\r\n {\r\n name: 'Template',\r\n code: 'TEMPLATE',\r\n },\r\n];\r\n\r\nexport const MsgTypeLineOptionConst = [\r\n {\r\n name: 'Text',\r\n code: 'TEXT',\r\n },\r\n {\r\n name: 'Template',\r\n code: 'TEMPLATE',\r\n },\r\n /* {\r\n\t\tname: 'Button',\r\n\t\tcode: 'BUTTON',\r\n\t},\r\n\t{\r\n\t\tname: 'Confirmation',\r\n\t\tcode: 'CONFIRMATION',\r\n\t},\r\n\t{\r\n\t\tname: 'Carousel',\r\n\t\tcode: 'CAROUSEL',\r\n\t},\r\n\t{\r\n\t\tname: 'Image Carousel',\r\n\t\tcode: 'IMAGE_CAROUSEL',\r\n\t},\r\n\t{\r\n\t\tname: 'Flex Bubble',\r\n\t\tcode: 'FLEX_BUBBLE',\r\n\t},\r\n\t{\r\n\t\tname: 'Flex Carousel',\r\n\t\tcode: 'FLEX_CAROUSEL',\r\n\t}, */\r\n];\r\n\r\nexport const MediaTypeOptionConst = [\r\n {\r\n name: 'Image',\r\n code: 'IMAGE',\r\n },\r\n {\r\n name: 'Video',\r\n code: 'VIDEO',\r\n },\r\n {\r\n name: 'Document',\r\n code: 'DOCUMENT',\r\n },\r\n /* {\r\n\t\tname: 'Location',\r\n\t\tcode: 'LOCATION',\r\n\t}, */\r\n];\r\n\r\nexport const WidgetLiveCampaignConst: {\r\n title: string;\r\n arrow: string;\r\n value: number;\r\n date: string;\r\n icon: string;\r\n dateclass: string;\r\n}[] = [\r\n {\r\n title: 'Total Campaigns',\r\n arrow: '../../../../assets/svg/icon-down-arrow.svg',\r\n value: 0,\r\n date: '',\r\n icon: '../../../../assets/svg/icon-total-campaign.svg',\r\n dateclass: 'redpercent',\r\n },\r\n {\r\n title: 'Live Campaigns',\r\n arrow: '../../../../assets/svg/icon-down-arrow.svg',\r\n value: 0,\r\n date: '',\r\n icon: '../../../../assets/svg/icon-use-campaign.svg',\r\n dateclass: 'redpercent',\r\n },\r\n {\r\n title: 'Pending Approval',\r\n arrow: '../../../../assets/svg/icon-down-arrow.svg',\r\n value: 0,\r\n date: '',\r\n icon: '../../../../assets/svg/icon-pending-approval-campaign.svg',\r\n dateclass: 'redpercent',\r\n },\r\n];\r\n\r\nexport const CampaignPerformanceChartConfig = {\r\n legend: {\r\n icon: 'circle',\r\n orient: 'horizontal',\r\n x: 'center',\r\n y: 'bottom',\r\n },\r\n tooltip: {},\r\n dataset: {\r\n source: [['', 'WA Text', 'WA Template', 'WA Media', 'Product Catalog']],\r\n },\r\n xAxis: { type: 'category' },\r\n yAxis: {},\r\n series: [\r\n { type: 'bar', color: '#E666DA' },\r\n { type: 'bar', color: '#EB7215' },\r\n { type: 'bar', color: '#F3B435' },\r\n { type: 'bar', color: '#35CDF3' },\r\n ],\r\n};\r\n\r\nexport const ConversationInsightsChartConfig = {\r\n tooltip: {\r\n trigger: 'axis',\r\n },\r\n legend: {\r\n icon: 'circle',\r\n data: ['Delivery Rate of Campaigns', 'Total Number of Campaigns', 'Cost Distribution'],\r\n x: 'center',\r\n y: 'bottom',\r\n },\r\n xAxis: {\r\n type: 'category',\r\n data: [],\r\n },\r\n yAxis: {\r\n type: 'value',\r\n },\r\n series: [\r\n {\r\n name: 'Delivery Rate of Campaigns',\r\n data: [],\r\n type: 'line',\r\n smooth: true,\r\n itemStyle: { normal: { color: 'blue' } },\r\n },\r\n {\r\n name: 'Total Number of Campaigns',\r\n data: [],\r\n type: 'line',\r\n smooth: true,\r\n itemStyle: { normal: { color: 'green' } },\r\n },\r\n {\r\n name: 'Cost Distribution',\r\n data: [],\r\n type: 'line',\r\n smooth: true,\r\n itemStyle: { normal: { color: '#E666DA' } },\r\n },\r\n ],\r\n};\r\n","import { environment } from '../../../environments/environment';\r\n\r\nconst packageServiceServicePath = '/package';\r\nconst countryServiceServicePath = '/appvalue/COUNTRY';\r\nconst editServicePath = \"/package/{id}\";\r\nconst rateCardServicePath = '/ratecard';\r\n\r\nexport const PackageServicePathConst = `${environment.api}${packageServiceServicePath}`;\r\nexport const CountryServicePathConst = `${environment.api}${countryServiceServicePath}`;\r\nexport const RateCardServicePathConst = `${environment.api}${rateCardServicePath}`;\r\nexport const EditServicePathConst = `${environment.api}${editServicePath}`;\r\n","import { WhatsAppAccountDto } from '../../campaign-management/models';\r\n\r\nexport let isLoadingOption: {\r\n\tWA: boolean;\r\n\tSMS: boolean;\r\n\tLINE: boolean;\r\n\tEMAIL: boolean;\r\n\tVOICE: boolean;\r\n} = {\r\n\tWA: false,\r\n\tSMS: false,\r\n\tLINE: false,\r\n\tEMAIL: false,\r\n\tVOICE: false,\r\n};\r\n\r\nexport let isHaveNextOption: {\r\n\tWA: boolean;\r\n\tSMS: boolean;\r\n\tLINE: boolean;\r\n\tEMAIL: boolean;\r\n\tVOICE: boolean;\r\n} = {\r\n\tWA: true,\r\n\tSMS: true,\r\n\tLINE: true,\r\n\tEMAIL: true,\r\n\tVOICE: true,\r\n};\r\n\r\nexport let pageNoOption: {\r\n\tWA: number;\r\n\tSMS: number;\r\n\tLINE: number;\r\n\tEMAIL: number;\r\n\tVOICE: number;\r\n} = {\r\n\tWA: 1,\r\n\tSMS: 1,\r\n\tLINE: 1,\r\n\tEMAIL: 1,\r\n\tVOICE: 1,\r\n};\r\n\r\nexport let optionList: {\r\n\tWA: WhatsAppAccountDto[];\r\n\tSMS: WhatsAppAccountDto[];\r\n\tLINE: WhatsAppAccountDto[];\r\n\tEMAIL: WhatsAppAccountDto[];\r\n\tVOICE: WhatsAppAccountDto[];\r\n} = {\r\n\tWA: [],\r\n\tSMS: [],\r\n\tLINE: [],\r\n\tEMAIL: [],\r\n\tVOICE: [],\r\n};\r\n","export const RateCardTableLabelConst = [\r\n\t'select',\r\n\t'Country ID',\r\n\t'Country Name',\r\n\t'Currency Code',\r\n\t'Excess Fee Conversation',\r\n\t'Excess Fee Notification',\r\n\t'Setup Fee',\r\n\t'Action',\r\n];\r\n\r\n\r\nexport const RateCardTableColumnConst = [\r\n\t'select',\r\n\t'countryCode',\r\n\t'countryName',\r\n\t'currencyCode',\r\n\t'ovrUsgConversationCost',\r\n\t'ovrUsgNotificationCost',\r\n\t'setupFee',\r\n\t'action',\r\n];\r\n","export const GeneralInformationMessageValidationConst = {\r\n campaignName: [\r\n { type: 'required', message: 'General Information is required' },\r\n { type: 'maxlength', message: 'Maximum character 100' },\r\n ],\r\n medium: [{ type: 'required', message: 'Channel is required' }],\r\n};\r\n\r\nexport const GeneralInformationWAMessageValidationConst = {\r\n channel: [{ type: 'required', message: 'Message Type is required' }],\r\n from: [{ type: 'required', message: 'From is required' }],\r\n text: [\r\n { type: 'required', message: 'Text is required' },\r\n { type: 'maxlength', message: 'Maximum character 1024' },\r\n ],\r\n media: [{ type: 'required', message: 'Media Type is required' }],\r\n fileName: [{ type: 'required', message: 'File is required' }],\r\n template: [{ type: 'required', message: 'Template is required' }],\r\n category: [{ type: 'required', message: 'Category is required' }],\r\n catalogue: [{ type: 'required', message: 'Catalog is required' }],\r\n product: [{ type: 'required', message: 'Product is required' }],\r\n body: [{ type: 'maxlength', message: 'Maximum character 100' }],\r\n paramName: [{ type: 'required', message: 'Variable Name is required' }],\r\n};\r\n\r\nexport const GeneralInformationEmailMessageValidationConst = {\r\n channel: [{ type: 'required', message: 'Message Type is required' }],\r\n from: [{ type: 'required', message: 'From is required' }],\r\n text: [{ type: 'required', message: 'Text is required' }],\r\n template: [{ type: 'required', message: 'Template is required' }],\r\n};\r\n\r\nexport const GeneralInformationSMSMessageValidationConst = {\r\n channel: [{ type: 'required', message: 'Message Type is required' }],\r\n from: [{ type: 'required', message: 'From is required' }],\r\n text: [{ type: 'required', message: 'Text is required' }],\r\n template: [{ type: 'required', message: 'Template is required' }],\r\n};\r\n\r\nexport const GeneralInformationLineMessageValidationConst = {\r\n channel: [{ type: 'required', message: 'Message Type is required' }],\r\n from: [{ type: 'required', message: 'From is required' }],\r\n text: [{ type: 'required', message: 'Text is required' }],\r\n template: [{ type: 'required', message: 'Template is required' }],\r\n};\r\n\r\nexport const FailoverMechanismValidationConst = {\r\n interval: [\r\n { type: 'required', message: 'Interval Time is required' },\r\n {\r\n type: 'intervalTime',\r\n message: 'Must be greater than 0 and without decimal',\r\n },\r\n ],\r\n type: [{ type: 'required', message: 'Main Rules is required' }],\r\n accountId: [{ type: 'required', message: 'Account is required' }],\r\n subject: [{ type: 'required', message: 'Subject is required' }],\r\n message: [{ type: 'required', message: 'Message is required' }],\r\n templateName: [{ type: 'required', message: 'Template is required' }],\r\n};\r\n\r\nexport const SchedulerMessageValidationConst = {\r\n startDate: [{ type: 'required', message: 'Select Date is required' }],\r\n startTime: [{ type: 'required', message: 'Select Time is required' }],\r\n};\r\n","export enum PastTimeEnum {\r\n\tToday = 'today',\r\n\tYesterday = 'yesterday',\r\n\tCurrentWeek = 'currentWeek',\r\n\tLastWeek = 'last week',\r\n\tCurrentMonth = 'currentMonth',\r\n\tLastMonth = 'last month',\r\n}\r\n\r\nexport enum StatusCampaignEnum {\r\n\tDraft = 'DRAFT',\r\n\tWaitingApproval = 'APPROVAL',\r\n\tRejected = 'REJECTED',\r\n\tScheduled = 'SCHEDULED',\r\n\tStopped = 'STOPPED',\r\n\tDeleted = 'DELETED',\r\n\tCompleted = 'COMPLETED',\r\n\tFailed = 'FAILED',\r\n\tPaused = 'PAUSED',\r\n\tProcessing = 'PROCESS',\r\n}\r\n\r\nexport enum ProductCategoryEnum {\r\n\tSingleProduct = 'product',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\n\r\n@Injectable()\r\nexport class CustomPaginator extends MatPaginatorIntl {\r\n\titemsPerPageLabel = 'Listing per Page';\r\n\r\n\tgetRangeLabel = function (page, pageSize, length) {\r\n\t\tif (length === 0 || pageSize === 0) {\r\n\t\t\treturn 'Show 0';\r\n\t\t}\r\n\r\n\t\tlength = Math.max(length, 0);\r\n\r\n\t\tconst startIndex = page * pageSize;\r\n\t\tconst endIndex =\r\n\t\t\tstartIndex < length\r\n\t\t\t\t? Math.min(startIndex + pageSize, length)\r\n\t\t\t\t: startIndex + pageSize;\r\n\t\tconst sumStartIndex = startIndex + 1;\r\n\r\n\t\treturn 'Show ' + sumStartIndex + ' - ' + endIndex;\r\n\t};\r\n}\r\n","export const downloadBlobFile = (blob: any, name: string = 'file.csv'): any => {\r\n\tconst blobUrl = URL.createObjectURL(blob);\r\n\r\n\tconst link = document.createElement('a');\r\n\r\n\tlink.href = blobUrl;\r\n\tlink.download = name;\r\n\r\n\tdocument.body.appendChild(link);\r\n\r\n\tlink.dispatchEvent(\r\n\t\tnew MouseEvent('click', {\r\n\t\t\tbubbles: true,\r\n\t\t\tcancelable: true,\r\n\t\t\tview: window,\r\n\t\t})\r\n\t);\r\n\r\n\tdocument.body.removeChild(link);\r\n};\r\n","import { BaseOptionModel } from '../models';\r\n\r\nexport const generateEnumOption = (enumObject: Object): BaseOptionModel[] => {\r\n\tif (!enumObject) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\treturn Object.keys(enumObject).reduce((result, each) => {\r\n\t\tif (isNaN(Number(each))) {\r\n\t\t\tconst inputOption = new BaseOptionModel();\r\n\t\t\tconst label = each\r\n\t\t\t\t.replace(/([A-Z])/g, ' $1')\r\n\t\t\t\t.replace(/([0-9])/g, ' $1');\r\n\r\n\t\t\tinputOption.label = label;\r\n\r\n\t\t\tif (isNaN(Number(enumObject[each]))) {\r\n\t\t\t\tinputOption.value = enumObject[each];\r\n\t\t\t} else {\r\n\t\t\t\tinputOption.value = Number(enumObject[each]);\r\n\t\t\t}\r\n\r\n\t\t\tresult.push(inputOption);\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}, []);\r\n};\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nexport const generateHttpParams =\r\n\t(params: Object): HttpParams => {\r\n\t\tlet httpParams = new HttpParams();\r\n\r\n\t\tif (params) {\r\n\t\t\tObject.keys(params).forEach((key) => {\r\n\t\t\t\tif (params[key] !== null\r\n\t\t\t\t\t&& params[key] !== undefined\r\n\t\t\t\t\t&& params[key] !== '') {\r\n\r\n\t\t\t\t\thttpParams = httpParams.set(key, params[key]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn httpParams;\r\n\t};\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInjectable,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { PlatformOptionConst } from '../../../../../core/const';\r\nimport { StatusCampaignEnum } from '../../../../../core/enums';\r\nimport { BaseOptionModel } from '../../../../../core/models';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { generateEnumOption } from '../../../../../core/util';\r\nimport { TemplateWAModel } from '../../../../models';\r\nimport { ClientDto } from '../../models';\r\n\r\n@Component({\r\n\tselector: 'lib-filter-in-list-of-campaign',\r\n\ttemplateUrl: './filter-in-list-of-campaign.component.html',\r\n\tstyleUrls: ['./filter-in-list-of-campaign.component.scss'],\r\n})\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class FilterInListOfCampaignComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic onChangeFilter: EventEmitter<string>;\r\n\r\n\t@Output()\r\n\tpublic closeDropdown: EventEmitter<void>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic channelOption: any[] = PlatformOptionConst;\r\n\tpublic filteredChannelOption: any[] = [];\r\n\tpublic businessNameOption: ClientDto[] = [];\r\n\tpublic filteredBusinessNameOption: ClientDto[] = [];\r\n\tpublic statusOption: BaseOptionModel[] = [];\r\n\tpublic filteredStatusOption: BaseOptionModel[] = [];\r\n\tpublic templateOption: TemplateWAModel[] = [];\r\n\tpublic isHaveNextTemplateOption: boolean = true;\r\n\tpublic isLoadingTemplateOption: boolean = false;\r\n\r\n\tprivate pageNoTemplateOption: number = 1;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input()\r\n\tpublic filterValue: any;\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.closeDropdown = new EventEmitter();\r\n\t\tthis.onChangeFilter = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.statusOption = generateEnumOption(StatusCampaignEnum);\r\n\t\tthis.filteredStatusOption = [...this.statusOption];\r\n\t\tthis.filteredChannelOption = [...this.channelOption];\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.getBusinessNameOptionService();\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tbusinessName: new FormControl(this.filterValue?.businessName ?? ''),\r\n\t\t\tmedium: new FormControl(this.filterValue?.medium ?? ''),\r\n\t\t\ttemplateName: new FormControl(this.filterValue?.templateName ?? ''),\r\n\t\t\tstatus: new FormControl(this.filterValue?.status ?? ''),\r\n\t\t\tstartDate: new FormControl(this.filterValue?.startDate ?? ''),\r\n\t\t\tendDate: new FormControl(this.filterValue?.endDate ?? ''),\r\n\t\t});\r\n\r\n\t\tif (this.filterValue?.templateName)\r\n\t\t\tthis.templateOption = [\r\n\t\t\t\t...this.templateOption,\r\n\t\t\t\tthis.filterValue?.templateName,\r\n\t\t\t];\r\n\t}\r\n\r\n\tpublic getBusinessNameOptionService(): void {\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(\r\n\t\t\t\t[],\r\n\t\t\t\t'/admin/client/all-with-child?pageNo=1&rowPerPage=1000',\r\n\t\t\t\t'GET'\r\n\t\t\t)\r\n\t\t\t.subscribe((res: AppResponse<ClientDto[]>) => {\r\n\t\t\t\tthis.businessNameOption = res.data;\r\n\t\t\t\tthis.filteredBusinessNameOption = [...this.businessNameOption];\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', this.form.get('medium').value, 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption = isInfinite\r\n\t\t\t\t\t? [...this.templateOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextTemplateOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch() {\r\n\t\tif (!this.isHaveNextTemplateOption) return;\r\n\r\n\t\tthis.pageNoTemplateOption += 1;\r\n\t\tthis.getTemplateOptionService('', true);\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic templateSearch(searchValue: string): void {\r\n\t\tthis.pageNoTemplateOption = 1;\r\n\t\tthis.getTemplateOptionService(searchValue);\r\n\t}\r\n\r\n\tpublic businessNameSearch(searchValue: string): void {\r\n\t\tconst value = searchValue.toLowerCase();\r\n\t\tthis.filteredBusinessNameOption = this.businessNameOption.filter(option =>\r\n\t\t\toption.name.toLowerCase().includes(value)\r\n\t\t);\r\n\t}\r\n\r\n\tpublic channelSearch(searchValue: string): void {\r\n\t\tconst value = searchValue.toLowerCase();\r\n\t\tthis.filteredChannelOption = this.channelOption.filter(option =>\r\n\t\t\toption.label.toLowerCase().includes(value)\r\n\t\t);\r\n\t}\r\n\r\n\tpublic statusSearch(searchValue: string): void {\r\n\t\tconst value = searchValue.toLowerCase();\r\n\t\tthis.filteredStatusOption = this.statusOption.filter(option =>\r\n\t\t\toption.label.toLowerCase().includes(value)\r\n\t\t);\r\n\t}\r\n\r\n\tpublic clearDate(): void {\r\n\t\tthis.form.get('startDate').setValue(null);\r\n\t\tthis.form.get('endDate').setValue(null);\r\n\t}\r\n\r\n\tpublic validateBackDate(): void {\r\n\t\tif (new Date(this.form.get('startDate').value).getTime() > new Date(this.form.get('endDate').value).getTime())\r\n\t\t\tthis.form.get('endDate').setValue('');\r\n\t}\r\n\r\n\tpublic onReset(): void {\r\n\t\tthis.form.reset();\r\n\t\tthis.onChangeFilter.emit(this.form.getRawValue());\r\n\t}\r\n\r\n\tpublic onCancel(): void {\r\n\t\tthis.closeDropdown.emit();\r\n\t}\r\n\r\n\tpublic onApply(): void {\r\n\t\tthis.onChangeFilter.emit(this.form.getRawValue());\r\n\t\tthis.closeDropdown.emit();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedServicesService {\r\n\r\n private subject = new Subject<any>();\r\n\r\n sendClickEvent(){\r\n this.subject.next();\r\n }\r\n\r\n getEvent(): Observable<any>{\r\n return this.subject.asObservable();\r\n }\r\n\r\n constructor() { }\r\n}\r\n","export class ConfirmationModel {\r\n public title: string;\r\n public content: string;\r\n public btnSubmit: string;\r\n public btnSubmitRed: string;\r\n public btnCancel: string;\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SharedServicesService } from '../../../global/confirmation/shared/shared-services.service';\r\nimport { ConfirmationModel } from '../shared/model';\r\n\r\n@Component({\r\n\tselector: 'app-confirmation',\r\n\ttemplateUrl: './confirmation.component.html',\r\n\tstyleUrls: ['./confirmation.component.scss'],\r\n})\r\nexport class ConfirmationComponent {\r\n\tconstructor(\r\n\t\t@Inject(MAT_DIALOG_DATA)\r\n\t\tpublic data: ConfirmationModel,\r\n\t\tprivate sharedService: SharedServicesService\r\n\t) {}\r\n\r\n\tdeleteRowOn() {\r\n\t\tthis.sharedService.sendClickEvent();\r\n\t}\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\n\r\n@Component({\r\n selector: 'lib-pending-approval-dialog-view',\r\n templateUrl: './pending-approval-dialog-view.component.html',\r\n styleUrls: ['./pending-approval-dialog-view.component.scss'],\r\n})\r\nexport class PendingApprovalDialogViewComponent implements OnInit, OnDestroy {\r\n public isLoading: boolean = false;\r\n public isSubmit: boolean = false;\r\n public isShowButton: boolean = false;\r\n\r\n private subscribers: Subscription[] = [];\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef<PendingApprovalDialogViewComponent>,\r\n private apiAdapterService: ApiAdapterServiceService,\r\n private toastr: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getCampaignDetailService();\r\n\r\n this.isShowButton = this.getCampaignStorage?.generalInformation?.isShowButton ?? false;\r\n }\r\n\r\n get getCampaignStorage(): any {\r\n return localStorage.getItem('telin.campaign')\r\n ? JSON.parse(localStorage.getItem('telin.campaign'))\r\n : {};\r\n }\r\n\r\n private convertUTCDateToLocalDate(date: Date) {\r\n const newDate = new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000);\r\n return newDate;\r\n }\r\n\r\n private getCampaignDetailService(): void {\r\n if (!this.getCampaignStorage?.generalInformation?.id) return;\r\n\r\n this.isLoading = true;\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n [],\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}`,\r\n 'GET'\r\n )\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n if (!resp) return;\r\n\r\n const generalInformation = {\r\n campaignName: resp.data?.name,\r\n medium: resp.data?.platform,\r\n channel: ['image', 'video', 'document'].includes(resp.data?.type)\r\n ? 'MEDIA'\r\n : resp.data?.isDirectSend\r\n ? 'utility'\r\n : resp.data?.type?.toUpperCase(),\r\n media: resp.data?.type?.toUpperCase(),\r\n isPrevTemplate: resp?.data?.isPrevTemplate,\r\n templateName: resp?.data?.templateName,\r\n ttl: resp?.data?.ttlSeconds,\r\n from: {\r\n id: resp.data?.accountId,\r\n name: resp.data?.accountName,\r\n platform: resp.data?.platform,\r\n clientId: resp.data?.clientId,\r\n clientName: resp.data?.clientName,\r\n accountNo: resp.data?.accountNo,\r\n wabaId: resp.data?.wabaId ?? '',\r\n },\r\n text: resp.data?.details?.text,\r\n targetURL:\r\n resp.data?.details?.image?.url ??\r\n resp.data?.details?.document?.url ??\r\n resp.data?.details?.video?.url ??\r\n resp.data?.details?.template?.headerURL,\r\n paramHeader: resp.data?.details?.template?.header,\r\n paramBody: resp.data?.details?.template?.data,\r\n paramButton: resp.data?.details?.template?.button,\r\n paramCarousel:\r\n resp.data?.details?.template?.carousel?.map((card: any) => {\r\n return {\r\n headerURL: card.headerURL || '',\r\n bodyParams: (card.body || []).map((val: string) => ({\r\n paramName: val,\r\n })),\r\n buttonParams: (card.button || []).map((btnGroup: any[]) => {\r\n return (btnGroup || []).map((val: string) => ({\r\n paramName: val,\r\n payload: val,\r\n }));\r\n }),\r\n };\r\n }) || [],\r\n otpValue: [...(resp.data?.details?.template?.data ?? [])]?.pop(),\r\n variables: (resp.data?.details?.template?.data || []).map(\r\n (val: string) => ({\r\n paramName: val,\r\n })\r\n ),\r\n isUseExistingTemplate: !!resp.data?.templateName,\r\n template: {\r\n ID: resp.data?.details?.template?.id,\r\n name: resp.data?.details?.template?.name,\r\n lang: resp.data?.details?.template?.lang,\r\n platform: resp.data?.platform,\r\n headerURL: resp.data?.details?.template?.headerURL,\r\n header: {\r\n examples: resp.data?.details?.template?.header,\r\n },\r\n body: {\r\n examples: resp.data?.details?.template?.data,\r\n },\r\n buttons: resp.data?.details?.template?.button,\r\n ClientId: resp.data?.clientId,\r\n ClientName: resp.data?.clientName,\r\n },\r\n isDownloadVariableXLS: resp.data?.fileId !== '',\r\n isUpload: resp.data?.fileId !== '',\r\n fileId: resp.data?.fileId,\r\n };\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n generalInformation: {\r\n id: resp.data?.id,\r\n form: generalInformation,\r\n },\r\n failover: resp.data?.failover,\r\n targetAudience: resp.data?.targets,\r\n targetAudienceFile: {\r\n name: resp.data?.fileName,\r\n targetURL: resp.data?.targetURL,\r\n },\r\n scheduler: {\r\n schedulerType:\r\n resp.data?.scheduleType === 'MULTI'\r\n ? 'ONE_TIME'\r\n : resp.data?.scheduleType,\r\n startDate: resp.data?.startTime?.split(' ')[0],\r\n startTime: resp.data?.startTime?.split(' ')[1],\r\n isRepeat: resp.data?.scheduleType === 'MULTI',\r\n delivery: resp.data?.repeat,\r\n },\r\n },\r\n })\r\n );\r\n\r\n this.isLoading = false;\r\n },\r\n () => {\r\n this.isLoading = false;\r\n }\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public rejectCampaignService(): void {\r\n this.isSubmit = true;\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n [],\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/reject`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n this.isSubmit = false;\r\n\r\n if (!resp || !resp?.data) return this.toastr.error('Error Rejecting Campaign!');\r\n\r\n this.toastr.success('Campaign Rejected Successfully!');\r\n this.onClose();\r\n },\r\n () => {\r\n this.toastr.error('Error Rejecting Campaign!');\r\n this.isSubmit = false;\r\n }\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public approveCampaignService(): void {\r\n this.isSubmit = true;\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n [],\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/approve`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n this.isSubmit = false;\r\n\r\n if (!resp || !resp?.data) return this.toastr.error('Error Approving Campaign!');\r\n\r\n this.toastr.success('Campaign Approved Successfully!');\r\n this.onClose();\r\n },\r\n () => {\r\n this.toastr.error('Error Approving Campaign!');\r\n this.isSubmit = false;\r\n }\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public onClose(): void {\r\n localStorage.removeItem('telin.campaign');\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscribers.forEach((each) => each.unsubscribe());\r\n }\r\n}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n\tViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { MainArea } from '../../../../../core/enums';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { ConfirmationComponent } from '../../../../../global/confirmation/confirmation';\r\nimport { ConfirmationModel } from '../../../../../global/confirmation/shared/model';\r\nimport { PendingApprovalDialogViewComponent } from '../../dialog/pending-approval-dialog-view';\r\nimport { CampaignsListModel, TableModel } from '../../models';\r\nimport { CampaignResponseDtoApi } from '../../models/campaign-response-dto.model';\r\n\r\n@Component({\r\n\tselector: 'lib-viewing-list-of-campaign-table',\r\n\ttemplateUrl: './viewing-list-of-campaign-table.component.html',\r\n\tstyleUrls: ['./viewing-list-of-campaign-table.component.scss'],\r\n})\r\nexport class ViewingListOfCampaignTableComponent implements OnInit, OnDestroy {\r\n\t@Output() currentView = new EventEmitter<MainArea>();\r\n\r\n\t@Output() updateTable = new EventEmitter<void>();\r\n\r\n\tprivate currentViews = MainArea;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input() public table: TableModel;\r\n\r\n\t@ViewChild(MatSort, { static: false }) public matSort: MatSort;\r\n\r\n\tconstructor(\r\n\t\tprivate dialog: MatDialog,\r\n\t\tprivate apiAdapterService: ApiAdapterServiceService,\r\n\t\tprivate toastr: ToastrService\r\n\t) {}\r\n\r\n\tngOnInit(): void {}\r\n\r\n\tpublic sort(): void {\r\n\t\tthis.table.dataSource.sort = this.matSort;\r\n\t}\r\n\r\n\tpublic actionRow(row: CampaignsListModel, action: string): void {\r\n\t\tswitch (action) {\r\n\t\t\tcase 'pause':\r\n\t\t\t\tthis.campaignConfirmationDialog(row.id, {\r\n\t\t\t\t\ttitle: 'Pause Campaign',\r\n\t\t\t\t\tcontent: 'Are you sure you want to Pause this Campaign?',\r\n\t\t\t\t\turl: `/campaign/${row.id}/pause`,\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tmessage: 'Selected campaign is successfully paused',\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'stop':\r\n\t\t\t\tthis.campaignConfirmationDialog(row.id, {\r\n\t\t\t\t\ttitle: 'Stop Campaign',\r\n\t\t\t\t\tcontent: 'Are you sure you want to Stop this Campaign?',\r\n\t\t\t\t\turl: `/campaign/${row.id}/stop`,\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tmessage: 'Selected campaign is successfully stop',\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'delete':\r\n\t\t\t\tif (row.status !== 'COMPLETED') {\r\n\t\t\t\t\tthis.campaignConfirmationDialog(row.id, {\r\n\t\t\t\t\t\ttitle: 'Delete Campaign',\r\n\t\t\t\t\t\tcontent:\r\n\t\t\t\t\t\t\t'Are you sure you want to Delete this Campaign?',\r\n\t\t\t\t\t\turl: `/campaign/${row.id}/delete`,\r\n\t\t\t\t\t\tmethod: 'DELETE',\r\n\t\t\t\t\t\tmessage: 'Selected campaign is successfully deleted',\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'live':\r\n\t\t\t\tthis.campaignConfirmationDialog(row.id, {\r\n\t\t\t\t\ttitle: 'Resume Campaign',\r\n\t\t\t\t\tcontent: 'Are you sure you want to Resume this Campaign?',\r\n\t\t\t\t\turl: `/campaign/${row.id}/resume`,\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tmessage: 'Selected campaign is successfully resume',\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate campaignConfirmationDialog(\r\n\t\tid: string,\r\n\t\tdata: {\r\n\t\t\ttitle: string;\r\n\t\t\tcontent: string;\r\n\t\t\turl: string;\r\n\t\t\tmethod: string;\r\n\t\t\tmessage: string;\r\n\t\t}\r\n\t): void {\r\n\t\tconst confirmation = new ConfirmationModel();\r\n\t\tconfirmation.title = data.title;\r\n\t\tconfirmation.content = data.content;\r\n\t\tconfirmation.btnSubmit = 'Yes';\r\n\t\tconfirmation.btnCancel = 'No';\r\n\r\n\t\tconst subs = this.dialog\r\n\t\t\t.open(ConfirmationComponent, {\r\n\t\t\t\tautoFocus: false,\r\n\t\t\t\tbackdropClass: 'overlay-backdrop-dialog',\r\n\t\t\t\tdata: confirmation,\r\n\t\t\t})\r\n\t\t\t.afterClosed()\r\n\t\t\t.subscribe(resp => {\r\n\t\t\t\tif (!resp) return;\r\n\r\n\t\t\t\tthis.campaignService(data);\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate campaignService(data: {\r\n\t\turl: string;\r\n\t\tmethod: string;\r\n\t\tmessage: string;\r\n\t}): void {\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest([], data.url, data.method)\r\n\t\t\t.subscribe(() => {\r\n\t\t\t\tthis.toastr.error(data.message);\r\n\t\t\t\tthis.updateTable.emit();\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\teditCampaign(row: CampaignsListModel): void {\r\n\t\tlocalStorage.removeItem('telin.campaign');\r\n\t\twindow.history.replaceState({}, '', `/secure/campaign/${row.id}`);\r\n\t\tthis.currentView.emit(this.currentViews.NewCampaign);\r\n\t}\r\n\r\n\tpublic openViewDialog(\r\n\t\trow: CampaignResponseDtoApi,\r\n\t\tisShowButton: boolean = false\r\n\t): void {\r\n\t\tlocalStorage.setItem(\r\n\t\t\t'telin.campaign',\r\n\t\t\tJSON.stringify({\r\n\t\t\t\tgeneralInformation: {\r\n\t\t\t\t\tid: row?.id,\r\n\t\t\t\t\tisShowButton: isShowButton,\r\n\t\t\t\t},\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tconst subs = this.dialog\r\n\t\t\t.open(PendingApprovalDialogViewComponent, {\r\n\t\t\t\tautoFocus: false,\r\n\t\t\t\theight: 'calc(100% - 30px)',\r\n\t\t\t\twidth: 'calc(100% - 30px)',\r\n\t\t\t\tmaxWidth: '100%',\r\n\t\t\t\tmaxHeight: '100%',\r\n\t\t\t\tbackdropClass: 'overlay-backdrop-dialog',\r\n\t\t\t})\r\n\t\t\t.afterClosed()\r\n\t\t\t.subscribe(() => {\r\n\t\t\t\tthis.updateTable.emit();\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate convertUTCDateToLocalDate(date: Date) {\r\n\t\tconst newDate = new Date(\r\n\t\t\tdate.getTime() - date.getTimezoneOffset() * 60 * 1000\r\n\t\t);\r\n\t\treturn newDate;\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport {\r\n\tNgbDropdownModule,\r\n\tNgbPaginationModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { MatSelectInfiniteScrollDirective } from '../../../core/directives';\r\nimport { SearchModule } from '../../../global/search/search.module';\r\nimport { CampaignIndexComponent } from './campaign-index.component';\r\nimport { FilterInListOfCampaignComponent } from './component/filter-in-list-of-campaign';\r\nimport { ViewingListOfCampaignTableComponent } from './component/viewing-list-of-campaign-table';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tViewingListOfCampaignTableComponent,\r\n\t\tFilterInListOfCampaignComponent,\r\n\t\tCampaignIndexComponent,\r\n\t\tMatSelectInfiniteScrollDirective,\r\n\t],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatTableModule,\r\n\t\tMatSortModule,\r\n\t\tMatPaginatorModule,\r\n\t\tMatDialogModule,\r\n\t\tMatTabsModule,\r\n\t\tMatCardModule,\r\n\t\tMatCheckboxModule,\r\n\t\tMatSelectModule,\r\n\t\tMatRadioModule,\r\n\t\tMatButtonModule,\r\n\t\tMatIconModule,\r\n\t\tMatChipsModule,\r\n\t\tNgbPaginationModule,\r\n\t\tNgbDropdownModule,\r\n\t\tMatChipsModule,\r\n\t\tMatGridListModule,\r\n\t\tMatNativeDateModule,\r\n\t\tSearchModule,\r\n\t\tMatToolbarModule,\r\n\t\tMatTooltipModule,\r\n\t],\r\n\texports: [CampaignIndexComponent, MatSelectInfiniteScrollDirective],\r\n})\r\nexport class CampaignIndexModule {}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { EChartsOption } from 'echarts';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tCampaignPerformanceChartConfig,\r\n\tConversationInsightsChartConfig,\r\n\tPlatformOptionConst,\r\n\tWidgetLiveCampaignConst,\r\n} from '../../../core/const';\r\nimport { PastTimeEnum } from '../../../core/enums';\r\nimport { MainArea } from '../../../core/enums/main-area.enum';\r\nimport { Parameter } from '../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../core/models/util/api-dto/response-models/app-response';\r\nimport { AppResponseAdl } from '../../../core/models/util/api-dto/response-models/app-response-adl';\r\nimport { ApiAdapterServiceService } from '../../../core/services';\r\nimport { CampaignCountFinalResponseDtoExternal } from '../../models/campaign-count-final-response-dto.model';\r\nimport { ConversationChartResponseDto } from '../campaign-index/models/conversation-chart-response-dto.model';\r\nimport { PerformanceChartResponseDto } from '../campaign-index/models/performance-chart-response-dto.model';\r\n\r\n@Component({\r\n\tselector: 'lib-dashboard',\r\n\ttemplateUrl: './dashboard.component.html',\r\n\tstyleUrls: ['./dashboard.component.scss'],\r\n})\r\nexport class DashboardComponent implements OnInit, OnDestroy {\r\n\tpublic currentViews = MainArea;\r\n\tpublic pastTime = PastTimeEnum;\r\n\r\n\tpublic channelOption: any[] = PlatformOptionConst;\r\n\tpublic performanceCategories: string[] = [];\r\n\tpublic totalCmpn: number[] = [];\r\n\tpublic deliveryRt: number[] = [];\r\n\tpublic costDesc: number[] = [];\r\n\tpublic convsData: any[][] = [];\r\n\r\n\tpublic widgetLiveCampaign = WidgetLiveCampaignConst;\r\n\tpublic conversationChartData: EChartsOption;\r\n\tpublic performanceChartData: EChartsOption;\r\n\tpublic selectedPlatform: any = '';\r\n\tpublic filterEvent: any = 'currentWeek';\r\n\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Output() currentView = new EventEmitter<MainArea>();\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {}\r\n\r\n\tngOnInit(): void {}\r\n\r\n\tpublic changeCurrentView(area: MainArea) {\r\n\t\tthis.currentView.emit(area);\r\n\t}\r\n\r\n\tpublic filterChart(event: string) {\r\n\t\tif (!this.selectedPlatform) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst timeUnit =\r\n\t\t\tevent == PastTimeEnum.Today\r\n\t\t\t\t? 'daily'\r\n\t\t\t\t: event == PastTimeEnum.CurrentWeek\r\n\t\t\t\t? 'weekly'\r\n\t\t\t\t: event == PastTimeEnum.CurrentMonth\r\n\t\t\t\t? 'monthly'\r\n\t\t\t\t: '';\r\n\r\n\t\t/* const parameterList: Array<Parameter> = [\r\n\t\t\t{\r\n\t\t\t\tname: 'timeUnit',\r\n\t\t\t\tvalue: timeUnit,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'clientId',\r\n\t\t\t\tvalue: localStorage.getItem('telin.clientId'),\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'platform',\r\n\t\t\t\tvalue: this.selectedPlatform,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t]; */\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest([], '/campaign/count', 'GET')\r\n\t\t\t.subscribe(\r\n\t\t\t\t(res: AppResponse<CampaignCountFinalResponseDtoExternal>) => {\r\n\t\t\t\t\tconst date =\r\n\t\t\t\t\t\t(res?.data?.totalCampaignPercent ?? 0) +\r\n\t\t\t\t\t\t'% Since ' +\r\n\t\t\t\t\t\tthis.getStatictsWidgetString(event);\r\n\r\n\t\t\t\t\tthis.widgetLiveCampaign[0].arrow =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? '../../../../assets/svg/icon-up-arrow.svg'\r\n\t\t\t\t\t\t\t: '../../../../assets/svg/icon-down-arrow.svg';\r\n\t\t\t\t\tthis.widgetLiveCampaign[0].value =\r\n\t\t\t\t\t\tres?.data?.totalCampaign ?? 0;\r\n\t\t\t\t\tthis.widgetLiveCampaign[0].date = date;\r\n\t\t\t\t\tthis.widgetLiveCampaign[0].dateclass =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? 'greenpercent'\r\n\t\t\t\t\t\t\t: 'redpercent';\r\n\r\n\t\t\t\t\tthis.widgetLiveCampaign[1].arrow =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? '../../../../assets/svg/icon-up-arrow.svg'\r\n\t\t\t\t\t\t\t: '../../../../assets/svg/icon-down-arrow.svg';\r\n\t\t\t\t\tthis.widgetLiveCampaign[1].value =\r\n\t\t\t\t\t\tres?.data?.totalLive ?? 0;\r\n\t\t\t\t\tthis.widgetLiveCampaign[1].date = date;\r\n\t\t\t\t\tthis.widgetLiveCampaign[1].dateclass =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? 'greenpercent'\r\n\t\t\t\t\t\t\t: 'redpercent';\r\n\r\n\t\t\t\t\tthis.widgetLiveCampaign[2].arrow =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? '../../../../assets/svg/icon-up-arrow.svg'\r\n\t\t\t\t\t\t\t: '../../../../assets/svg/icon-down-arrow.svg';\r\n\t\t\t\t\tthis.widgetLiveCampaign[2].value =\r\n\t\t\t\t\t\tres?.data?.totalPending ?? 0;\r\n\t\t\t\t\tthis.widgetLiveCampaign[2].date = date;\r\n\t\t\t\t\tthis.widgetLiveCampaign[2].dateclass =\r\n\t\t\t\t\t\tres?.data?.totalCampaignPercent > 0\r\n\t\t\t\t\t\t\t? 'greenpercent'\r\n\t\t\t\t\t\t\t: 'redpercent';\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\r\n\t\tthis.getPerformanceDetails(timeUnit);\r\n\t\tthis.getConversationDetails(timeUnit);\r\n\t}\r\n\r\n\tprivate getPerformanceDetails(timeUnit: string) {\r\n\t\tif (!this.selectedPlatform) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.setPerformanceChartData();\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\t{\r\n\t\t\t\tname: 'timeUnit',\r\n\t\t\t\tvalue: timeUnit,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'clientId',\r\n\t\t\t\tvalue: localStorage.getItem('telin.clientId'),\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'platform',\r\n\t\t\t\tvalue:\r\n\t\t\t\t\tthis.selectedPlatform === 'WHATSAPP'\r\n\t\t\t\t\t\t? 'WA'\r\n\t\t\t\t\t\t: this.selectedPlatform,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(\r\n\t\t\t\tparameterList,\r\n\t\t\t\t'/report/campaign/performance',\r\n\t\t\t\t'GET'\r\n\t\t\t)\r\n\t\t\t.subscribe((res: AppResponseAdl<PerformanceChartResponseDto>) => {\r\n\t\t\t\tthis.performanceCategories = [];\r\n\t\t\t\tthis.totalCmpn = [];\r\n\t\t\t\tthis.deliveryRt = [];\r\n\t\t\t\tthis.costDesc = [];\r\n\r\n\t\t\t\tif (res?.data && Object.entries(res.data).length !== 0) {\r\n\t\t\t\t\tfor (let item of res.data.categories) {\r\n\t\t\t\t\t\tthis.performanceCategories.push(item);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (let series of res.data.series) {\r\n\t\t\t\t\t\tif (series.name === 'Total Campaign') {\r\n\t\t\t\t\t\t\tthis.totalCmpn = series.data?.map(value => value);\r\n\t\t\t\t\t\t} else if (series.name === 'Delivery Rate') {\r\n\t\t\t\t\t\t\tthis.deliveryRt = series.data?.map(value => value);\r\n\t\t\t\t\t\t} else if (series.name === 'Cost Distribution') {\r\n\t\t\t\t\t\t\tthis.costDesc = series.data?.map(value => value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.setPerformanceChartData();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate setPerformanceChartData() {\r\n\t\tthis.performanceChartData = ConversationInsightsChartConfig;\r\n\t\tthis.performanceChartData.xAxis.data = this.performanceCategories;\r\n\t\tthis.performanceChartData.series[0].data = this.deliveryRt;\r\n\t\tthis.performanceChartData.series[1].data = this.totalCmpn;\r\n\t\tthis.performanceChartData.series[2].data = this.costDesc;\r\n\t}\r\n\r\n\tprivate getConversationDetails(timeUnit: string) {\r\n\t\tif (!this.selectedPlatform) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.setConversationChartData();\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\t{\r\n\t\t\t\tname: 'timeUnit',\r\n\t\t\t\tvalue: timeUnit,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'clientId',\r\n\t\t\t\tvalue: localStorage.getItem('telin.clientId'),\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: 'platform',\r\n\t\t\t\tvalue:\r\n\t\t\t\t\tthis.selectedPlatform === 'WHATSAPP'\r\n\t\t\t\t\t\t? 'WA'\r\n\t\t\t\t\t\t: this.selectedPlatform,\r\n\t\t\t\tin: 'query',\r\n\t\t\t\ttype: 'String',\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(\r\n\t\t\t\tparameterList,\r\n\t\t\t\t'/report/campaign/conversation',\r\n\t\t\t\t'GET'\r\n\t\t\t)\r\n\t\t\t.subscribe((res: AppResponseAdl<ConversationChartResponseDto>) => {\r\n\t\t\t\tthis.convsData = [];\r\n\r\n\t\t\t\tif (res?.data) {\r\n\t\t\t\t\tfor (let i = 0; i < res.data.categories?.length; i++) {\r\n\t\t\t\t\t\tthis.convsData[i] = new Array();\r\n\t\t\t\t\t\tthis.convsData[i].push(res.data.categories[i]);\r\n\r\n\t\t\t\t\t\tfor (let j = 1; j <= res.data.series?.length; j++) {\r\n\t\t\t\t\t\t\tthis.convsData[i].push(\r\n\t\t\t\t\t\t\t\tres.data.series[j - 1].data[i]\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.setConversationChartData();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate setConversationChartData() {\r\n\t\tthis.conversationChartData = CampaignPerformanceChartConfig;\r\n\t\tthis.convsData.forEach(data => {\r\n\t\t\tif (data) {\r\n\t\t\t\tthis.conversationChartData.dataset.source.push(data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getStatictsWidgetString(event: string): string {\r\n\t\treturn event == PastTimeEnum.Today\r\n\t\t\t? PastTimeEnum.Yesterday\r\n\t\t\t: event == PastTimeEnum.CurrentWeek\r\n\t\t\t? PastTimeEnum.LastWeek\r\n\t\t\t: event == PastTimeEnum.CurrentMonth\r\n\t\t\t? PastTimeEnum.LastMonth\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { PickerModule } from '@ctrl/ngx-emoji-mart';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { DashboardComponent } from './dashboard.component';\r\n\r\n@NgModule({\r\n\tdeclarations: [DashboardComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tMatAutocompleteModule,\r\n\t\tFormsModule,\r\n\t\tMatGridListModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatSelectModule,\r\n\t\tMatRadioModule,\r\n\t\tMatListModule,\r\n\t\tMatButtonModule,\r\n\t\tMatIconModule,\r\n\t\tPickerModule,\r\n\t\tAngularEditorModule,\r\n\t\tMatButtonToggleModule,\r\n\t\tMatDialogModule,\r\n\t\tMatTabsModule,\r\n\t\tMatBadgeModule,\r\n\t\tNgbDropdownModule,\r\n\t\tNgxEchartsModule,\r\n\t],\r\n\texports: [DashboardComponent],\r\n})\r\nexport class DashboardModule {}\r\n","export class FailoverReqModel {\r\n\tpublic active: boolean;\r\n\tpublic type: string;\r\n\tpublic interval: number;\r\n\tpublic accounts: FailoverAccountReqModel[];\r\n\r\n\tconstructor() {}\r\n\r\n\tpublic clone(source: any): FailoverReqModel {\r\n\t\tthis.active = source.active;\r\n\t\tthis.interval = source.interval ?? 0;\r\n\t\tthis.type = source.type ?? '';\r\n\r\n\t\tif (source.accounts) {\r\n\t\t\tthis.accounts = source.accounts.reduce((result, each) => {\r\n\t\t\t\tresult.push(new FailoverAccountReqModel().clone(each));\r\n\t\t\t\treturn result;\r\n\t\t\t}, []);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\tfailover: this,\r\n\t\t};\r\n\t}\r\n}\r\n\r\nclass FailoverAccountReqModel {\r\n\tpublic accountId: string;\r\n\tpublic accountName: string;\r\n\tpublic subject: string;\r\n\tpublic platform: string;\r\n\tpublic template: {\r\n\t\tid: string;\r\n\t\tname: string;\r\n\t\tlang: string;\r\n\t\tdata: string[];\r\n\t};\r\n\r\n\tconstructor() {}\r\n\r\n\tpublic clone(source: any): FailoverAccountReqModel {\r\n\t\tthis.accountId = source.accountId?.id ?? '';\r\n\t\tthis.accountName = source.accountName ?? '';\r\n\t\tthis.subject = source.subject ?? '';\r\n\t\tthis.platform = source.platform ?? '';\r\n\t\tthis.template = {\r\n\t\t\tid: source.template?.ID ?? '',\r\n\t\t\tname: source.template?.name ?? source.template ?? '',\r\n\t\t\tlang: source.template?.lang ?? '',\r\n\t\t\tdata: source.paramBody?.map((t: any) => t.name) ?? [],\r\n\t\t};\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn this;\r\n\t}\r\n}\r\n","export class GeneralInformationWAReqModel {\r\n public name: string;\r\n public accountId: string;\r\n public type: string;\r\n public text: string;\r\n public subject: string;\r\n public image: {\r\n url: string;\r\n };\r\n public video: {\r\n url: string;\r\n };\r\n public document: {\r\n url: string;\r\n fileName: string;\r\n };\r\n public template: {\r\n id?: string;\r\n name: string;\r\n lang: string;\r\n headerUrl?: string;\r\n header: any;\r\n data: any[];\r\n button: any;\r\n buttonParams: any[];\r\n carousel?: any[];\r\n };\r\n public list: {\r\n button: string;\r\n sections: {\r\n title: string;\r\n items: {\r\n id: string;\r\n title: string;\r\n description: string;\r\n }[];\r\n }[];\r\n };\r\n public buttons: {\r\n type: string;\r\n id: string;\r\n title: string;\r\n }[];\r\n\r\n public category: string;\r\n public isNeedSave: boolean;\r\n public ttlSeconds: number;\r\n\r\n public clone(source: any): GeneralInformationWAReqModel {\r\n if (\r\n source?.media === 'IMAGE' ||\r\n source?.media === 'VIDEO' ||\r\n source?.media === 'DOCUMENT'\r\n ) {\r\n source.channel = source.media;\r\n }\r\n\r\n if (source.campaignName) {\r\n this.name = source.campaignName;\r\n }\r\n if (source.medium === 'EMAIL') {\r\n this.subject = source.campaignName;\r\n }\r\n if (source.from?.id) {\r\n this.accountId = source.from.id;\r\n }\r\n if (source.channel) {\r\n this.type = source.channel?.toLowerCase();\r\n }\r\n if (source.text) {\r\n this.text = source.text;\r\n }\r\n if (this.type === 'image' && source.fileName) {\r\n this.image = {\r\n url: source.targetURL,\r\n };\r\n }\r\n if (this.type === 'video' && source.fileName) {\r\n this.video = {\r\n url: source.targetURL,\r\n };\r\n }\r\n if (this.type === 'document' && source.fileName) {\r\n this.document = {\r\n url: source.targetURL,\r\n fileName: source.fileName,\r\n };\r\n }\r\n\r\n if (source.template) {\r\n let qrIndex = 0;\r\n const finalButtons =\r\n source.paramButton?.reduce((result: any[], each: any, idx: number) => {\r\n const btnDef = source.template?.buttons?.[idx];\r\n\r\n if (btnDef?.type === 'QUICK_REPLY') {\r\n const qrParam =\r\n source.buttonParams && source.buttonParams[qrIndex]\r\n ? source.buttonParams[qrIndex]\r\n : null;\r\n qrIndex++;\r\n result.push(\r\n qrParam ? [qrParam.payload ? qrParam.payload : qrParam.label] : []\r\n );\r\n } else {\r\n result.push(each.name?.map((t: any) => t.name) ?? []);\r\n }\r\n\r\n return result;\r\n }, []) ?? [];\r\n\r\n // CAROUSEL\r\n let carouselPayload = undefined;\r\n if (source.paramCarousel && source.paramCarousel.length > 0) {\r\n carouselPayload = source.paramCarousel.map((card: any) => {\r\n const mappedBody = (card.bodyParams || []).map((b: any) => b.paramName || '');\r\n const mappedButtons = (card.buttonParams || []).map((btnGroup: any[]) => {\r\n return (btnGroup || []).map((btn: any) => {\r\n if (btn.payload !== undefined && btn.payload !== null) {\r\n return btn.payload;\r\n }\r\n return btn.paramName || '';\r\n });\r\n });\r\n\r\n return {\r\n headerURL: card.headerURL || '',\r\n body: mappedBody,\r\n button: mappedButtons,\r\n };\r\n });\r\n }\r\n\r\n this.template = {\r\n id: source.template.ID,\r\n name: source.template.name,\r\n lang: source.template.lang,\r\n headerUrl: source.targetURL,\r\n header: source.paramHeader?.map((t: any) => t.name) ?? [],\r\n data:\r\n source.isUseExistingTemplate && source.variables?.length\r\n ? source.variables.map((v: any) => v.paramName)\r\n : (source.paramBody?.map((t: any) => t.name) ?? []),\r\n\r\n button: finalButtons,\r\n buttonParams: source.buttonParams\r\n ? source.buttonParams.map((btn: any) => {\r\n return {\r\n label: btn.label,\r\n payload: btn.payload ? btn.payload : btn.label,\r\n };\r\n })\r\n : [],\r\n ...(carouselPayload && carouselPayload.length > 0\r\n ? { carousel: carouselPayload }\r\n : {}),\r\n };\r\n\r\n if (source.template.category === 'AUTHENTICATION')\r\n this.template = {\r\n name: source.template.name,\r\n lang: source.template.lang,\r\n header: null,\r\n data: [source.otpValue],\r\n button: [[source.otpValue]],\r\n buttonParams: [],\r\n };\r\n\r\n if (source.template.ID) this.template.id = source.template.ID;\r\n }\r\n\r\n if (this.type === 'utility') {\r\n this.type = 'template';\r\n this.category = 'utility';\r\n\r\n const mappedVariables = source?.variables?.length\r\n ? source.variables.map((v: any) => v.paramName)\r\n : [];\r\n\r\n if (source?.isUseExistingTemplate) {\r\n this.template = {\r\n ...source.template,\r\n data: mappedVariables.length > 0 ? mappedVariables : source.template.data || [],\r\n };\r\n } else {\r\n this.template = {\r\n name: '',\r\n lang: 'id',\r\n header: null,\r\n button: null,\r\n data: mappedVariables,\r\n buttonParams: [],\r\n };\r\n }\r\n\r\n this.isNeedSave = source.isNeedSave;\r\n this.ttlSeconds = source.ttl;\r\n\r\n if (source?.isUseExistingTemplate) {\r\n this.text = source?.text || source?.template?.body?.text;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public convert(): any {\r\n return this;\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\n\r\nexport class SchedulerReqModel {\r\n\tpublic type: string;\r\n\tpublic startTime: string;\r\n\tpublic repeat: boolean;\r\n\tpublic tz: string;\r\n\tprivate datePipe: DatePipe;\r\n\r\n\tconstructor() {\r\n\t\tthis.datePipe = new DatePipe('en-US');\r\n\t}\r\n\r\n\tpublic clone(source: any): SchedulerReqModel {\r\n\t\tif (source.schedulerType) {\r\n\t\t\tthis.type = source.delivery ? 'MULTI' : source.schedulerType;\r\n\t\t}\r\n\t\tif (source.startDate) {\r\n\t\t\tthis.startTime = `${this.datePipe.transform(\r\n\t\t\t\tsource.startDate,\r\n\t\t\t\t'yyyy-MM-dd'\r\n\t\t\t)} ${source.startTime}`;\r\n\t\t}\r\n\t\tif (source.delivery) {\r\n\t\t\tthis.repeat = source.delivery.toUpperCase();\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic convert(): any {\r\n\t\treturn {\r\n\t\t\ttype: this.type,\r\n\t\t\tstartTime: this.startTime,\r\n\t\t\trepeat: this.repeat,\r\n\t\t\ttz: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n\t\t};\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormArray, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { SegmentedMessage } from 'sms-segments-calculator';\r\nimport { MainArea } from '../../../core/enums';\r\nimport { Parameter } from '../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../core/services';\r\nimport { ConfirmationComponent } from '../../../global/confirmation/confirmation';\r\nimport { ConfirmationModel } from '../../../global/confirmation/shared/model';\r\nimport { FailoverReqModel, GeneralInformationWAReqModel, SchedulerReqModel } from '../../models';\r\n\r\n@Component({\r\n selector: 'lib-new-campaign',\r\n templateUrl: './new-campaign.component.html',\r\n styleUrls: ['./new-campaign.component.scss'],\r\n})\r\nexport class NewCampaignComponent implements OnInit, OnDestroy {\r\n @Output() currentView = new EventEmitter<MainArea>();\r\n\r\n public campaignID: string;\r\n public currentViews = MainArea;\r\n public positionWizard: number = 1;\r\n public dataWizard: string[];\r\n public isLoading: boolean = false;\r\n public isSubmit: boolean = false;\r\n public isGeneralInformationValid: boolean = false;\r\n public isFailoverMechanismValid: boolean = false;\r\n public isNumberBaseInformationValid: boolean = false;\r\n public isSchedulerInformationValid: boolean = false;\r\n public isLine: boolean = false;\r\n public generalInformationData: any;\r\n public failoverMechanismData: any;\r\n public targetAudienceData: string[];\r\n public targetAudienceCount: number;\r\n public targetAudienceFile: any;\r\n public schedulerData: any;\r\n\r\n private isUploadTargetAudience: boolean = false;\r\n private subscribers: Subscription[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private apiAdapterService: ApiAdapterServiceService,\r\n private toastr: ToastrService,\r\n private httpClient: HttpClient\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.campaignID = window.location.pathname?.split('/')?.pop();\r\n this.initWizard();\r\n this.getCampaignDetailService();\r\n }\r\n\r\n private initWizard(): void {\r\n if (!this.isLine) {\r\n this.dataWizard = [\r\n 'General Information',\r\n 'Failover Mechanism',\r\n 'Target Audience',\r\n 'Scheduler',\r\n 'Summary',\r\n ];\r\n return;\r\n }\r\n\r\n this.dataWizard = ['General Information', 'Target Audience', 'Scheduler', 'Summary'];\r\n }\r\n\r\n private getCampaignDetailService(): void {\r\n if (this.campaignID?.length < 10) return;\r\n\r\n this.isLoading = true;\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest([], `/campaign/${this.campaignID}`, 'GET')\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n if (!resp) return;\r\n\r\n const generalInformation = {\r\n campaignName: resp.data?.name,\r\n medium: resp.data?.platform,\r\n channel: ['image', 'video', 'document'].includes(resp.data?.type)\r\n ? 'MEDIA'\r\n : resp.data?.isDirectSend\r\n ? 'utility'\r\n : resp.data?.type?.toUpperCase(),\r\n media: resp.data?.type?.toUpperCase(),\r\n isPrevTemplate: resp?.data?.isPrevTemplate,\r\n templateName: resp?.data?.templateName,\r\n ttl: resp?.data?.ttlSeconds,\r\n from: {\r\n id: resp.data?.accountId,\r\n name: resp.data?.accountName,\r\n platform: resp.data?.platform,\r\n clientId: resp.data?.clientId,\r\n clientName: resp.data?.clientName,\r\n accountNo: resp.data?.accountNo,\r\n wabaId: resp.data?.wabaId ?? '',\r\n },\r\n text: resp.data?.details?.text,\r\n targetURL:\r\n resp.data?.details?.image?.url ??\r\n resp.data?.details?.document?.url ??\r\n resp.data?.details?.video?.url ??\r\n resp.data?.details?.template?.headerURL,\r\n paramHeader: resp.data?.details?.template?.header,\r\n paramBody: resp.data?.details?.template?.data,\r\n paramButton: resp.data?.details?.template?.button,\r\n paramCarousel:\r\n resp.data?.details?.template?.carousel?.map((card: any) => {\r\n return {\r\n headerURL: card.headerURL || '',\r\n bodyParams: (card.body || []).map((val: string) => ({\r\n paramName: val,\r\n })),\r\n buttonParams: (card.button || []).map((btnGroup: any[]) => {\r\n return (btnGroup || []).map((val: string) => ({\r\n paramName: val,\r\n payload: val,\r\n }));\r\n }),\r\n };\r\n }) || [],\r\n otpValue: [...(resp.data?.details?.template?.data ?? [])]?.pop(),\r\n variables: (resp.data?.details?.template?.data || []).map(\r\n (val: string) => ({\r\n paramName: val,\r\n })\r\n ),\r\n isUseExistingTemplate: !!resp.data?.templateName,\r\n template: {\r\n ID: resp.data?.details?.template?.id,\r\n name: resp.data?.details?.template?.name,\r\n lang: resp.data?.details?.template?.lang,\r\n platform: resp.data?.platform,\r\n headerURL: resp.data?.details?.template?.headerURL,\r\n header: {\r\n examples: resp.data?.details?.template?.header,\r\n },\r\n body: {\r\n examples: resp.data?.details?.template?.data,\r\n },\r\n buttons: resp.data?.details?.template?.button,\r\n ClientId: resp.data?.clientId,\r\n ClientName: resp.data?.clientName,\r\n },\r\n isUpload: resp.data?.fileId !== '',\r\n fileId: resp.data?.fileId,\r\n };\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n generalInformation: {\r\n id: resp.data?.id,\r\n form: generalInformation,\r\n },\r\n failover: resp.data?.failover,\r\n targetAudience: resp.data?.targets,\r\n targetAudienceFile: {\r\n name: resp.data?.fileName,\r\n targetURL: resp.data?.targetURL,\r\n },\r\n scheduler: {\r\n schedulerType:\r\n resp.data?.scheduleType === 'MULTI'\r\n ? 'ONE_TIME'\r\n : resp.data?.scheduleType,\r\n startDate: resp.data?.startTime?.split(' ')[0],\r\n startTime: resp.data?.startTime?.split(' ')[1],\r\n isRepeat: resp.data?.scheduleType === 'MULTI',\r\n delivery: resp.data?.repeat,\r\n },\r\n },\r\n })\r\n );\r\n\r\n this.isLine = resp.data?.platform === 'LINE';\r\n this.isLoading = false;\r\n\r\n this.initWizard();\r\n },\r\n () => {\r\n this.isLoading = false;\r\n }\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public generalInformation(form: { parent: FormGroup; child: FormGroup }): void {\r\n this.isGeneralInformationValid = form.parent.valid && form.child && form.child?.valid;\r\n this.isLine = form.parent?.getRawValue()?.medium === 'LINE';\r\n\r\n this.initWizard();\r\n\r\n if (form.parent && form.child)\r\n this.generalInformationData = {\r\n ...form.parent.getRawValue(),\r\n ...form.child.getRawValue(),\r\n };\r\n }\r\n\r\n public failoverMechanism(form: FormGroup): void {\r\n this.isFailoverMechanismValid = form.valid;\r\n this.failoverMechanismData = form.getRawValue();\r\n }\r\n\r\n public targetAudience(target: {\r\n targetAudience: string[];\r\n numberCount: number;\r\n isUpload: boolean;\r\n file: any;\r\n }): void {\r\n this.targetAudienceFile = target.file;\r\n this.targetAudienceData = target.targetAudience;\r\n this.targetAudienceCount = target.numberCount;\r\n this.isUploadTargetAudience = target.isUpload;\r\n this.isNumberBaseInformationValid =\r\n (target.isUpload && target.file?.name) ||\r\n (!target.isUpload && target.targetAudience.length > 0) ||\r\n this.getCampaignStorage?.generalInformation?.form?.fileId;\r\n }\r\n\r\n public scheduler(form: FormGroup): void {\r\n this.schedulerData = form.getRawValue();\r\n this.isSchedulerInformationValid = form.valid;\r\n }\r\n\r\n public onClickSaveAndNextButton(): void {\r\n this.isSubmit = true;\r\n\r\n switch (this.positionWizard) {\r\n case 1:\r\n this.saveGeneralInformationService();\r\n break;\r\n case 2:\r\n !this.isLine ? this.saveFailoverMechanismService() : this.saveNumberBasesService();\r\n break;\r\n case 3:\r\n !this.isLine ? this.saveNumberBasesService() : this.saveSchedulerService();\r\n break;\r\n case 4:\r\n if (!this.isLine) this.saveSchedulerService();\r\n break;\r\n default:\r\n this.isSubmit = false;\r\n break;\r\n }\r\n }\r\n\r\n get getCampaignStorage(): any {\r\n return localStorage.getItem('telin.campaign')\r\n ? JSON.parse(localStorage.getItem('telin.campaign'))\r\n : {};\r\n }\r\n\r\n get getBody(): string {\r\n const body =\r\n this.generalInformationData?.text ||\r\n this.generalInformationData?.template?.body?.text ||\r\n this.generalInformationData?.body?.text;\r\n\r\n return (\r\n body\r\n ?.split(/\\\\n|\\n/)\r\n .join('<br />')\r\n .split(/\\\\t|\\t/)\r\n .join(' ') ?? ''\r\n );\r\n }\r\n\r\n public onCheckTwilioCounterValid = (): boolean => {\r\n const valuesGeneral = this.generalInformationData;\r\n\r\n if (valuesGeneral?.medium !== 'SMS') {\r\n return true;\r\n }\r\n\r\n if (valuesGeneral?.channel === 'TEXT') {\r\n const segmentedMessage = new SegmentedMessage(this.getBody);\r\n const result = {\r\n segments: segmentedMessage.segmentsCount,\r\n encoding: segmentedMessage.encodingName,\r\n characters: segmentedMessage.numberOfUnicodeScalars,\r\n };\r\n\r\n if (result.segments > 10) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n let valueResult = this.getBody;\r\n Array.from(valuesGeneral.template?.body?.examples || []).map((entry, index) => {\r\n if (valuesGeneral.paramBody.length > 0) {\r\n const placeholder = `{{${entry}}}`;\r\n const value = valuesGeneral.paramBody[index].name;\r\n valueResult = valueResult.split(placeholder).join(value);\r\n }\r\n });\r\n\r\n const segmentedMessage = new SegmentedMessage(valueResult);\r\n const result = {\r\n segments: segmentedMessage.segmentsCount,\r\n encoding: segmentedMessage.encodingName,\r\n characters: segmentedMessage.numberOfUnicodeScalars,\r\n };\r\n\r\n if (result.segments > 10) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n };\r\n\r\n private async saveGeneralInformationService(): Promise<void> {\r\n if (!this.onCheckTwilioCounterValid()) {\r\n this.toastr.error('Segment cannot more than 10');\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n const bodyReq = new GeneralInformationWAReqModel().clone({\r\n ...this.generalInformationData,\r\n });\r\n\r\n const payloadValue = bodyReq.convert();\r\n\r\n this.saveGeneralInformation(payloadValue);\r\n }\r\n\r\n private saveGeneralInformation(payloadValue: any): void {\r\n if (payloadValue.template && this.generalInformationData.template) {\r\n payloadValue.template.type =\r\n payloadValue.template.type || this.generalInformationData.template.category;\r\n }\r\n\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'data',\r\n value: payloadValue,\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n if (payloadValue.template && payloadValue.template.buttonParams) {\r\n delete payloadValue.template.buttonParams;\r\n }\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n this.generalInformationData.id\r\n ? `/campaign/${this.generalInformationData.id}`\r\n : '/campaign',\r\n this.generalInformationData.id ? 'PUT' : 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n generalInformation: {\r\n id: resp.data.id,\r\n form: this.generalInformationData,\r\n },\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private saveFailoverMechanismService(): void {\r\n const bodyReq = new FailoverReqModel().clone({\r\n ...this.failoverMechanismData,\r\n });\r\n\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'data',\r\n value: bodyReq.convert(),\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/failover`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n failover: this.failoverMechanismData,\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private saveNumberBasesService(): void {\r\n if (this.targetAudienceData.length === 0 || this.isUploadTargetAudience) {\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n targetAudience: this.targetAudienceData,\r\n targetAudienceCount: this.targetAudienceCount,\r\n targetAudienceFile: this.targetAudienceFile,\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n return;\r\n }\r\n\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'data',\r\n value: {\r\n targets: this.targetAudienceData,\r\n numberCount: this.targetAudienceCount,\r\n },\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/targetcategory`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n targetAudience: this.targetAudienceData,\r\n targetAudienceCount: this.targetAudienceCount,\r\n targetAudienceFile: this.targetAudienceFile,\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private saveSchedulerService(): void {\r\n const bodyReq = new SchedulerReqModel().clone({\r\n ...this.schedulerData,\r\n });\r\n\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'data',\r\n value: bodyReq.convert(),\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/schedule`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n 'telin.campaign',\r\n JSON.stringify({\r\n ...this.getCampaignStorage,\r\n ...{\r\n scheduler: this.schedulerData,\r\n },\r\n })\r\n );\r\n\r\n this.isSubmit = false;\r\n this.positionWizard += 1;\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public onPrevious(): void {\r\n this.positionWizard -= 1;\r\n }\r\n\r\n public changeCurrentView(area: MainArea) {\r\n this.openConfirmationDialog(area);\r\n }\r\n\r\n private openConfirmationDialog(area: MainArea): void {\r\n const confirmation = new ConfirmationModel();\r\n\r\n confirmation.title = 'Cancel Add Broadcast';\r\n confirmation.content = `Are you sure you want to cancel<br/> Add Broadcast?`;\r\n confirmation.btnSubmitRed = 'Yes';\r\n confirmation.btnCancel = 'No';\r\n\r\n const subs = this.dialog\r\n .open(ConfirmationComponent, {\r\n autoFocus: false,\r\n backdropClass: 'overlay-backdrop-dialog',\r\n data: confirmation,\r\n })\r\n .afterClosed()\r\n .subscribe((resp) => {\r\n if (resp) {\r\n window.history.replaceState(\r\n {},\r\n `/${this.getCampaignStorage?.generalInformation?.id}`,\r\n '/secure/campaign'\r\n );\r\n\r\n this.currentView.emit(area);\r\n }\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public onSubmitForApproval(): void {\r\n const parameterList: Array<Parameter> = [];\r\n this.isSubmit = true;\r\n\r\n if (this.getCampaignStorage?.targetAudienceFile?.name)\r\n parameterList.push({\r\n name: 'isFile',\r\n value: true,\r\n in: 'query',\r\n type: 'string',\r\n });\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(\r\n parameterList,\r\n `/campaign/${this.getCampaignStorage?.generalInformation?.id}/submit`,\r\n 'POST'\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (resp?.message?.toLowerCase() !== 'success') {\r\n this.isSubmit = false;\r\n return;\r\n }\r\n\r\n window.history.replaceState(\r\n {},\r\n `/${this.getCampaignStorage?.generalInformation?.id}`,\r\n '/secure/campaign'\r\n );\r\n\r\n this.toastr.success('Campaign submitted for approval!');\r\n this.isSubmit = false;\r\n this.currentView.emit(this.currentViews.CampaignIndex);\r\n },\r\n () => (this.isSubmit = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscribers.forEach((each) => each.unsubscribe());\r\n }\r\n}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tGeneralInformationEmailMessageValidationConst,\r\n\tMsgTypeEmailOptionConst,\r\n} from '../../../../../core/const';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../../models';\r\n\r\n@Component({\r\n\tselector: 'lib-general-information-email',\r\n\ttemplateUrl: './general-information-email.component.html',\r\n\tstyleUrls: ['./general-information-email.component.scss'],\r\n})\r\nexport class GeneralInformationEmailComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic updateGeneralInformationForm: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic validationMessages: any;\r\n\tpublic msgTypeWAOption: any[] = [];\r\n\tpublic accountOption: WhatsAppAccountDto[] = [];\r\n\tpublic isHaveNextAccountOption: boolean = true;\r\n\tpublic isLoadingAccountOption: boolean = false;\r\n\tpublic templateOption: TemplateWAModel[] = [];\r\n\tpublic isHaveNextTemplateOption: boolean = true;\r\n\tpublic isLoadingTemplateOption: boolean = false;\r\n\tpublic isHaveTemplateParam: boolean = false;\r\n\r\n\tprivate pageNoAccountOption: number = 1;\r\n\tprivate pageNoTemplateOption: number = 1;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\t@Input()\r\n\tset isTouchedForm(status: boolean) {\r\n\t\tif (!this.updateGeneralInformationForm) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.updateGeneralInformationForm = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.validationMessages = GeneralInformationEmailMessageValidationConst;\r\n\t\tthis.msgTypeWAOption = MsgTypeEmailOptionConst;\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initDisable();\r\n\t\tthis.initEdit();\r\n\t\tthis.initValidation();\r\n\t\tthis.getAccountOptionService(\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium ===\r\n\t\t\t\t'EMAIL'\r\n\t\t\t\t? this.getCampaignStorage?.generalInformation?.form?.from?.name\r\n\t\t\t\t: ''\r\n\t\t);\r\n\t}\r\n\r\n\tget getCampaignStorage(): any {\r\n\t\treturn localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tchannel: new FormControl(null, Validators.required),\r\n\t\t\tfrom: new FormControl(null, Validators.required),\r\n\t\t\ttext: new FormControl(null, Validators.required),\r\n\t\t\ttemplate: new FormControl(null, Validators.required),\r\n\t\t\tparamBody: new FormArray([], Validators.required),\r\n\t\t\tisUpload: new FormControl(false),\r\n\t\t\tfileId: new FormControl(''),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(): void {\r\n\t\tif (\r\n\t\t\tObject.entries(this.getCampaignStorage).length === 0 ||\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium !==\r\n\t\t\t\t'EMAIL'\r\n\t\t)\r\n\t\t\treturn;\r\n\r\n\t\tthis.form\r\n\t\t\t.get('channel')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.channel\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('from')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.from);\r\n\t\tthis.form\r\n\t\t\t.get('text')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.text);\r\n\t\tthis.form\r\n\t\t\t.get('template')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.template\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('isUpload')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.isUpload\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('fileId')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.fileId);\r\n\r\n\t\tthis.isHaveTemplateParam = this.form.get('isUpload').value;\r\n\t\tthis.getTemplateOptionService(\r\n\t\t\tnull,\r\n\t\t\tthis.form.get('template').value?.name\r\n\t\t);\r\n\t}\r\n\r\n\tget getIsTemplate(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.form.get('channel').value &&\r\n\t\t\tthis.form.get('channel').value?.toLowerCase() === 'template'\r\n\t\t);\r\n\t}\r\n\r\n\tprivate initValidation(): void {\r\n\t\tfor (const key in this.form.controls) {\r\n\t\t\tthis.form.controls[key].clearValidators();\r\n\t\t\tthis.form.controls[key].updateValueAndValidity();\r\n\t\t}\r\n\r\n\t\tthis.form.get('channel').setValidators(Validators.required);\r\n\t\tthis.form.get('from').setValidators(Validators.required);\r\n\r\n\t\tif (this.getIsTemplate) {\r\n\t\t\tthis.form.get('template').setValidators(Validators.required);\r\n\t\t\tthis.form.get('template').updateValueAndValidity();\r\n\t\t\tthis.form.get('paramBody').setValidators(Validators.required);\r\n\t\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t\t} else {\r\n\t\t\tthis.form.get('text').setValidators(Validators.required);\r\n\t\t\tthis.form.get('text').updateValueAndValidity();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic formReset(_isMediaType: boolean = false): void {\r\n\t\tthis.form.get('text').reset();\r\n\t\tthis.form.get('template').reset();\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\r\n\t\tthis.initValidation();\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getAccountOptionService(\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingAccountOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoAccountOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'EMAIL', 'string'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/admin/account', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n\t\t\t\tif (!resp.data) return;\r\n\r\n\t\t\t\tthis.accountOption = isInfinite\r\n\t\t\t\t\t? [...this.accountOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextAccountOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingAccountOption = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tevent: string = null,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'EMAIL', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'clientId',\r\n\t\t\t\tthis.form.get('from').value?.clientId,\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'wabaId',\r\n\t\t\t\tthis.form.get('from').value?.wabaId ?? '',\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t];\r\n\r\n\t\tif (this.isReadOnlyMode)\r\n\t\t\tparameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption = isInfinite\r\n\t\t\t\t\t? [...this.templateOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextTemplateOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption = false;\r\n\r\n\t\t\t\tconst template = this.templateOption?.find(\r\n\t\t\t\t\tt => t.ID === this.form.get('template').value?.ID\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\tthis.form.get('template').setValue(template);\r\n\r\n\t\t\t\t\tif (this.form.get('isUpload').value)\r\n\t\t\t\t\t\treturn this.updateDownloadCSV(\r\n\t\t\t\t\t\t\tthis.form.get('isUpload').value\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParameter(value: string = ''): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tname: new FormControl(\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue: value,\r\n\t\t\t\t\tdisabled:\r\n\t\t\t\t\t\tthis.isReadOnlyMode ||\r\n\t\t\t\t\t\t['UnsubscribeAccount'].includes(value),\r\n\t\t\t\t},\r\n\t\t\t\tValidators.required\r\n\t\t\t),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tget getParamBody(): FormGroup[] {\r\n\t\treturn (this.form.get('paramBody') as FormArray)\r\n\t\t\t.controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addParamBody(value: string = ''): void {\r\n\t\tconst form = this.initParameter(value);\r\n\t\t(this.form.get('paramBody') as FormArray).push(form);\r\n\t}\r\n\r\n\tpublic getNextAccountBatch() {\r\n\t\tif (!this.isHaveNextAccountOption) return;\r\n\r\n\t\tthis.pageNoAccountOption += 1;\r\n\t\tthis.getAccountOptionService('', true);\r\n\t}\r\n\r\n\tpublic accountSelectedDisplay(\r\n\t\tattribute1: WhatsAppAccountDto,\r\n\t\tattribute2: WhatsAppAccountDto\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.id == attribute2.id\r\n\t\t\t? `${attribute1.name} (${attribute1.accountNo})`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch() {\r\n\t\tif (!this.isHaveNextTemplateOption) return;\r\n\r\n\t\tthis.pageNoTemplateOption += 1;\r\n\t\tthis.getTemplateOptionService(null, '', true);\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic updateTemplate(template: TemplateWAModel): void {\r\n\t\tif (!template) return;\r\n\r\n\t\tthis.isHaveTemplateParam = template.body.examples?.length > 0;\r\n\r\n\t\ttemplate.body.examples?.length > 0\r\n\t\t\t? this.form.get('paramBody').setValidators(Validators.required)\r\n\t\t\t: this.form.get('paramBody').clearValidators();\r\n\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\r\n\t\tconst formStorage = this.getCampaignStorage?.generalInformation?.form;\r\n\r\n\t\ttemplate.body.examples?.forEach((each, index) => {\r\n\t\t\tlet paramValue =\r\n\t\t\t\tformStorage?.paramBody?.[index]?.name ??\r\n\t\t\t\tformStorage?.paramBody?.[index] ??\r\n\t\t\t\t'';\r\n\r\n\t\t\tif (['UnsubscribeAccount'].includes(each)) paramValue = each;\r\n\r\n\t\t\tthis.addParamBody(paramValue);\r\n\t\t});\r\n\t}\r\n\r\n\tpublic updateSearch(searchValue: string): void {\r\n\t\tthis.pageNoTemplateOption = 1;\r\n\t\tthis.getTemplateOptionService(searchValue);\r\n\t}\r\n\r\n\tpublic updateSearchAccount(searchValue: string): void {\r\n\t\tthis.pageNoAccountOption = 1;\r\n\t\tthis.getAccountOptionService(searchValue);\r\n\t}\r\n\r\n\tpublic updateDownloadCSV(isChecked: boolean): void {\r\n\t\tthis.form.get('isUpload').setValue(isChecked);\r\n\r\n\t\tif (isChecked) {\r\n\t\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\t\t\tthis.form.get('paramBody').clearValidators();\r\n\t\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tGeneralInformationLineMessageValidationConst,\r\n\tMsgTypeLineOptionConst,\r\n} from '../../../../../core/const';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../../models';\r\n@Component({\r\n\tselector: 'lib-general-information-line',\r\n\ttemplateUrl: './general-information-line.component.html',\r\n\tstyleUrls: ['./general-information-line.component.scss'],\r\n})\r\nexport class GeneralInformationLineComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic updateGeneralInformationForm: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic msgTypeWAOption: any[] = [];\r\n\tpublic validationMessages: any;\r\n\tpublic accountOption: WhatsAppAccountDto[] = [];\r\n\tpublic isHaveNextAccountOption: boolean = true;\r\n\tpublic isLoadingAccountOption: boolean = false;\r\n\tpublic templateOption: TemplateWAModel[] = [];\r\n\tpublic isHaveNextTemplateOption: boolean = true;\r\n\tpublic isLoadingTemplateOption: boolean = false;\r\n\r\n\tprivate pageNoAccountOption: number = 1;\r\n\tprivate pageNoTemplateOption: number = 1;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\t@Input()\r\n\tset isTouchedForm(status: boolean) {\r\n\t\tif (!this.updateGeneralInformationForm) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.updateGeneralInformationForm = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.msgTypeWAOption = MsgTypeLineOptionConst;\r\n\t\tthis.validationMessages = GeneralInformationLineMessageValidationConst;\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initDisable();\r\n\t\tthis.initEdit();\r\n\t\tthis.initValidation();\r\n\t\tthis.getAccountOptionService(\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium === 'LINE'\r\n\t\t\t\t? this.getCampaignStorage?.generalInformation?.form?.from?.name\r\n\t\t\t\t: ''\r\n\t\t);\r\n\t}\r\n\r\n\tget getCampaignStorage(): any {\r\n\t\treturn localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tchannel: new FormControl(null, Validators.required),\r\n\t\t\tfrom: new FormControl(null, Validators.required),\r\n\t\t\ttext: new FormControl(null),\r\n\t\t\ttemplate: new FormControl(null),\r\n\t\t\tisJSON: new FormControl(false),\r\n\t\t\tparamBody: new FormArray([], Validators.required),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(): void {\r\n\t\tif (\r\n\t\t\tObject.entries(this.getCampaignStorage).length === 0 ||\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium !== 'LINE'\r\n\t\t)\r\n\t\t\treturn;\r\n\r\n\t\tthis.form\r\n\t\t\t.get('channel')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.channel\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('from')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.from);\r\n\t\tthis.form\r\n\t\t\t.get('text')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.text);\r\n\t\tthis.form\r\n\t\t\t.get('template')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.template\r\n\t\t\t);\r\n\r\n\t\tthis.getTemplateOptionService(\r\n\t\t\tnull,\r\n\t\t\tthis.form.get('template').value?.name\r\n\t\t);\r\n\t}\r\n\r\n\tprivate initValidation(): void {\r\n\t\tfor (const key in this.form.controls) {\r\n\t\t\tthis.form.controls[key].clearValidators();\r\n\t\t\tthis.form.controls[key].updateValueAndValidity();\r\n\t\t}\r\n\r\n\t\tthis.form.get('channel').setValidators(Validators.required);\r\n\t\tthis.form.get('from').setValidators(Validators.required);\r\n\r\n\t\tif (this.isText) {\r\n\t\t\tthis.form.get('text').setValidators(Validators.required);\r\n\t\t\tthis.form.get('text').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('template').setValidators(Validators.required);\r\n\t\tthis.form.get('template').updateValueAndValidity();\r\n\t\tthis.form.get('paramBody').setValidators(Validators.required);\r\n\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t}\r\n\r\n\tpublic formReset(): void {\r\n\t\tthis.form.get('text').reset();\r\n\t\tthis.form.get('template').reset();\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\r\n\t\tthis.initValidation();\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getAccountOptionService(\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingAccountOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoAccountOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'LINE', 'string'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/admin/account', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n\t\t\t\tif (!resp.data) return;\r\n\r\n\t\t\t\tthis.accountOption = isInfinite\r\n\t\t\t\t\t? [...this.accountOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextAccountOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingAccountOption = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tevent: string = null,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'LINE', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'clientId',\r\n\t\t\t\tthis.form.get('from').value?.clientId,\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t];\r\n\r\n\t\tif (this.isReadOnlyMode)\r\n\t\t\tparameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption = isInfinite\r\n\t\t\t\t\t? [...this.templateOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextTemplateOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption = false;\r\n\r\n\t\t\t\tconst template = this.templateOption?.find(\r\n\t\t\t\t\tt => t.ID === this.form.get('template').value?.ID\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\tthis.form.get('template').setValue(template);\r\n\t\t\t\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParameter(value: string = ''): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tname: new FormControl(\r\n\t\t\t\t{ value: value, disabled: this.isReadOnlyMode },\r\n\t\t\t\tValidators.required\r\n\t\t\t),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tget getParamBody(): FormGroup[] {\r\n\t\treturn (this.form.get('paramBody') as FormArray)\r\n\t\t\t.controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addParamBody(value: string = ''): void {\r\n\t\tconst form = this.initParameter(value);\r\n\t\t(this.form.get('paramBody') as FormArray).push(form);\r\n\t}\r\n\r\n\tget isText(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.form.get('channel').value &&\r\n\t\t\tthis.form.get('channel').value?.toLowerCase() === 'text'\r\n\t\t);\r\n\t}\r\n\r\n\tget isTemplate(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.form.get('channel').value &&\r\n\t\t\tthis.form.get('channel').value?.toLowerCase() === 'template'\r\n\t\t);\r\n\t}\r\n\r\n\tpublic getNextAccountBatch() {\r\n\t\tif (!this.isHaveNextAccountOption) return;\r\n\r\n\t\tthis.pageNoAccountOption += 1;\r\n\t\tthis.getAccountOptionService('', true);\r\n\t}\r\n\r\n\tpublic accountSelectedDisplay(\r\n\t\tattribute1: WhatsAppAccountDto,\r\n\t\tattribute2: WhatsAppAccountDto\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.id == attribute2.id\r\n\t\t\t? `${attribute1.name} (${attribute1.accountNo})`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch() {\r\n\t\tif (!this.isHaveNextTemplateOption) return;\r\n\r\n\t\tthis.pageNoTemplateOption += 1;\r\n\t\tthis.getTemplateOptionService(null, '', true);\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic updateTemplate(template: TemplateWAModel): void {\r\n\t\tif (!template) return;\r\n\r\n\t\tlet bodyText = template.body.text;\r\n\r\n\t\tif (this.isJsonString(template.body.text)) {\r\n\t\t\tbodyText = JSON.parse(template.body.text).text;\r\n\t\t}\r\n\r\n\t\tthis.form.get('isJSON').setValue(this.isJsonString(template.body.text));\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\r\n\t\tconst findBrackets = bodyText?.match(/{{/g);\r\n\t\tconst formStorage = this.getCampaignStorage?.generalInformation?.form;\r\n\r\n\t\tfindBrackets?.length > 0\r\n\t\t\t? this.form.get('paramBody').setValidators(Validators.required)\r\n\t\t\t: this.form.get('paramBody').clearValidators();\r\n\r\n\t\tfindBrackets?.forEach((_, index) => {\r\n\t\t\tthis.addParamBody(\r\n\t\t\t\tformStorage?.paramBody?.[index]?.name ??\r\n\t\t\t\t\tformStorage?.paramBody?.[index] ??\r\n\t\t\t\t\t''\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t}\r\n\r\n\tprivate isJsonString(str: string): boolean {\r\n\t\ttry {\r\n\t\t\tJSON.parse(str);\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic updateSearch(searchValue: string): void {\r\n\t\tthis.pageNoTemplateOption = 1;\r\n\t\tthis.getTemplateOptionService(null, searchValue);\r\n\t}\r\n\r\n\tpublic updateSearchAccount(searchValue: string): void {\r\n\t\tthis.pageNoAccountOption = 1;\r\n\t\tthis.getAccountOptionService(searchValue);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tGeneralInformationSMSMessageValidationConst,\r\n\tMsgTypeWAOptionConst,\r\n} from '../../../../../core/const';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../../models';\r\n\r\n@Component({\r\n\tselector: 'lib-general-information-sms',\r\n\ttemplateUrl: './general-information-sms.component.html',\r\n\tstyleUrls: ['./general-information-sms.component.scss'],\r\n})\r\nexport class GeneralInformationSMSComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic updateGeneralInformationForm: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic msgTypeWAOption: any[] = [];\r\n\tpublic validationMessages: any;\r\n\tpublic accountOption: WhatsAppAccountDto[] = [];\r\n\tpublic isHaveNextAccountOption: boolean = true;\r\n\tpublic isLoadingAccountOption: boolean = false;\r\n\tpublic templateOption: TemplateWAModel[] = [];\r\n\tpublic isHaveNextTemplateOption: boolean = true;\r\n\tpublic isLoadingTemplateOption: boolean = false;\r\n\tpublic isHaveTemplateParam: boolean = false;\r\n\r\n\tprivate pageNoAccountOption: number = 1;\r\n\tprivate pageNoTemplateOption: number = 1;\r\n\tprivate subscribers: Subscription[] = [];\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\t@Input()\r\n\tset isTouchedForm(status: boolean) {\r\n\t\tif (!this.updateGeneralInformationForm) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.updateGeneralInformationForm = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.msgTypeWAOption = MsgTypeWAOptionConst.filter(\r\n\t\t\tt => t.code === 'TEXT' || t.code === 'TEMPLATE'\r\n\t\t);\r\n\t\tthis.validationMessages = GeneralInformationSMSMessageValidationConst;\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initDisable();\r\n\t\tthis.initEdit();\r\n\t\tthis.initValidation();\r\n\t\tthis.getAccountOptionService(\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium === 'SMS'\r\n\t\t\t\t? this.getCampaignStorage?.generalInformation?.form?.from?.name\r\n\t\t\t\t: ''\r\n\t\t);\r\n\t}\r\n\r\n\tget getCampaignStorage(): any {\r\n\t\treturn localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tchannel: new FormControl(null, Validators.required),\r\n\t\t\tfrom: new FormControl(null, Validators.required),\r\n\t\t\ttext: new FormControl(null, Validators.required),\r\n\t\t\ttemplate: new FormControl(null, Validators.required),\r\n\t\t\tparamBody: new FormArray([], Validators.required),\r\n\t\t\tisUpload: new FormControl(false),\r\n\t\t\tfileId: new FormControl(''),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.updateGeneralInformationForm.emit(this.form);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(): void {\r\n\t\tif (\r\n\t\t\tObject.entries(this.getCampaignStorage).length === 0 ||\r\n\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium !== 'SMS'\r\n\t\t)\r\n\t\t\treturn;\r\n\r\n\t\tthis.form\r\n\t\t\t.get('channel')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.channel\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('from')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.from);\r\n\t\tthis.form\r\n\t\t\t.get('text')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.text);\r\n\t\tthis.form\r\n\t\t\t.get('template')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.template\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('isUpload')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.getCampaignStorage?.generalInformation?.form.isUpload\r\n\t\t\t);\r\n\t\tthis.form\r\n\t\t\t.get('fileId')\r\n\t\t\t.setValue(this.getCampaignStorage?.generalInformation?.form.fileId);\r\n\r\n\t\tthis.isHaveTemplateParam = this.form.get('isUpload').value;\r\n\t\tthis.getTemplateOptionService(\r\n\t\t\tnull,\r\n\t\t\tthis.form.get('template').value?.name\r\n\t\t);\r\n\t}\r\n\r\n\tget getIsTemplate(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.form.get('channel').value &&\r\n\t\t\tthis.form.get('channel').value?.toLowerCase() === 'template'\r\n\t\t);\r\n\t}\r\n\r\n\tprivate initValidation(): void {\r\n\t\tfor (const key in this.form.controls) {\r\n\t\t\tthis.form.controls[key].clearValidators();\r\n\t\t\tthis.form.controls[key].updateValueAndValidity();\r\n\t\t}\r\n\r\n\t\tthis.form.get('channel').setValidators(Validators.required);\r\n\t\tthis.form.get('from').setValidators(Validators.required);\r\n\r\n\t\tif (this.getIsTemplate) {\r\n\t\t\tthis.form.get('template').setValidators(Validators.required);\r\n\t\t\tthis.form.get('paramBody').setValidators(Validators.required);\r\n\t\t\tthis.form.get('template').updateValueAndValidity();\r\n\t\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t\t} else {\r\n\t\t\tthis.form.get('text').setValidators(Validators.required);\r\n\t\t\tthis.form.get('text').updateValueAndValidity();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic formReset(_isMediaType: boolean = false): void {\r\n\t\tthis.form.get('text').reset();\r\n\t\tthis.form.get('template').reset();\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\r\n\t\tthis.initValidation();\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getAccountOptionService(\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingAccountOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoAccountOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'SMS', 'string'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/admin/account', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n\t\t\t\tif (!resp.data) return;\r\n\r\n\t\t\t\tthis.accountOption = isInfinite\r\n\t\t\t\t\t? [...this.accountOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextAccountOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingAccountOption = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tevent: string = null,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', 'SMS', 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'clientId',\r\n\t\t\t\tthis.form.get('from').value?.clientId,\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'wabaId',\r\n\t\t\t\tthis.form.get('from').value?.wabaId ?? '',\r\n\t\t\t\t'string'\r\n\t\t\t),\r\n\t\t];\r\n\r\n\t\tif (this.isReadOnlyMode)\r\n\t\t\tparameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption = isInfinite\r\n\t\t\t\t\t? [...this.templateOption, ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\t\t\t\tthis.isHaveNextTemplateOption = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption = false;\r\n\r\n\t\t\t\tconst template = this.templateOption?.find(\r\n\t\t\t\t\tt => t.ID === this.form.get('template').value?.ID\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\tthis.form.get('template').setValue(template);\r\n\r\n\t\t\t\t\tif (this.form.get('isUpload').value)\r\n\t\t\t\t\t\treturn this.updateDownloadCSV(\r\n\t\t\t\t\t\t\tthis.form.get('isUpload').value\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tprivate initParameter(value: string = ''): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tname: new FormControl(\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue: value,\r\n\t\t\t\t\tdisabled:\r\n\t\t\t\t\t\tthis.isReadOnlyMode ||\r\n\t\t\t\t\t\t['UnsubscribeAccount'].includes(value),\r\n\t\t\t\t},\r\n\t\t\t\tValidators.required\r\n\t\t\t),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tget getParamBody(): FormGroup[] {\r\n\t\treturn (this.form.get('paramBody') as FormArray)\r\n\t\t\t.controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addParamBody(value: string = ''): void {\r\n\t\tconst form = this.initParameter(value);\r\n\t\t(this.form.get('paramBody') as FormArray).push(form);\r\n\t}\r\n\r\n\tpublic getNextAccountBatch() {\r\n\t\tif (!this.isHaveNextAccountOption) return;\r\n\r\n\t\tthis.pageNoAccountOption += 1;\r\n\t\tthis.getAccountOptionService('', true);\r\n\t}\r\n\r\n\tpublic accountSelectedDisplay(\r\n\t\tattribute1: WhatsAppAccountDto,\r\n\t\tattribute2: WhatsAppAccountDto\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.id == attribute2.id\r\n\t\t\t? `${attribute1.name} (${attribute1.accountNo})`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch() {\r\n\t\tif (!this.isHaveNextTemplateOption) return;\r\n\r\n\t\tthis.pageNoTemplateOption += 1;\r\n\t\tthis.getTemplateOptionService(null, '', true);\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic updateTemplate(template: TemplateWAModel): void {\r\n\t\tif (!template) return;\r\n\r\n\t\tthis.isHaveTemplateParam = template.body.examples?.length > 0;\r\n\r\n\t\ttemplate.body.examples?.length > 0\r\n\t\t\t? this.form.get('paramBody').setValidators(Validators.required)\r\n\t\t\t: this.form.get('paramBody').clearValidators();\r\n\r\n\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\r\n\t\tconst formStorage = this.getCampaignStorage?.generalInformation?.form;\r\n\r\n\t\ttemplate.body.examples?.forEach((each, index) => {\r\n\t\t\tlet paramValue =\r\n\t\t\t\tformStorage?.paramBody?.[index]?.name ??\r\n\t\t\t\tformStorage?.paramBody?.[index] ??\r\n\t\t\t\t'';\r\n\r\n\t\t\tif (['UnsubscribeAccount'].includes(each)) paramValue = each;\r\n\r\n\t\t\tthis.addParamBody(paramValue);\r\n\t\t});\r\n\t}\r\n\r\n\tpublic updateSearch(searchValue: string): void {\r\n\t\tthis.pageNoTemplateOption = 1;\r\n\t\tthis.getTemplateOptionService('', searchValue);\r\n\t}\r\n\r\n\tpublic updateSearchAccount(searchValue: string): void {\r\n\t\tthis.pageNoAccountOption = 1;\r\n\t\tthis.getAccountOptionService(searchValue);\r\n\t}\r\n\r\n\tpublic updateDownloadCSV(isChecked: boolean): void {\r\n\t\tthis.form.get('isUpload').setValue(isChecked);\r\n\r\n\t\tif (isChecked) {\r\n\t\t\t(this.form.get('paramBody') as FormArray).controls = [];\r\n\t\t\t(this.form.get('paramBody') as FormArray).reset();\r\n\t\t\tthis.form.get('paramBody').clearValidators();\r\n\t\t\tthis.form.get('paramBody').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.updateTemplate(this.form.get('template').value);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","export enum EnumData {\r\n\tGOOGLE_MAP_API_KEY = 'AIzaSyCHReBe_RpzAgLTrUC5QIDyeKttQ817wRY',\r\n\r\n\t// MEDIUM TYPES\r\n\tMEDIUM_TYPE_WHATSAPP = 'WHATSAPP',\r\n\r\n\t// MEDIA TYPE\r\n\tMEDIA_TYPE_IMAGE = 'IMAGE',\r\n\tMEDIA_TYPE_VIDEO = 'VIDEO',\r\n\tMEDIA_TYPE_DOCUMENT = 'DOCUMENT',\r\n\tMEDIA_TYPE_LOCATION = 'LOCATION',\r\n\r\n\t// SCHEDULER TYPES\r\n\tSCHEDULER_TYPE_NOW = 'NOW',\r\n\tSCHEDULER_TYPE_SINGLE = 'SINGLE',\r\n\tSCHEDULER_TYPE_MULTIPLE = 'MULTIPLE',\r\n}\r\n","import { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\r\nexport const maxValidator = (max: number, message: string) => {\r\n\treturn (AC: AbstractControl): ValidationErrors | null => {\r\n\t\tconst isError = Validators.max(max)(AC);\r\n\t\tif (isError)\r\n\t\t\treturn {\r\n\t\t\t\tmax: max,\r\n\t\t\t\tactual: AC.value,\r\n\t\t\t\tmessage: message || `Max Value equals to ${max}`,\r\n\t\t\t};\r\n\t\treturn null;\r\n\t};\r\n};\r\n","import { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\r\nexport const minValidator = (min: number, message: string) => {\r\n\treturn (AC: AbstractControl): ValidationErrors | null => {\r\n\t\tconst isError = Validators.min(min)(AC);\r\n\t\tif (isError)\r\n\t\t\treturn {\r\n\t\t\t\tmin: min,\r\n\t\t\t\tactual: AC.value,\r\n\t\t\t\tmessage: message || `Min Value equals to ${min}`,\r\n\t\t\t};\r\n\t\treturn null;\r\n\t};\r\n};\r\n","import { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\n\r\nexport const requiredValidator = (message: string): ValidatorFn => {\r\n\treturn (ac: AbstractControl): ValidationErrors | null => {\r\n\t\tconst isError = Validators.required(ac);\r\n\t\tif (isError) return { message };\r\n\t\treturn null;\r\n\t};\r\n};\r\n","import { Validators as AngularValidators } from '@angular/forms';\r\nimport { maxValidator } from './max.validator';\r\nimport { minValidator } from './min.validator';\r\nimport { requiredValidator } from './required.validator';\r\n\r\nexport const Validators = {\r\n compose: AngularValidators.compose,\r\n composeAync: AngularValidators.composeAsync,\r\n max: maxValidator,\r\n min: minValidator,\r\n required: requiredValidator,\r\n};\r\n","import { MapsAPILoader } from '@agm/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormArray,\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n GeneralInformationWAMessageValidationConst,\r\n MediaTypeOptionConst,\r\n MsgTypeWAOptionConst,\r\n} from '../../../../../core/const';\r\nimport { ProductCategoryEnum } from '../../../../../core/enums';\r\nimport { BaseOptionModel } from '../../../../../core/models';\r\nimport { Parameter } from '../../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../../core/services';\r\nimport { generateEnumOption } from '../../../../../core/util';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../../models';\r\nimport { EnumData } from '../../../../util/enums';\r\nimport { Validators as CustomValidators } from '../../../../validators';\r\n\r\ninterface IMaps {\r\n zoom: number;\r\n latitude: number | null;\r\n longitude: number | null;\r\n isDraggable: boolean;\r\n isDoubleClickZoom: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-general-information-wa',\r\n templateUrl: './general-information-wa.component.html',\r\n styleUrls: ['./general-information-wa.component.scss'],\r\n})\r\nexport class GeneralInformationWAComponent implements OnInit, OnDestroy {\r\n @Output()\r\n public updateGeneralInformationForm: EventEmitter<FormGroup>;\r\n\r\n public form!: FormGroup;\r\n public msgTypeWAOption: any[] = [];\r\n public mediaTypeOption: any[] = [];\r\n public categoryOption!: BaseOptionModel[];\r\n public accountOption: WhatsAppAccountDto[] = [];\r\n public isHaveNextAccountOption: boolean = true;\r\n public isLoadingAccountOption: boolean = false;\r\n public templateOption: TemplateWAModel[] = [];\r\n public isHaveNextTemplateOption: boolean = true;\r\n public isLoadingTemplateOption: boolean = false;\r\n public isHaveTemplateParam: boolean = false;\r\n public isShowParameter: boolean = false;\r\n public validationMessages: any;\r\n public extFileAccepted: string = 'image/*';\r\n public maps!: IMaps;\r\n\r\n private pageNoAccountOption: number = 1;\r\n private pageNoTemplateOption: number = 1;\r\n private subscribers: Subscription[] = [];\r\n private geoCoder: any;\r\n\r\n public templates = [\r\n { label: 'Create New', value: false },\r\n { label: 'Use existing template', value: true },\r\n ];\r\n\r\n @Input() public isReadOnlyMode!: boolean;\r\n\r\n @Input()\r\n set isTouchedForm(status: boolean) {\r\n if (!this.updateGeneralInformationForm) {\r\n return;\r\n }\r\n\r\n setTimeout(() => {\r\n this.updateGeneralInformationForm.emit(this.form);\r\n });\r\n }\r\n\r\n @ViewChild('mapSearch') mapSearchRef!: ElementRef;\r\n\r\n public isCheckUtility: boolean = false;\r\n\r\n constructor(\r\n private ngZone: NgZone,\r\n private mapsAPILoader: MapsAPILoader,\r\n private apiAdapterService: ApiAdapterServiceService,\r\n private toastr: ToastrService,\r\n private httpClient: HttpClient\r\n ) {\r\n this.updateGeneralInformationForm = new EventEmitter();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.msgTypeWAOption = MsgTypeWAOptionConst;\r\n this.mediaTypeOption = MediaTypeOptionConst;\r\n this.categoryOption = generateEnumOption(ProductCategoryEnum);\r\n this.validationMessages = GeneralInformationWAMessageValidationConst;\r\n this.maps = {\r\n zoom: 15,\r\n latitude: null,\r\n longitude: null,\r\n isDraggable: true,\r\n isDoubleClickZoom: true,\r\n };\r\n\r\n this.initForm();\r\n this.initDisable();\r\n this.initEdit();\r\n this.initValidation();\r\n this.getAccountOptionService(\r\n this.getCampaignStorage?.generalInformation?.form?.medium === 'WA'\r\n ? this.getCampaignStorage?.generalInformation?.form?.from?.name\r\n : ''\r\n );\r\n /* this.setCurrentLocation(); */\r\n }\r\n\r\n get getCampaignStorage(): any {\r\n const campaignData = localStorage.getItem('telin.campaign');\r\n return campaignData ? JSON.parse(campaignData) : {};\r\n }\r\n\r\n private initForm(): void {\r\n this.form = new FormGroup({\r\n channel: new FormControl(null, Validators.required),\r\n media: new FormControl(null),\r\n from: new FormControl(null),\r\n text: new FormControl(null),\r\n fileName: new FormControl(null),\r\n targetURL: new FormControl(null),\r\n fileType: new FormControl(null),\r\n file: new FormControl(null),\r\n latitude: new FormControl(null),\r\n longitude: new FormControl(null),\r\n template: new FormControl(null),\r\n paramHeader: new FormArray([], Validators.required),\r\n paramBody: new FormArray([], Validators.required),\r\n paramButton: new FormArray([], Validators.required),\r\n otpValue: new FormControl(''),\r\n isUpload: new FormControl(false),\r\n fileId: new FormControl(''),\r\n category: new FormControl(null),\r\n product: new FormControl(null),\r\n catalogue: new FormControl(null),\r\n body: new FormControl(null),\r\n isUseExistingTemplate: new FormControl(false),\r\n isNeedSave: new FormControl(false),\r\n ttl: new FormControl(null),\r\n isDownloadVariableXLS: new FormControl(false),\r\n variables: new FormArray([]),\r\n useXlsx: new FormControl(false),\r\n buttonParams: new FormArray([]),\r\n paramCarousel: new FormArray([]),\r\n });\r\n\r\n this.form.valueChanges.subscribe(() => {\r\n setTimeout(() => {\r\n this.updateGeneralInformationForm.emit(this.form);\r\n });\r\n });\r\n this.form.get('isUpload')?.valueChanges.subscribe((val) => {\r\n this.toggleExcelValidation(val);\r\n });\r\n }\r\n\r\n private initDisable(): void {\r\n if (!this.isReadOnlyMode) {\r\n return;\r\n }\r\n\r\n this.form.disable();\r\n }\r\n\r\n private initEdit(): void {\r\n const storageData = this.getCampaignStorage;\r\n const formValues = storageData?.generalInformation?.form;\r\n if (\r\n !storageData ||\r\n Object.entries(storageData).length === 0 ||\r\n formValues?.medium !== 'WA'\r\n ) {\r\n return;\r\n }\r\n this.getControl('channel')?.setValue(formValues?.channel);\r\n this.getControl('media')?.setValue(formValues?.media);\r\n this.getControl('from')?.setValue(formValues?.from);\r\n this.getControl('text')?.setValue(formValues?.text);\r\n this.getControl('targetURL')?.setValue(formValues?.targetURL);\r\n this.getControl('fileName')?.setValue(\r\n formValues?.fileName ?? this.getControl('targetURL')?.value\r\n );\r\n this.getControl('template')?.setValue(formValues?.template);\r\n this.getControl('isUpload')?.setValue(formValues?.isUpload);\r\n this.getControl('fileId')?.setValue(formValues?.fileId);\r\n this.getControl('otpValue')?.setValue(formValues?.otpValue);\r\n this.getControl('isUseExistingTemplate')?.setValue(\r\n formValues?.isUseExistingTemplate !== undefined\r\n ? formValues.isUseExistingTemplate\r\n : !!formValues?.template?.name\r\n );\r\n this.getControl('isNeedSave')?.setValue(!!formValues?.isNeedSave);\r\n this.getControl('isDownloadVariableXLS')?.setValue(formValues?.isDownloadVariableXLS);\r\n this.getControl('ttl')?.setValue(formValues?.ttl);\r\n\r\n const savedVariables = formValues?.variables;\r\n if (savedVariables && Array.isArray(savedVariables) && savedVariables.length > 0) {\r\n this.variables.clear();\r\n\r\n savedVariables.forEach((item: any) => {\r\n this.variables.push(\r\n new FormGroup({\r\n paramName: new FormControl({\r\n value: item.paramName || '',\r\n disabled: this.isReadOnlyMode,\r\n }),\r\n })\r\n );\r\n });\r\n }\r\n\r\n this.isHaveTemplateParam = this.getControl('isUpload')?.value;\r\n this.getTemplateOptionService(null, this.getControl('template')?.value?.name);\r\n }\r\n\r\n private initValidation(): void {\r\n if (!this.form) return;\r\n\r\n for (const key in this.form.controls) {\r\n if (this.form.controls[key]) {\r\n this.form.controls[key].clearValidators();\r\n this.form.controls[key].updateValueAndValidity();\r\n }\r\n }\r\n\r\n this.getControl('channel')?.setValidators(Validators.required);\r\n\r\n if (this.getIsText) {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('text')?.setValidators(Validators.required);\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('text')?.updateValueAndValidity();\r\n } else if (this.getIsMedia) {\r\n this.getControl('media')?.setValidators(Validators.required);\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('fileName')?.setValidators(Validators.required);\r\n this.getControl('media')?.updateValueAndValidity();\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('fileName')?.updateValueAndValidity();\r\n } else if (this.getIsTemplate) {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('template')?.setValidators(Validators.required);\r\n this.getControl('paramHeader')?.setValidators(Validators.required);\r\n this.getControl('paramBody')?.setValidators(Validators.required);\r\n this.getControl('paramButton')?.setValidators(Validators.required);\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('template')?.updateValueAndValidity();\r\n this.getControl('paramHeader')?.updateValueAndValidity();\r\n this.getControl('paramBody')?.updateValueAndValidity();\r\n this.getControl('paramButton')?.updateValueAndValidity();\r\n } else if (this.getIsCatalogue) {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('category')?.setValidators(Validators.required);\r\n this.getControl('catalogue')?.setValidators(Validators.required);\r\n this.getControl('product')?.setValidators(Validators.required);\r\n this.getControl('body')?.setValidators(Validators.maxLength(100));\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('category')?.updateValueAndValidity();\r\n this.getControl('catalogue')?.updateValueAndValidity();\r\n this.getControl('product')?.updateValueAndValidity();\r\n this.getControl('body')?.updateValueAndValidity();\r\n } else if (this.getIsUtility) {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('text')?.setValidators([\r\n Validators.required,\r\n Validators.maxLength(1024),\r\n ]);\r\n this.getControl('ttl')?.setValidators([\r\n CustomValidators.min(30, 'Minimum TTL 30'),\r\n CustomValidators.max(43200, 'Maximum TTL 43200'),\r\n ]);\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('text')?.updateValueAndValidity();\r\n this.getControl('ttl')?.updateValueAndValidity();\r\n this.getControl('variables')?.updateValueAndValidity();\r\n } else {\r\n this.getControl('from')?.setValidators(Validators.required);\r\n this.getControl('text')?.setValidators(Validators.required);\r\n this.getControl('from')?.updateValueAndValidity();\r\n this.getControl('text')?.updateValueAndValidity();\r\n }\r\n }\r\n\r\n public formReset(_isMediaType: boolean = false): void {\r\n if (!_isMediaType) {\r\n this.getControl('media')?.reset();\r\n this.getControl('from')?.reset();\r\n }\r\n\r\n this.getControl('text')?.reset();\r\n this.getControl('fileName')?.reset();\r\n this.getControl('targetURL')?.reset();\r\n this.getControl('fileType')?.reset();\r\n this.getControl('file')?.reset();\r\n this.getControl('latitude')?.reset();\r\n this.getControl('longitude')?.reset();\r\n this.getControl('template')?.reset();\r\n this.getControl('category')?.reset();\r\n this.getControl('product')?.reset();\r\n this.getControl('catalogue')?.reset();\r\n this.getControl('body')?.reset();\r\n this.getControl('otpValue')?.reset();\r\n this.getControl('variables')?.reset();\r\n\r\n const paramHeader = this.getControl('paramHeader') as FormArray | null;\r\n if (paramHeader) {\r\n paramHeader.clear();\r\n paramHeader.reset();\r\n }\r\n\r\n const paramBody = this.getControl('paramBody') as FormArray | null;\r\n if (paramBody) {\r\n paramBody.clear();\r\n paramBody.reset();\r\n }\r\n\r\n const paramButton = this.getControl('paramButton') as FormArray | null;\r\n if (paramButton) {\r\n paramButton.clear();\r\n paramButton.reset();\r\n }\r\n\r\n this.initValidation();\r\n }\r\n\r\n private getControl(controlName: string): AbstractControl | null {\r\n return this.form ? this.form.get(controlName) : null;\r\n }\r\n\r\n private initParam(_name: string, _value: any, _type: string): Parameter {\r\n return {\r\n name: _name,\r\n value: _value,\r\n in: 'query',\r\n type: _type,\r\n };\r\n }\r\n\r\n private getAccountOptionService(filter: string = '', isInfinite: boolean = false): void {\r\n this.isLoadingAccountOption = true;\r\n\r\n const parameterList: Array<Parameter> = [\r\n this.initParam('pageNo', this.pageNoAccountOption, 'number'),\r\n this.initParam('rowPerPage', 20, 'number'),\r\n this.initParam('platform', 'WA', 'string'),\r\n this.initParam('status', 'APPROVED', 'string'),\r\n this.initParam('filter', filter, 'string'),\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/admin/account', 'GET')\r\n .subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n if (!resp.data) return;\r\n\r\n this.accountOption = isInfinite ? [...this.accountOption, ...resp.data] : resp.data;\r\n this.isHaveNextAccountOption = resp.haveNext ?? true;\r\n this.isLoadingAccountOption = false;\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public getTemplateOptionService(\r\n event: string = null,\r\n filter: string = '',\r\n isInfinite: boolean = false\r\n ): void {\r\n this.isLoadingTemplateOption = true;\r\n\r\n const parameterList: Array<Parameter> = [\r\n this.initParam('pageNo', this.pageNoTemplateOption, 'number'),\r\n this.initParam('rowPerPage', 20, 'number'),\r\n this.initParam('platform', 'WA', 'string'),\r\n this.initParam('templateType', 'all', 'string'),\r\n this.initParam('filter', filter, 'string'),\r\n this.initParam('status', 'APPROVED', 'string'),\r\n this.initParam('clientId', this.getControl('from')?.value?.clientId ?? '', 'string'),\r\n this.initParam('wabaId', this.getControl('from')?.value?.wabaId ?? '', 'string'),\r\n ];\r\n\r\n if (this.isReadOnlyMode) parameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n const messageType = this.form.value?.channel;\r\n\r\n if (messageType === 'utility') {\r\n parameterList.push(this.initParam('isDirectSend', true, 'string'));\r\n }\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/message/template', 'GET')\r\n .subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n const currentOptions = this.templateOption || [];\r\n const newData = resp.data || [];\r\n this.templateOption = isInfinite ? [...currentOptions, ...newData] : newData;\r\n\r\n this.isHaveNextTemplateOption = resp.haveNext ?? true;\r\n this.isLoadingTemplateOption = false;\r\n\r\n const template = this.templateOption?.find(\r\n (t) => t.ID === this.getControl('template')?.value?.ID\r\n );\r\n\r\n if (template) {\r\n this.getControl('template')?.patchValue(template);\r\n\r\n if (this.getControl('isUpload')?.value)\r\n return this.updateDownloadCSV(this.getControl('isUpload')?.value);\r\n }\r\n this.updateTemplate(this.getControl('template')?.value);\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private initParameter(isButton: boolean = false, value: string = ''): FormGroup {\r\n const form = isButton\r\n ? new FormGroup({\r\n name: new FormArray([], Validators.required),\r\n })\r\n : new FormGroup({\r\n name: new FormControl(\r\n {\r\n value: value,\r\n disabled: this.isReadOnlyMode || ['$UnsubscribeAccount'].includes(value),\r\n },\r\n Validators.required\r\n ),\r\n });\r\n\r\n return form;\r\n }\r\n\r\n get getParamHeader(): FormGroup[] {\r\n return (this.form.get('paramHeader') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n public addParamHeader(value: string = ''): void {\r\n const form = this.initParameter(false, value);\r\n (this.form.get('paramHeader') as FormArray).push(form);\r\n }\r\n\r\n get getParamBody(): FormGroup[] {\r\n return (this.form.get('paramBody') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n public addParamBody(value: string = ''): void {\r\n const form = this.initParameter(false, value);\r\n (this.form.get('paramBody') as FormArray).push(form);\r\n }\r\n\r\n get getButton(): FormGroup[] {\r\n return (this.form.get('paramButton') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n public getParamButton(index: number): FormGroup[] {\r\n const form = (this.form.get('paramButton') as FormArray).controls as FormGroup[];\r\n return (form[index].get('name') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n public addParamButton(): void {\r\n const form = this.initParameter(true);\r\n (this.form.get('paramButton') as FormArray).push(form);\r\n }\r\n\r\n get getIsText(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'text'\r\n );\r\n }\r\n\r\n get getIsMedia(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'media'\r\n );\r\n }\r\n\r\n get getIsTemplate(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'template'\r\n );\r\n }\r\n\r\n get getIsCatalogue(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'catalogue'\r\n );\r\n }\r\n\r\n get getIsUtility(): boolean {\r\n return (\r\n this.getControl('channel')?.value &&\r\n this.getControl('channel')?.value?.toLowerCase() === 'utility'\r\n );\r\n }\r\n\r\n get getCarouselControls() {\r\n return (this.form.get('paramCarousel') as FormArray).controls as FormGroup[];\r\n }\r\n\r\n getCarouselButtons(cardIndex: number): any[] {\r\n const templateValue = this.form.get('template')?.value;\r\n return templateValue?.carousel?.[cardIndex]?.buttons || [];\r\n }\r\n\r\n getCarouselBodyParams(cardIndex: number): FormArray {\r\n return this.getCarouselControls[cardIndex].get('bodyParams') as FormArray;\r\n }\r\n\r\n getCarouselBtnParams(cardIndex: number, btnIndex: number): FormArray {\r\n const btnParamsArray = this.getCarouselControls[cardIndex].get('buttonParams') as FormArray;\r\n return btnParamsArray.at(btnIndex) as FormArray;\r\n }\r\n\r\n public getNextAccountBatch() {\r\n if (!this.isHaveNextAccountOption) return;\r\n\r\n this.pageNoAccountOption += 1;\r\n this.getAccountOptionService('', true);\r\n }\r\n\r\n public accountSelectedDisplay(\r\n attribute1: WhatsAppAccountDto,\r\n attribute2: WhatsAppAccountDto\r\n ): string {\r\n return attribute1 && attribute2 && attribute1.id == attribute2.id\r\n ? `${attribute1.name} (${attribute1.accountNo})`\r\n : '';\r\n }\r\n\r\n public getNextTemplateBatch() {\r\n if (!this.isHaveNextTemplateOption) return;\r\n\r\n this.pageNoTemplateOption += 1;\r\n this.getTemplateOptionService(null, '', true);\r\n }\r\n\r\n public templateSelectedDisplay(\r\n attribute1: TemplateWAModel,\r\n attribute2: TemplateWAModel\r\n ): string {\r\n return attribute1 && attribute2 && attribute1.name == attribute2.name\r\n ? `${attribute1.name}`\r\n : '';\r\n }\r\n\r\n public onFileSelected(event: Event) {\r\n const file: FileList = (event.target as HTMLInputElement).files;\r\n const accept = this.extFileAccepted.split('/');\r\n let matchType = accept[0];\r\n\r\n if (file.length === 0) return;\r\n\r\n if (this.extFileAccepted === 'application/pdf') matchType = accept[1];\r\n\r\n if (!file[0].type.includes(matchType)) {\r\n this.toastr.error('Sorry, the file you are uploading is not allowed');\r\n return;\r\n }\r\n\r\n if (file[0].size > 10000000) {\r\n this.toastr.error('Upload media failed, max size 10mb');\r\n return;\r\n }\r\n\r\n this.getControl('file')?.setValue(file[0]);\r\n this.getControl('fileType')?.setValue('image');\r\n this.getControl('fileName')?.setValue(file[0].name);\r\n this.getControl('targetURL')?.setValidators(Validators.required);\r\n this.getControl('targetURL')?.updateValueAndValidity();\r\n\r\n if (file[0].type.indexOf('video') > -1) this.getControl('fileType')?.setValue('video');\r\n\r\n this.uploadMediaService();\r\n }\r\n\r\n private uploadMediaService(): void {\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'file',\r\n value: this.getControl('file')?.value,\r\n in: 'formData',\r\n type: 'object',\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/message/media', 'POST')\r\n .subscribe((resp: AppResponse<any>) => {\r\n this.getControl('targetURL')?.clearValidators();\r\n this.getControl('targetURL')?.updateValueAndValidity();\r\n this.getControl('targetURL')?.setValue(resp.data.targetURL);\r\n this.getControl('file')?.reset();\r\n\r\n this.toastr.success('Upload media success');\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n get buttonParamsControls() {\r\n const control = this.form.get('buttonParams') as FormArray;\r\n return control ? control.controls : [];\r\n }\r\n\r\n get isUsingExcelBulk(): boolean {\r\n return this.getControl('isUpload')?.value || false;\r\n }\r\n\r\n public updateTemplate(template: TemplateWAModel): void {\r\n this.isShowParameter = false;\r\n\r\n if (!template) return;\r\n\r\n const formStorage = this.getCampaignStorage?.generalInformation?.form;\r\n\r\n const buttonParamsArray = this.form.get('buttonParams') as FormArray;\r\n buttonParamsArray.clear();\r\n\r\n if (template && template.buttons && template.buttons.length > 0) {\r\n let qrIndexLocal = 0;\r\n\r\n template.buttons.forEach((btn: any, index: number) => {\r\n if (btn.type === 'QUICK_REPLY') {\r\n let existingPayload = '';\r\n\r\n // SKENARIO 1: Data dari Local State\r\n if (formStorage?.buttonParams && formStorage.buttonParams.length > 0) {\r\n existingPayload = formStorage.buttonParams[qrIndexLocal]?.payload || '';\r\n qrIndexLocal++;\r\n }\r\n // SKENARIO 2: Data dari BE\r\n else if (\r\n formStorage?.paramButton &&\r\n Array.isArray(formStorage.paramButton[index])\r\n ) {\r\n existingPayload = formStorage.paramButton[index][0] || '';\r\n }\r\n\r\n buttonParamsArray.push(\r\n new FormGroup({\r\n label: new FormControl(btn.text),\r\n payload: new FormControl(\r\n {\r\n value: existingPayload,\r\n disabled: this.isReadOnlyMode,\r\n },\r\n [Validators.maxLength(256)]\r\n ),\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n this.isHaveTemplateParam =\r\n (template.header?.examples?.length ?? 0) > 0 ||\r\n (template.body?.examples?.length ?? 0) > 0 ||\r\n (template.buttons?.length ?? 0) > 0 ||\r\n (template.carousel?.length ?? 0) > 0;\r\n\r\n if (['image', 'video', 'document'].includes(template?.header?.type?.toLowerCase())) {\r\n this.getControl('fileName')?.setValue(\r\n this.getCampaignStorage?.generalInformation?.form.fileName ??\r\n this.getCampaignStorage?.generalInformation?.form.targetURL ??\r\n template.header.url\r\n );\r\n this.getControl('targetURL')?.setValue(\r\n this.getCampaignStorage?.generalInformation?.form.targetURL ?? template.header.url\r\n );\r\n\r\n this.fileTypeChange(template?.header?.type?.toLowerCase());\r\n }\r\n\r\n (template.header.examples?.length ?? 0) > 0\r\n ? this.getControl('paramHeader')?.setValidators(Validators.required)\r\n : this.getControl('paramHeader')?.clearValidators();\r\n\r\n (template.body.examples?.length ?? 0) > 0\r\n ? this.getControl('paramBody')?.setValidators(Validators.required)\r\n : this.getControl('paramBody')?.clearValidators();\r\n\r\n (template.buttons?.length ?? 0) > 0\r\n ? this.getControl('paramButton')?.setValidators(Validators.required)\r\n : this.getControl('paramButton')?.clearValidators();\r\n\r\n (this.form.get('paramHeader') as FormArray).controls = [];\r\n (this.form.get('paramHeader') as FormArray).reset();\r\n this.getControl('paramHeader')?.updateValueAndValidity();\r\n (this.form.get('paramBody') as FormArray).controls = [];\r\n (this.form.get('paramBody') as FormArray).reset();\r\n this.getControl('paramBody')?.updateValueAndValidity();\r\n (this.form.get('paramButton') as FormArray).controls = [];\r\n (this.form.get('paramButton') as FormArray).reset();\r\n this.getControl('paramButton')?.updateValueAndValidity();\r\n this.getControl('otpValue')?.setValue('');\r\n this.getControl('otpValue')?.clearValidators();\r\n this.getControl('otpValue')?.updateValueAndValidity();\r\n\r\n if (template.category === 'AUTHENTICATION') {\r\n this.getControl('otpValue')?.setValue(\r\n formStorage?.otpValue ??\r\n [...(formStorage?.template?.body?.examples ?? [])]?.pop() ??\r\n ''\r\n );\r\n\r\n this.getControl('otpValue')?.setValidators(Validators.required);\r\n this.getControl('otpValue')?.updateValueAndValidity();\r\n }\r\n\r\n template.header.examples?.forEach((each, index) => {\r\n this.addParamHeader(\r\n formStorage?.paramHeader?.[index]?.name ?? formStorage?.paramHeader?.[index] ?? ''\r\n );\r\n });\r\n\r\n template.body.examples?.forEach((each, index) => {\r\n let paramValue =\r\n formStorage?.paramBody?.[index]?.name ?? formStorage?.paramBody?.[index] ?? '';\r\n\r\n if (['$UnsubscribeAccount'].includes(each)) paramValue = each;\r\n\r\n this.addParamBody(paramValue);\r\n });\r\n\r\n // ==========================================================\r\n // TAMBAHAN: Generate Variable Dinamis dari template.body.examples\r\n // ==========================================================\r\n this.variables.clear();\r\n if (template.body?.examples && template.body.examples.length > 0) {\r\n const isSavedTemplateMatches = formStorage?.template?.name === template.name;\r\n\r\n template.body.examples.forEach((exampleValue: string, index: number) => {\r\n let savedVariable = '';\r\n if (isSavedTemplateMatches) {\r\n savedVariable =\r\n formStorage?.variables?.[index]?.paramName ??\r\n formStorage?.template?.data?.[index];\r\n }\r\n\r\n const finalValue = savedVariable ? savedVariable : '';\r\n\r\n this.variables.push(\r\n new FormGroup({\r\n paramName: new FormControl({\r\n value: finalValue,\r\n disabled: this.isReadOnlyMode,\r\n }),\r\n })\r\n );\r\n });\r\n }\r\n\r\n if (template.body?.text) {\r\n this.getControl('text')?.setValue(template.body.text);\r\n this.getControl('text')?.updateValueAndValidity();\r\n }\r\n // ==========================================================\r\n\r\n // ==========================================================\r\n // TAMBAHAN: Generate Form Carousel Dinamis\r\n // ==========================================================\r\n const carouselArray = this.form.get('paramCarousel') as FormArray;\r\n carouselArray.clear();\r\n\r\n const isUsingUpload = this.getControl('isUpload')?.value;\r\n const dynamicValidator = isUsingUpload ? null : Validators.required;\r\n\r\n if (template.carousel && template.carousel.length > 0) {\r\n const isSavedTemplateMatches = formStorage?.template?.name === template.name;\r\n\r\n // BUKAN formStorage?.template?.carousel, TAPI formStorage?.paramCarousel (tempat lu ngetik)\r\n const savedUserInputs = isSavedTemplateMatches ? formStorage?.paramCarousel : null;\r\n\r\n template.carousel.forEach((card: any, cardIdx: number) => {\r\n const cardGroup = new FormGroup({\r\n headerURL: new FormControl(card.header?.url ?? ''),\r\n bodyParams: new FormArray([]),\r\n buttonParams: new FormArray([]),\r\n });\r\n\r\n // 1. Setup Body Params\r\n if (card.body?.examples?.length > 0) {\r\n card.body.examples.forEach((_: any, bodyIdx: number) => {\r\n // AMBIL VALUE DARI INPUTAN SEBELUMNYA\r\n const savedBodyVal =\r\n savedUserInputs?.[cardIdx]?.bodyParams?.[bodyIdx]?.paramName ?? '';\r\n (cardGroup.get('bodyParams') as FormArray).push(\r\n new FormGroup({\r\n paramName: new FormControl(\r\n { value: savedBodyVal, disabled: this.isReadOnlyMode },\r\n dynamicValidator\r\n ),\r\n })\r\n );\r\n });\r\n }\r\n\r\n if (card.buttons?.length > 0) {\r\n card.buttons.forEach((btn: any, btnIdx: number) => {\r\n const btnParamArray = new FormArray([]);\r\n\r\n // SKENARIO 1: Button dengan variabel (contoh URL / Phone dengan {{1}})\r\n if (btn.examples?.length > 0) {\r\n btn.examples.forEach((_: any, paramIdx: number) => {\r\n const savedBtnVal =\r\n savedUserInputs?.[cardIdx]?.buttonParams?.[btnIdx]?.[paramIdx]\r\n ?.paramName ?? '';\r\n btnParamArray.push(\r\n new FormGroup({\r\n paramName: new FormControl(\r\n { value: savedBtnVal, disabled: this.isReadOnlyMode },\r\n dynamicValidator\r\n ),\r\n })\r\n );\r\n });\r\n }\r\n // SKENARIO 2: Button bertipe QUICK_REPLY (Butuh input Payload statis)\r\n else if (btn.type === 'QUICK_REPLY') {\r\n const savedPayloadVal =\r\n savedUserInputs?.[cardIdx]?.buttonParams?.[btnIdx]?.[0]?.payload ??\r\n '';\r\n\r\n btnParamArray.push(\r\n new FormGroup({\r\n payload: new FormControl(\r\n { value: savedPayloadVal, disabled: this.isReadOnlyMode },\r\n [\r\n Validators.maxLength(256),\r\n ...(isUsingUpload ? [] : [Validators.required]),\r\n ]\r\n ),\r\n })\r\n );\r\n }\r\n\r\n (cardGroup.get('buttonParams') as FormArray).push(btnParamArray);\r\n });\r\n }\r\n\r\n carouselArray.push(cardGroup);\r\n });\r\n }\r\n\r\n template.buttons?.forEach((each, index) => {\r\n this.addParamButton();\r\n const button = this.getButton;\r\n\r\n if (each.examples?.length > 0) {\r\n each.examples.forEach((_, paramIndex) => {\r\n let form = null;\r\n\r\n if (each.type === 'FLOW') {\r\n form = this.initParameter(false, each.flow_id);\r\n } else {\r\n this.isShowParameter = true;\r\n form = this.initParameter(\r\n false,\r\n formStorage?.paramButton?.[index]?.name?.[paramIndex]?.name ??\r\n formStorage?.paramButton?.[index]?.name?.[paramIndex] ??\r\n formStorage?.paramButton?.[index]?.[paramIndex] ??\r\n ''\r\n );\r\n }\r\n\r\n (button[button.length - 1].get('name') as FormArray).push(form);\r\n });\r\n } else {\r\n const lastControl = button[button.length - 1]?.get('name');\r\n lastControl?.clearValidators();\r\n lastControl?.updateValueAndValidity();\r\n }\r\n });\r\n\r\n const paramBodyArray = this.form.get('paramBody') as FormArray;\r\n\r\n paramBodyArray.clearValidators();\r\n paramBodyArray.controls.forEach((ctrl) => {\r\n ctrl.get('name')?.clearValidators();\r\n ctrl.get('name')?.updateValueAndValidity();\r\n });\r\n\r\n paramBodyArray.updateValueAndValidity();\r\n this.toggleExcelValidation(this.form.get('isUpload')?.value);\r\n }\r\n\r\n public updateMediaType(_mediaType: string): void {\r\n if (_mediaType === EnumData.MEDIA_TYPE_LOCATION) this.initMaps;\r\n\r\n this.formReset(true);\r\n this.fileTypeChange(_mediaType.toLowerCase());\r\n }\r\n\r\n private fileTypeChange(type: string): void {\r\n this.extFileAccepted = 'image/*';\r\n\r\n if (type === EnumData.MEDIA_TYPE_VIDEO.toLowerCase()) {\r\n this.extFileAccepted = 'video/*';\r\n } else if (type === EnumData.MEDIA_TYPE_DOCUMENT.toLowerCase()) {\r\n this.extFileAccepted = 'application/pdf';\r\n }\r\n }\r\n\r\n public updateSearch(searchValue: string): void {\r\n this.pageNoTemplateOption = 1;\r\n this.getTemplateOptionService(null, searchValue);\r\n }\r\n\r\n public updateSearchAccount(searchValue: string): void {\r\n this.pageNoAccountOption = 1;\r\n this.getAccountOptionService(searchValue);\r\n }\r\n\r\n private initMaps(): void {\r\n this.mapsAPILoader.load().then(() => {\r\n this.setCurrentLocation();\r\n\r\n this.geoCoder = new google.maps.Geocoder();\r\n const autocomplete = new google.maps.places.Autocomplete(\r\n this.mapSearchRef.nativeElement\r\n );\r\n autocomplete.addListener('place_changed', () => {\r\n this.ngZone.run(() => {\r\n const place: google.maps.places.PlaceResult = autocomplete.getPlace();\r\n\r\n if (!place.geometry) return;\r\n\r\n this.maps.latitude = place.geometry.location.lat();\r\n this.maps.longitude = place.geometry.location.lng();\r\n this.getControl('latitude')?.setValue(this.maps.latitude);\r\n this.getControl('longitude')?.setValue(this.maps.longitude);\r\n });\r\n });\r\n });\r\n }\r\n\r\n private setCurrentLocation() {\r\n if ('geolocation' in navigator) {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n if (!this.getControl('longitude')?.value && !this.getControl('latitude')?.value) {\r\n this.maps.latitude = position.coords.latitude;\r\n this.maps.longitude = position.coords.longitude;\r\n this.getControl('latitude')?.setValue(this.maps.latitude);\r\n this.getControl('longitude')?.setValue(this.maps.longitude);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public markerDragEnd(event: google.maps.MouseEvent) {\r\n if (event.latLng) {\r\n this.maps.latitude = event.latLng.lat();\r\n this.maps.longitude = event.latLng.lng();\r\n this.getControl('latitude')?.setValue(this.maps.latitude);\r\n this.getControl('longitude')?.setValue(this.maps.longitude);\r\n }\r\n }\r\n\r\n public updateDownloadCSV(isChecked: boolean): void {\r\n this.getControl('isUpload')?.setValue(isChecked);\r\n\r\n if (isChecked) {\r\n (this.getControl('paramHeader') as FormArray).controls = [];\r\n (this.getControl('paramHeader') as FormArray).reset();\r\n (this.getControl('paramBody') as FormArray).controls = [];\r\n (this.getControl('paramBody') as FormArray).reset();\r\n (this.getControl('paramButton') as FormArray).controls = [];\r\n (this.getControl('paramButton') as FormArray).reset();\r\n this.getControl('paramHeader')?.clearValidators();\r\n this.getControl('paramBody')?.clearValidators();\r\n this.getControl('paramButton')?.clearValidators();\r\n this.getControl('paramHeader')?.updateValueAndValidity();\r\n this.getControl('paramBody')?.updateValueAndValidity();\r\n this.getControl('paramButton')?.updateValueAndValidity();\r\n this.getControl('otpValue')?.reset();\r\n this.getControl('otpValue')?.clearValidators();\r\n this.getControl('otpValue')?.updateValueAndValidity();\r\n this.variables.controls.forEach((ctrl) => {\r\n ctrl.get('paramName')?.clearValidators();\r\n ctrl.get('paramName')?.updateValueAndValidity();\r\n });\r\n const carouselArray = this.form.get('paramCarousel') as FormArray;\r\n if (carouselArray) {\r\n carouselArray.controls.forEach((card: any) => {\r\n const bodyParams = card.get('bodyParams') as FormArray;\r\n bodyParams?.controls.forEach((bCtrl) => {\r\n bCtrl.get('paramName')?.clearValidators();\r\n bCtrl.get('paramName')?.updateValueAndValidity();\r\n });\r\n\r\n const btnParams = card.get('buttonParams') as FormArray;\r\n btnParams?.controls.forEach((btnGroup: any) => {\r\n (btnGroup as FormArray).controls.forEach((pBtnCtrl) => {\r\n pBtnCtrl.get('paramName')?.clearValidators();\r\n pBtnCtrl.get('paramName')?.updateValueAndValidity();\r\n pBtnCtrl.get('payload')?.clearValidators();\r\n pBtnCtrl.get('payload')?.updateValueAndValidity();\r\n });\r\n });\r\n });\r\n }\r\n return;\r\n }\r\n this.updateTemplate(this.getControl('template')?.value);\r\n }\r\n\r\n public handleChangeTemplate(useExisting: boolean): void {\r\n this.getControl('isDownloadVariableXLS')?.setValue(false);\r\n this.variables.clear();\r\n this.updateVariableDownloadXLS(false);\r\n this.getControl('text')?.setValue('');\r\n if (useExisting) {\r\n this.getControl('template')?.setValidators(Validators.required);\r\n this.getControl('text')?.clearValidators();\r\n this.getControl('text')?.updateValueAndValidity();\r\n this.getControl('template')?.updateValueAndValidity();\r\n } else {\r\n this.getControl('template')?.reset();\r\n this.getControl('template')?.clearValidators();\r\n this.getControl('text')?.setValidators([Validators.required, Validators.max(1024)]);\r\n\r\n this.getControl('text')?.updateValueAndValidity();\r\n this.getControl('template')?.updateValueAndValidity();\r\n }\r\n }\r\n\r\n public handleChangeFrom(value: any): void {\r\n const { isUseExistingTemplate } = this.form.value;\r\n if (!isUseExistingTemplate) return;\r\n this.getTemplateOptionService(value);\r\n }\r\n\r\n get variables(): FormArray {\r\n return this.getControl('variables') as FormArray;\r\n }\r\n\r\n addVariable(): void {\r\n const variableGroup = new FormGroup({\r\n paramName: new FormControl('', Validators.required),\r\n });\r\n\r\n this.variables.push(variableGroup);\r\n\r\n const textControl = this.getControl('text');\r\n\r\n if (textControl) {\r\n const currentBody = textControl.value || '';\r\n const newSequence = `{{${this.variables.controls.length}}}`;\r\n textControl.setValue(`${currentBody} ${newSequence}`.trim());\r\n }\r\n }\r\n\r\n removeVariable(index: number): void {\r\n this.variables.removeAt(index);\r\n\r\n if (this.variables.controls.length === 0) {\r\n this.getControl('useXlsx')?.setValue(false);\r\n }\r\n\r\n const textControl = this.getControl('text');\r\n\r\n if (textControl && textControl.value) {\r\n const targetSequence = index + 1;\r\n let currentBody = textControl.value;\r\n\r\n const removeRegex = new RegExp(`\\\\s*\\\\{\\\\{${targetSequence}\\\\}\\\\}`, 'g');\r\n currentBody = currentBody.replace(removeRegex, '');\r\n\r\n currentBody = currentBody.replace(/\\{\\{(\\d+)\\}\\}/g, (match: number, numStr: string) => {\r\n const num = parseInt(numStr, 10);\r\n if (num > targetSequence) {\r\n return `{{${num - 1}}}`;\r\n }\r\n return match;\r\n });\r\n\r\n textControl.setValue(currentBody.trim());\r\n }\r\n }\r\n\r\n updateVariableDownloadXLS(isChecked: boolean): void {\r\n const variablesArray = this.variables;\r\n if (isChecked) {\r\n variablesArray.controls.forEach((control) => {\r\n control.get('paramName')?.clearValidators();\r\n control.get('paramName')?.setValue('');\r\n control.get('paramName')?.updateValueAndValidity();\r\n });\r\n } else {\r\n variablesArray.controls.forEach((control) => {\r\n control.get('paramName')?.setValidators(Validators.required);\r\n control.get('paramName')?.updateValueAndValidity();\r\n });\r\n }\r\n\r\n this.form.updateValueAndValidity();\r\n }\r\n\r\n public toggleExcelValidation(isUpload: boolean): void {\r\n const currentValidator = isUpload ? null : Validators.required;\r\n\r\n // ====================================================\r\n // 2. UPDATE VALIDASI CAROUSEL VARIABLES\r\n // ====================================================\r\n const carouselArray = this.form.get('paramCarousel') as FormArray;\r\n if (carouselArray) {\r\n carouselArray.controls.forEach((card: any) => {\r\n const bodyParams = card.get('bodyParams') as FormArray;\r\n bodyParams?.controls.forEach((bCtrl: any) => {\r\n bCtrl.get('paramName')?.setValidators(currentValidator);\r\n bCtrl.get('paramName')?.updateValueAndValidity({ emitEvent: false });\r\n });\r\n\r\n const btnParams = card.get('buttonParams') as FormArray;\r\n btnParams?.controls.forEach((btnGroup: any) => {\r\n (btnGroup as FormArray).controls.forEach((pBtnCtrl: any) => {\r\n pBtnCtrl.get('paramName')?.setValidators(currentValidator);\r\n pBtnCtrl.get('paramName')?.updateValueAndValidity({ emitEvent: false });\r\n });\r\n });\r\n });\r\n\r\n carouselArray.updateValueAndValidity({ emitEvent: false });\r\n }\r\n this.form.updateValueAndValidity();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscribers.forEach((each) => each.unsubscribe());\r\n }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport function duplicateValidator(\r\n compareArray: any[],\r\n compareProperty: string,\r\n originalValue?: any\r\n): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const inputValue = control.value ? String(control.value).trim() : '';\r\n\r\n if (!inputValue || (!!originalValue && String(originalValue) === inputValue)) {\r\n return null;\r\n }\r\n\r\n const isDuplicate = compareArray.some(\r\n (data) => inputValue === String(data[compareProperty]).trim()\r\n );\r\n\r\n return isDuplicate ? { duplicateValue: true } : null;\r\n };\r\n}\r\n\r\nexport function intervalTimeValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n const number = Number(control.value);\r\n\r\n if (Number.isNaN(number) || number % 1 !== 0 || number < 1) {\r\n return { intervalTime: true };\r\n }\r\n\r\n return null;\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n} from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n\tFailoverMechanismValidationConst,\r\n\tPlatformOptionConst,\r\n\tisHaveNextOption,\r\n\tisLoadingOption,\r\n\toptionList,\r\n\tpageNoOption,\r\n} from '../../../../core/const';\r\nimport { intervalTimeValidator } from '../../../../core/const/form-validators';\r\nimport { Parameter } from '../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../core/services';\r\nimport { TemplateWAModel, WhatsAppAccountDto } from '../../../models';\r\n\r\n@Component({\r\n\tselector: 'lib-failover-mechanism',\r\n\ttemplateUrl: './failover-mechanism.component.html',\r\n\tstyleUrls: ['./failover-mechanism.component.scss'],\r\n})\r\nexport class FailoverMechanismComponent implements OnInit, OnDestroy {\r\n\t@Output()\r\n\tpublic failover: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic channelOption: any;\r\n\tpublic validationMessages: any;\r\n\tpublic isHaveNextTemplateOption = { ...isHaveNextOption };\r\n\tpublic isLoadingTemplateOption = { ...isLoadingOption };\r\n\tpublic templateOption = { ...optionList };\r\n\tpublic isLoadingAccountOption = { ...isLoadingOption };\r\n\tpublic isHaveNextAccountOption = { ...isHaveNextOption };\r\n\tpublic accountOption = { ...optionList };\r\n\r\n\tprivate subscribers: Subscription[] = [];\r\n\tprivate pageNoTemplateOption = { ...pageNoOption };\r\n\tprivate pageNoAccountOption = { ...pageNoOption };\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\tconstructor(private apiAdapterService: ApiAdapterServiceService) {\r\n\t\tthis.failover = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.validationMessages = FailoverMechanismValidationConst;\r\n\t\tthis.channelOption = [\r\n\t\t\t...PlatformOptionConst,\r\n\t\t\t/* {\r\n icon: '',\r\n inputSvgIcon: 'icon-voice-gray',\r\n image: 'line.png',\r\n label: 'Voice',\r\n value: 'VOICE',\r\n }, */\r\n\t\t].filter(\r\n\t\t\tt =>\r\n\t\t\t\t![\r\n\t\t\t\t\t'LINE',\r\n\t\t\t\t\tthis.getCampaignStorage?.generalInformation?.form?.medium,\r\n\t\t\t\t].includes(t.value)\r\n\t\t);\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initDisable();\r\n\t\tthis.initEdit();\r\n\t\tthis.failover.emit(this.form);\r\n\t}\r\n\r\n\tget getCampaignStorage(): any {\r\n\t\treturn localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\t}\r\n\r\n\tget interval() {\r\n\t\treturn this.form.get('interval');\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tactive: new FormControl(false, Validators.required),\r\n\t\t\ttype: new FormControl(''),\r\n\t\t\tinterval: new FormControl(null),\r\n\t\t\taccounts: new FormArray([]),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tif (this.interval.touched && this.interval.value === 0) {\r\n\t\t\t\tthis.form.get('interval').setErrors({ intervalTime: true });\r\n\t\t\t}\r\n\t\t\tthis.failover.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(): void {\r\n\t\tif (\r\n\t\t\tObject.entries(this.getCampaignStorage).length === 0 ||\r\n\t\t\t!this.getCampaignStorage?.failover\r\n\t\t)\r\n\t\t\treturn;\r\n\r\n\t\tthis.form\r\n\t\t\t.get('active')\r\n\t\t\t.setValue(this.getCampaignStorage?.failover?.active);\r\n\t\tthis.form\r\n\t\t\t.get('type')\r\n\t\t\t.setValue(this.getCampaignStorage?.failover?.type ?? '');\r\n\t\tthis.form\r\n\t\t\t.get('interval')\r\n\t\t\t.setValue(this.getCampaignStorage?.failover?.interval ?? null);\r\n\r\n\t\tthis.activeChange(this.getCampaignStorage?.failover?.active);\r\n\t\tthis.validationAccount();\r\n\t}\r\n\r\n\tprivate initAccount(data: any = null, _channel: any = null): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tchannel: new FormControl(_channel),\r\n\t\t\tplatform: new FormControl(_channel?.value),\r\n\t\t\taccountId: new FormControl(\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue:\r\n\t\t\t\t\t\tdata?.accountId && typeof data?.accountId === 'string'\r\n\t\t\t\t\t\t\t? {\r\n\t\t\t\t\t\t\t\t\tid: data?.accountId,\r\n\t\t\t\t\t\t\t\t\tname: data?.accountName,\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t: data?.accountId ?? '',\r\n\t\t\t\t\tdisabled: this.isReadOnlyMode,\r\n\t\t\t\t},\r\n\t\t\t\tValidators.required\r\n\t\t\t),\r\n\t\t\taccountName: new FormControl(data?.accountName ?? ''),\r\n\t\t\tsubject: new FormControl({\r\n\t\t\t\tvalue: data?.subject ?? '',\r\n\t\t\t\tdisabled: this.isReadOnlyMode,\r\n\t\t\t}),\r\n\t\t\ttemplate: new FormControl({\r\n\t\t\t\tvalue: data?.template ?? '',\r\n\t\t\t\tdisabled: this.isReadOnlyMode,\r\n\t\t\t}),\r\n\t\t\tparamBody: new FormArray([]),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tget getAccount(): FormGroup[] {\r\n\t\treturn (this.form.get('accounts') as FormArray).controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addAccount(data: any = null, channel: any = null): void {\r\n\t\tconst form = this.initAccount(data, channel);\r\n\t\t(this.form.get('accounts') as FormArray).push(form);\r\n\r\n\t\tthis.getAccountOptionService(channel?.value, data?.accountName ?? '');\r\n\t\tthis.getTemplateOptionService(channel?.value, {}, data?.template?.name);\r\n\t}\r\n\r\n\tprivate initParameter(): FormGroup {\r\n\t\tconst form = new FormGroup({\r\n\t\t\tname: new FormControl('', Validators.required),\r\n\t\t});\r\n\r\n\t\treturn form;\r\n\t}\r\n\r\n\tpublic getParamBody(account: FormGroup): FormGroup[] {\r\n\t\treturn (account.get('paramBody') as FormArray).controls as FormGroup[];\r\n\t}\r\n\r\n\tpublic addParamBody(account: FormGroup): void {\r\n\t\tconst form = this.initParameter();\r\n\t\t(account.get('paramBody') as FormArray).push(form);\r\n\t}\r\n\r\n\tpublic deleteParamBody(account: FormGroup, index: number): void {\r\n\t\t(account.get('paramBody') as FormArray).removeAt(index);\r\n\t}\r\n\r\n\tprivate initParam(_name: string, _value: any, _type: string): Parameter {\r\n\t\treturn {\r\n\t\t\tname: _name,\r\n\t\t\tvalue: _value,\r\n\t\t\tin: 'query',\r\n\t\t\ttype: _type,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getAccountOptionService(\r\n\t\tplatform: string,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingAccountOption[platform] = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'pageNo',\r\n\t\t\t\tthis.pageNoAccountOption[platform],\r\n\t\t\t\t'number'\r\n\t\t\t),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('status', 'APPROVED', 'string'),\r\n\t\t\tthis.initParam('platform', platform, 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t];\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/admin/account', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<WhatsAppAccountDto[]>) => {\r\n\t\t\t\tif (!resp.data) return;\r\n\r\n\t\t\t\tthis.accountOption[platform] = isInfinite\r\n\t\t\t\t\t? [...this.accountOption[platform], ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\r\n\t\t\t\tthis.isHaveNextAccountOption[platform] = resp.haveNext;\r\n\t\t\t\tthis.isLoadingAccountOption[platform] = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getTemplateOptionService(\r\n\t\tplatform: string,\r\n\t\taccount: any,\r\n\t\tfilter: string = '',\r\n\t\tisInfinite: boolean = false\r\n\t): void {\r\n\t\tthis.isLoadingTemplateOption[platform] = true;\r\n\r\n\t\tconst parameterList: Array<Parameter> = [\r\n\t\t\tthis.initParam(\r\n\t\t\t\t'pageNo',\r\n\t\t\t\tthis.pageNoTemplateOption[platform],\r\n\t\t\t\t'number'\r\n\t\t\t),\r\n\t\t\tthis.initParam('rowPerPage', 20, 'number'),\r\n\t\t\tthis.initParam('platform', platform, 'string'),\r\n\t\t\tthis.initParam('filter', filter, 'string'),\r\n\t\t\tthis.initParam('clientId', account?.clientId ?? '', 'string'),\r\n\t\t\tthis.initParam('wabaId', account?.wabaId ?? '', 'string'),\r\n\t\t];\r\n\r\n\t\tif (platform === 'WA')\r\n\t\t\tparameterList.push(this.initParam('status', 'APPROVED', 'string'));\r\n\r\n\t\tconst subs = this.apiAdapterService\r\n\t\t\t.executeApiRequest(parameterList, '/message/template', 'GET')\r\n\t\t\t.subscribe((resp: AppResponse<TemplateWAModel[]>) => {\r\n\t\t\t\tthis.templateOption[platform] = isInfinite\r\n\t\t\t\t\t? [...this.templateOption[platform], ...resp.data]\r\n\t\t\t\t\t: resp.data;\r\n\r\n\t\t\t\tthis.isHaveNextTemplateOption[platform] = resp.haveNext;\r\n\t\t\t\tthis.isLoadingTemplateOption[platform] = false;\r\n\t\t\t});\r\n\r\n\t\tthis.subscribers.push(subs);\r\n\t}\r\n\r\n\tpublic getNextAccountBatch(platform: string) {\r\n\t\tif (!this.isHaveNextAccountOption[platform]) return;\r\n\r\n\t\tthis.pageNoAccountOption[platform] += 1;\r\n\t\tthis.getAccountOptionService(platform, '', true);\r\n\t}\r\n\r\n\tpublic accountSelectedDisplay(\r\n\t\tattribute1: WhatsAppAccountDto,\r\n\t\tattribute2: WhatsAppAccountDto\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.id == attribute2.id\r\n\t\t\t? `${attribute1.name} (${attribute1.accountNo})`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic templateSelectedDisplay(\r\n\t\tattribute1: TemplateWAModel,\r\n\t\tattribute2: TemplateWAModel\r\n\t): string {\r\n\t\treturn attribute1 && attribute2 && attribute1.name == attribute2.name\r\n\t\t\t? `${attribute1.name}`\r\n\t\t\t: '';\r\n\t}\r\n\r\n\tpublic getNextTemplateBatch(platform: string, account: any) {\r\n\t\tif (!this.isHaveNextTemplateOption[platform]) return;\r\n\r\n\t\tthis.pageNoTemplateOption[platform] += 1;\r\n\t\tthis.getTemplateOptionService(platform, account, '', true);\r\n\t}\r\n\r\n\tpublic updateSearch(\r\n\t\tsearchValue: string,\r\n\t\tplatform: string,\r\n\t\taccount: any\r\n\t): void {\r\n\t\tthis.pageNoTemplateOption[platform] = 1;\r\n\t\tthis.getTemplateOptionService(platform, account, searchValue);\r\n\t}\r\n\r\n\tpublic updateSearchAccount(searchValue: string, platform: string): void {\r\n\t\tthis.pageNoAccountOption[platform] = 1;\r\n\t\tthis.getAccountOptionService(platform, searchValue);\r\n\t}\r\n\r\n\tpublic activeChange(_active: boolean): void {\r\n\t\tthis.form\r\n\t\t\t.get('type')\r\n\t\t\t.setValue(this.getCampaignStorage?.failover?.type ?? '');\r\n\t\tthis.form.get('type').setValidators(Validators.required);\r\n\t\tthis.form.get('type').updateValueAndValidity();\r\n\r\n\t\tif (_active) {\r\n\t\t\tconst accounts =\r\n\t\t\t\tthis.getCampaignStorage?.failover?.accounts?.filter(\r\n\t\t\t\t\t(t: any) =>\r\n\t\t\t\t\t\tt.platform !==\r\n\t\t\t\t\t\tthis.getCampaignStorage?.generalInformation?.form\r\n\t\t\t\t\t\t\t?.medium\r\n\t\t\t\t);\r\n\r\n\t\t\tif (accounts) {\r\n\t\t\t\taccounts.map(account =>\r\n\t\t\t\t\tthis.addAccount(\r\n\t\t\t\t\t\taccount,\r\n\t\t\t\t\t\tthis.channelOption.find(\r\n\t\t\t\t\t\t\t(t: any) => t.value === account.platform\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\r\n\t\t\t\tthis.channelOption\r\n\t\t\t\t\t.filter((t: any) => {\r\n\t\t\t\t\t\treturn !accounts.find((account: any) => {\r\n\t\t\t\t\t\t\treturn account.platform === t.value;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.map(channel => this.addAccount({}, channel));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.channelOption.map(channel => this.addAccount({}, channel));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('type').clearValidators();\r\n\t\tthis.form.get('type').updateValueAndValidity();\r\n\t\t(this.form.get('accounts') as FormArray).controls = [];\r\n\t\t(this.form.get('accounts') as FormArray).reset();\r\n\t\tthis.form.get('accounts').updateValueAndValidity();\r\n\r\n\t\tthis.typeChange('Status');\r\n\t}\r\n\r\n\tpublic typeChange(_type: string): void {\r\n\t\tif (_type === 'Time') {\r\n\t\t\tthis.form\r\n\t\t\t\t.get('interval')\r\n\t\t\t\t.setValue(this.getCampaignStorage?.failover?.interval ?? null);\r\n\t\t\tthis.form\r\n\t\t\t\t.get('interval')\r\n\t\t\t\t.setValidators([Validators.required, intervalTimeValidator()]);\r\n\t\t\tthis.form.get('interval').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('interval').clearValidators();\r\n\t\tthis.form.get('interval').updateValueAndValidity();\r\n\t}\r\n\r\n\tpublic validationAccount(\r\n\t\taccount: WhatsAppAccountDto = null,\r\n\t\taccountControl: FormGroup = null\r\n\t): void {\r\n\t\taccountControl\r\n\t\t\t?.get('accountName')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.accountOption[accountControl.get('platform').value].find(\r\n\t\t\t\t\tt => t.id === account?.id\r\n\t\t\t\t)?.name ?? ''\r\n\t\t\t);\r\n\r\n\t\tconst isChooseAccount = this.getAccount.filter(\r\n\t\t\tcontrol => control.get('accountId').value\r\n\t\t);\r\n\r\n\t\tthis.getAccount.forEach(control => {\r\n\t\t\tcontrol.get('accountId').setValidators(Validators.required);\r\n\t\t\tcontrol.get('subject').setValidators(Validators.required);\r\n\t\t\tcontrol.get('template').setValidators(Validators.required);\r\n\r\n\t\t\tif (\r\n\t\t\t\t!control.get('accountId').value &&\r\n\t\t\t\tisChooseAccount?.length > 0\r\n\t\t\t) {\r\n\t\t\t\tcontrol.get('accountId').clearValidators();\r\n\t\t\t\tcontrol.get('subject').setValue('');\r\n\t\t\t\tcontrol.get('subject').clearValidators();\r\n\t\t\t\tcontrol.get('template').setValue('');\r\n\t\t\t\tcontrol.get('template').clearValidators();\r\n\t\t\t} else if (\r\n\t\t\t\t['WA', 'SMS', 'VOICE'].includes(control.get('platform').value)\r\n\t\t\t) {\r\n\t\t\t\tcontrol.get('subject').clearValidators();\r\n\t\t\t}\r\n\r\n\t\t\tcontrol.get('accountId').updateValueAndValidity();\r\n\t\t\tcontrol.get('subject').updateValueAndValidity();\r\n\t\t\tcontrol.get('template').updateValueAndValidity();\r\n\t\t});\r\n\r\n\t\tif (accountControl)\r\n\t\t\tthis.getTemplateOptionService(\r\n\t\t\t\taccountControl.get('platform').value,\r\n\t\t\t\taccountControl.get('accountId').value\r\n\t\t\t);\r\n\t}\r\n\r\n\tpublic drop(event: CdkDragDrop<any[]>) {\r\n\t\tmoveItemInArray(\r\n\t\t\tthis.getAccount,\r\n\t\t\tevent.previousIndex,\r\n\t\t\tevent.currentIndex\r\n\t\t);\r\n\r\n\t\tthis.failover.emit(this.form);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscribers.forEach(each => each.unsubscribe());\r\n\t}\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { SegmentedMessage } from 'sms-segments-calculator';\r\nimport {\r\n GeneralInformationMessageValidationConst,\r\n PlatformOptionConst,\r\n} from '../../../../core/const';\r\n\r\ninterface IMaps {\r\n zoom: number;\r\n latitude: number;\r\n longitude: number;\r\n isDraggable: boolean;\r\n isDoubleClickZoom: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-new-campaign-general-information',\r\n templateUrl: './general-information.component.html',\r\n styleUrls: ['./general-information.component.scss'],\r\n})\r\nexport class GeneralInformationComponent implements OnInit {\r\n @Output()\r\n public generalInformation: EventEmitter<{\r\n parent: FormGroup;\r\n child: FormGroup;\r\n }>;\r\n\r\n public form: FormGroup;\r\n public channelOption: any[];\r\n public generalInformationForm: FormGroup;\r\n public isTouchedWAForm: boolean = false;\r\n public isTouchedSMSForm: boolean = false;\r\n public isTouchedEmailForm: boolean = false;\r\n public isShowMore: boolean = false;\r\n public validationMessages: any;\r\n public maps: IMaps;\r\n public twilioResultCounter = {\r\n segments: 0,\r\n characters: 0,\r\n encoding: '',\r\n fulltext: `Encode - / Chars 0 / Segment 1`,\r\n };\r\n\r\n @Input() public isReadOnlyMode: boolean;\r\n\r\n constructor(private sanitizer: DomSanitizer) {\r\n this.generalInformation = new EventEmitter();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.channelOption = PlatformOptionConst;\r\n this.validationMessages = GeneralInformationMessageValidationConst;\r\n this.maps = {\r\n zoom: 15,\r\n latitude: null,\r\n longitude: null,\r\n isDraggable: true,\r\n isDoubleClickZoom: true,\r\n };\r\n\r\n this.initForm();\r\n this.initEdit();\r\n this.initDisable();\r\n }\r\n\r\n private initForm(): void {\r\n this.form = new FormGroup({\r\n id: new FormControl(null),\r\n campaignName: new FormControl(null, [Validators.required, Validators.maxLength(100)]),\r\n medium: new FormControl(null, [Validators.required]),\r\n });\r\n\r\n this.form.valueChanges.subscribe(() => {\r\n this.isTouchedWAForm = !this.isTouchedWAForm;\r\n this.isTouchedSMSForm = !this.isTouchedSMSForm;\r\n this.isTouchedEmailForm = !this.isTouchedEmailForm;\r\n\r\n this.generalInformation.emit({\r\n parent: this.form,\r\n child: this.generalInformationForm,\r\n });\r\n });\r\n setInterval(() => {\r\n this.onCheckTwilioCounter();\r\n }, 400);\r\n }\r\n\r\n private initEdit(): void {\r\n const campaign = localStorage.getItem('telin.campaign')\r\n ? JSON.parse(localStorage.getItem('telin.campaign'))\r\n : {};\r\n\r\n if (Object.entries(campaign).length === 0) return;\r\n\r\n this.form.get('id').setValue(campaign?.generalInformation?.id);\r\n this.form.get('campaignName').setValue(campaign?.generalInformation?.form.campaignName);\r\n this.form.get('medium').setValue(campaign?.generalInformation?.form.medium);\r\n }\r\n\r\n private initDisable(): void {\r\n if (!this.isReadOnlyMode) {\r\n return;\r\n }\r\n\r\n this.form.disable();\r\n }\r\n\r\n public updateGeneralInformationForm(form: FormGroup): void {\r\n this.generalInformationForm = form;\r\n this.isShowMore = false;\r\n\r\n this.generalInformation.emit({\r\n parent: this.form,\r\n child: this.generalInformationForm,\r\n });\r\n\r\n if (this.getMedia === 'LOCATION') this.getLocation();\r\n }\r\n\r\n get getHeader(): string {\r\n return this.generalInformationForm?.getRawValue()?.from?.name || '';\r\n }\r\n\r\n get getBodyString(): string {\r\n const body =\r\n this.generalInformationForm?.getRawValue()?.text ||\r\n this.generalInformationForm?.getRawValue()?.template?.body?.text ||\r\n this.generalInformationForm?.getRawValue()?.body?.text;\r\n\r\n return (\r\n body\r\n ?.split(/\\\\n|\\n/)\r\n .join('<br />')\r\n .split(/\\\\t|\\t/)\r\n .join(' ') ?? ''\r\n );\r\n }\r\n\r\n get getBody(): any {\r\n const body =\r\n this.generalInformationForm?.getRawValue()?.text ||\r\n this.generalInformationForm?.getRawValue()?.template?.body?.text ||\r\n this.generalInformationForm?.getRawValue()?.body?.text;\r\n\r\n return this.sanitizer.bypassSecurityTrustHtml(\r\n this.fixGeneratedHtml(\r\n body\r\n ?.split(/\\\\n|\\n/)\r\n .join('<br />')\r\n .split(/\\\\t|\\t/)\r\n .join(' ') ?? ''\r\n )\r\n );\r\n }\r\n\r\n get getMedia(): string {\r\n return this.generalInformationForm?.getRawValue()?.media || '';\r\n }\r\n\r\n get getTemplate(): any {\r\n return this.generalInformationForm?.getRawValue()?.template || {};\r\n }\r\n\r\n get getTemplateButton(): any {\r\n const limit =\r\n !this.isShowMore && this.getTemplate?.buttons?.length > 3\r\n ? 2\r\n : this.getTemplate?.buttons?.length;\r\n\r\n return [...this.getTemplate?.buttons].splice(0, limit) || [];\r\n }\r\n\r\n get displayFile(): string {\r\n return (\r\n (\r\n this.generalInformationForm?.getRawValue()?.targetURL ||\r\n this.generalInformationForm?.getRawValue()?.template?.header?.url\r\n )?.replace('adlsandbox.com', 'adlsandbox.net') ?? ''\r\n );\r\n }\r\n\r\n /* LINE */\r\n get isText(): boolean {\r\n return this.generalInformationForm?.getRawValue()?.channel === 'TEXT';\r\n }\r\n\r\n get isJSON(): boolean {\r\n return this.generalInformationForm?.getRawValue()?.isJSON;\r\n }\r\n\r\n get getTemplateLine(): any {\r\n return this.isJSON\r\n ? JSON.parse(this.generalInformationForm?.getRawValue()?.template?.body?.text)\r\n : this.generalInformationForm?.getRawValue()?.template?.body?.text;\r\n }\r\n /* ./ LINE */\r\n\r\n private getLocation(): void {\r\n this.maps.latitude = this.generalInformationForm?.getRawValue()?.latitude;\r\n this.maps.longitude = this.generalInformationForm?.getRawValue()?.longitude;\r\n }\r\n\r\n private fixGeneratedHtml(htmlString) {\r\n return htmlString\r\n .replaceAll(/div src=\"http/g, 'img src=\"http')\r\n .replaceAll(/div src=\"data:image/g, 'img src=\"data:image')\r\n .replaceAll(/Drag and drop your image here/g, '');\r\n }\r\n\r\n public onCheckTwilioCounter = (): void => {\r\n const valuesGeneral = this.generalInformationForm?.getRawValue();\r\n if (valuesGeneral?.channel === 'TEXT') {\r\n const segmentedMessage = new SegmentedMessage(this.getBodyString);\r\n const result = {\r\n segments: segmentedMessage.segmentsCount,\r\n encoding: segmentedMessage.encodingName,\r\n characters: segmentedMessage.numberOfUnicodeScalars,\r\n };\r\n\r\n this.twilioResultCounter = {\r\n ...result,\r\n fulltext: `Encode ${result.encoding} / Chars ${result.characters} / Segment ${result.segments}`,\r\n };\r\n } else {\r\n let valueResult = this.getBodyString;\r\n Array.from(valuesGeneral?.template?.body?.examples || []).map((entry, index) => {\r\n const placeholder = `{{${entry}}}`;\r\n const value = valuesGeneral.paramBody[index]?.name;\r\n valueResult = valueResult.split(placeholder).join(value);\r\n });\r\n\r\n const segmentedMessage = new SegmentedMessage(valueResult);\r\n const result = {\r\n segments: segmentedMessage.segmentsCount,\r\n encoding: segmentedMessage.encodingName,\r\n characters: segmentedMessage.numberOfUnicodeScalars,\r\n };\r\n\r\n this.twilioResultCounter = {\r\n ...result,\r\n fulltext: `Encode ${result.encoding} / Chars ${result.characters} / Segment ${result.segments}`,\r\n };\r\n }\r\n };\r\n}\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { HttpBodyReqPaginationModel } from '../../../../core/models';\r\nimport { Parameter } from '../../../../core/models/util/api-adapter-service-models';\r\nimport { AppResponse } from '../../../../core/models/util/api-dto/response-models';\r\nimport { ApiAdapterServiceService } from '../../../../core/services';\r\nimport { downloadBlobFile } from '../../../../core/util';\r\nimport { ContactCategoryModel } from '../../../models';\r\nimport { TableModel } from '../../campaign-index/models';\r\n\r\n@Component({\r\n selector: 'lib-new-number-bases',\r\n templateUrl: './new-number-bases.component.html',\r\n styleUrls: ['./new-number-bases.component.scss'],\r\n})\r\nexport class NewNumberBasesComponent implements OnInit, OnDestroy {\r\n @Output()\r\n public targetAudience: EventEmitter<{\r\n targetAudience: string[];\r\n numberCount: number;\r\n isUpload: boolean;\r\n file: any;\r\n }>;\r\n\r\n public table: TableModel;\r\n public isUpload: boolean = false;\r\n public isLoading: boolean = false;\r\n public isShowUploadCSV: boolean = false;\r\n public categorySelected: ContactCategoryModel[] = [];\r\n public selection = new SelectionModel<ContactCategoryModel>(true, []);\r\n public extFileAccepted: string[] = [\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n '.csv',\r\n ];\r\n public fileSelected: {\r\n name: string;\r\n targetURL: string;\r\n } = null;\r\n\r\n private categoryParam: HttpBodyReqPaginationModel;\r\n private subscribers: Subscription[] = [];\r\n\r\n @Input() public isReadOnlyMode: boolean;\r\n\r\n @ViewChild(MatSort) matSort: MatSort;\r\n\r\n constructor(\r\n private apiAdapterService: ApiAdapterServiceService,\r\n private toastr: ToastrService\r\n ) {\r\n this.targetAudience = new EventEmitter();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.categoryParam = new HttpBodyReqPaginationModel();\r\n\r\n this.initTable();\r\n this.getCategoryList();\r\n\r\n this.targetAudience.emit({\r\n targetAudience: [],\r\n numberCount: 0,\r\n isUpload: this.getCampaignStorage?.generalInformation?.form?.isUpload,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n }\r\n\r\n private initTable(): void {\r\n this.table = new TableModel();\r\n this.table.labels = [\r\n 'select',\r\n 'Category',\r\n 'No. Of Customer',\r\n 'Created Date',\r\n 'Updated Date',\r\n ];\r\n this.table.columns = ['select', 'name', 'totalMembers', 'createdDate', 'updatedDate'];\r\n }\r\n\r\n get getCampaignStorage(): any {\r\n return localStorage.getItem('telin.campaign')\r\n ? JSON.parse(localStorage.getItem('telin.campaign'))\r\n : {};\r\n }\r\n\r\n private initEdit(): void {\r\n if (Object.entries(this.getCampaignStorage).length === 0) return;\r\n\r\n const genInfoForm = this.getCampaignStorage?.generalInformation?.form;\r\n this.isShowUploadCSV = genInfoForm?.isUpload || genInfoForm?.isDownloadVariableXLS;\r\n\r\n this.fileSelected = {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n };\r\n\r\n this.table.dataSource.data?.forEach((each) => {\r\n if (this.getCampaignStorage?.targetAudience?.includes(each.id))\r\n this.onChecked(true, each);\r\n });\r\n }\r\n\r\n private getCategoryList(filter: string = ''): void {\r\n this.isLoading = true;\r\n\r\n if (this.isReadOnlyMode) this.categoryParam.pageSize = 1000;\r\n\r\n const parameterList: Array<Parameter> = [\r\n this.initParam('pageNo', this.categoryParam.pageNo, 'number'),\r\n this.initParam('rowPerPage', this.categoryParam.pageSize, 'number'),\r\n this.initParam('filter', filter, 'string'),\r\n this.initParam(\r\n 'platform',\r\n this.getCampaignStorage?.generalInformation?.form?.medium,\r\n 'string'\r\n ),\r\n ];\r\n\r\n if (this.getCampaignStorage?.generalInformation?.form?.medium === 'LINE')\r\n parameterList.push(\r\n this.initParam(\r\n 'accountId',\r\n this.getCampaignStorage?.generalInformation?.form?.from?.id,\r\n 'string'\r\n )\r\n );\r\n\r\n if (this.isReadOnlyMode) parameterList.push(this.initParam('summary', true, 'string'));\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/admin/category', 'GET')\r\n .subscribe((resp: AppResponse<ContactCategoryModel[]>) => {\r\n if (this.isReadOnlyMode) {\r\n this.table.dataSource.data = resp.data?.filter((each) =>\r\n this.getCampaignStorage?.targetAudience?.includes(each.id)\r\n );\r\n\r\n this.categorySelected = this.table.dataSource.data;\r\n this.isLoading = false;\r\n this.initEdit();\r\n return;\r\n }\r\n\r\n this.table.dataSource.data = resp.data;\r\n this.table.setNextPage(resp.haveNext);\r\n this.isLoading = false;\r\n this.initEdit();\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private initParam(_name: string, _value: any, _type: string): Parameter {\r\n return {\r\n name: _name,\r\n value: _value,\r\n in: 'query',\r\n type: _type,\r\n };\r\n }\r\n\r\n public updateSearch(searchValue: string): void {\r\n this.table.resetPage();\r\n this.categoryParam.pageNo = this.table.page;\r\n this.getCategoryList(searchValue);\r\n }\r\n\r\n public updatePage(event: any): void {\r\n if (this.table.pageSize !== event?.pageSize) this.table.resetPage();\r\n\r\n this.table.page =\r\n this.table.pageSize !== event?.pageSize ? this.table.page : event?.pageIndex + 1;\r\n this.table.pageSize = event?.pageSize;\r\n this.categoryParam.pageNo = this.table.page;\r\n this.categoryParam.pageSize = this.table.pageSize;\r\n\r\n this.getCategoryList();\r\n }\r\n\r\n public sort(): void {\r\n this.table.dataSource.sort = this.matSort;\r\n }\r\n\r\n public checkboxLabel(row?: ContactCategoryModel): string {\r\n if (!row) return `${this.isAllSelected() ? 'deselect' : 'select'} all`;\r\n\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.name + 1}`;\r\n }\r\n\r\n public isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.table.dataSource.data?.length ?? 0;\r\n\r\n if (\r\n this.table.dataSource.data &&\r\n this.table.dataSource.data.length > 0 &&\r\n this.selection.selected &&\r\n this.selection.selected.length > 0\r\n ) {\r\n for (const data of this.table.dataSource.data) {\r\n if (this.selection.selected.filter((t) => t.id === data.id).length > 0) continue;\r\n\r\n return false;\r\n }\r\n }\r\n\r\n return numSelected === numRows;\r\n }\r\n\r\n public masterToggle(isChecked: boolean) {\r\n if (!isChecked) {\r\n this.selection.clear();\r\n this.categorySelected = [];\r\n\r\n this.targetAudience.emit({\r\n targetAudience: [],\r\n numberCount: 0,\r\n isUpload: this.isShowUploadCSV,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.selection.select(...this.table.dataSource.data);\r\n this.categorySelected = this.selection.selected;\r\n\r\n this.targetAudience.emit({\r\n targetAudience: this.categorySelected.map((t) => t.id),\r\n numberCount: this.categorySelected.reduce((sum, x) => sum + x.totalMembers, 0),\r\n isUpload: this.isShowUploadCSV,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n }\r\n\r\n public onChecked(isChecked: boolean, row: ContactCategoryModel) {\r\n if (!isChecked) {\r\n this.selection.deselect(...this.selection.selected.filter((x) => x.id === row.id));\r\n this.categorySelected = this.selection.selected;\r\n\r\n this.targetAudience.emit({\r\n targetAudience: this.categorySelected.map((t) => t.id),\r\n numberCount: this.categorySelected.reduce((sum, x) => sum + x.totalMembers, 0),\r\n isUpload: this.isShowUploadCSV,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.selection.select(row);\r\n this.categorySelected = this.selection.selected;\r\n\r\n this.targetAudience.emit({\r\n targetAudience: this.categorySelected.map((t) => t.id),\r\n numberCount: this.categorySelected.reduce((sum, x) => sum + x.totalMembers, 0),\r\n isUpload: this.isShowUploadCSV,\r\n file: {\r\n name: this.getCampaignStorage?.targetAudienceFile?.name,\r\n targetURL: this.getCampaignStorage?.targetAudienceFile?.targetURL,\r\n },\r\n });\r\n }\r\n\r\n public isChecked(row: ContactCategoryModel) {\r\n const found = this.selection.selected.find((x) => x.id === row.id);\r\n return found ? true : false;\r\n }\r\n\r\n public onDownloadSampleService(): void {\r\n const genInfoForm = this.getCampaignStorage?.generalInformation?.form;\r\n const isNeedSave = genInfoForm?.isNeedSave;\r\n\r\n // 1. Parameter Wajib (Selalu dikirim di semua skenario)\r\n const parameterList: Array<Parameter> = [\r\n this.initParam('platform', genInfoForm?.template?.platform || 'WA', 'string'),\r\n this.initParam(\r\n 'category',\r\n this.categorySelected?.map((t) => t.id).join() ?? '', // <-- Category selalu dikirim\r\n 'string'\r\n ),\r\n ];\r\n\r\n if (isNeedSave) {\r\n // SKENARIO 1: USE EXISTING / TEMPLATE SUDAH DISAVE\r\n parameterList.push(\r\n this.initParam('templateName', genInfoForm?.template?.name, 'string'),\r\n this.initParam('templateLang', genInfoForm?.template?.lang, 'string')\r\n );\r\n } else {\r\n // SKENARIO 2: CREATE NEW / DIRECT SEND (Belum di-save)\r\n\r\n // Cek aman: Kirim templateName & Lang HANYA kalau ada (biar nggak undefined)\r\n if (genInfoForm?.template?.name) {\r\n parameterList.push(\r\n this.initParam('templateName', genInfoForm?.template?.name, 'string')\r\n );\r\n }\r\n if (genInfoForm?.template?.lang) {\r\n parameterList.push(\r\n this.initParam('templateLang', genInfoForm?.template?.lang, 'string')\r\n );\r\n }\r\n\r\n // Variabel khusus Direct Send\r\n const safeBodyText = encodeURIComponent(genInfoForm?.text || '');\r\n parameterList.push(this.initParam('bodyText', safeBodyText, 'string'));\r\n\r\n if (genInfoForm?.template?.header?.text) {\r\n const safeHeaderText = encodeURIComponent(genInfoForm.template.header.text);\r\n parameterList.push(this.initParam('headerText', safeHeaderText, 'string'));\r\n }\r\n }\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/message/bulkupload/template', 'GET', true)\r\n .subscribe((resp: AppResponse<any>) => {\r\n downloadBlobFile(resp, 'Sample-UploadParameter.xlsx');\r\n });\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n public onFileSelected(event: Event) {\r\n const file: FileList = (event.target as HTMLInputElement).files;\r\n const MAXIMUM_SIZE = 30 * 1024 * 1024;\r\n\r\n if (file.length === 0) return;\r\n\r\n if (file[0].size > MAXIMUM_SIZE) {\r\n this.toastr.error('Upload media failed, max size 30mb');\r\n return;\r\n }\r\n\r\n this.getPresignedUrlService(file[0]);\r\n }\r\n\r\n private getPresignedUrlService(file: File): void {\r\n this.isUpload = true;\r\n\r\n const parameterList: Array<Parameter> = [\r\n { name: 'fileName', value: file.name, in: 'query', type: 'string' },\r\n { name: 'fileType', value: file.type, in: 'query', type: 'string' },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, '/campaign/upload/pre-signed-url', 'GET')\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n if (resp && resp.data) {\r\n this.uploadToS3Service(file, resp.data.url, resp.data.fileName);\r\n }\r\n },\r\n () => (this.isUpload = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n private uploadToS3Service(file: File, s3Url: string, fileNameS3: string): void {\r\n this.apiAdapterService.uploadFileToS3(s3Url, file).subscribe(\r\n () => {\r\n this.finalizeTargetFileService(fileNameS3);\r\n },\r\n (err) => {\r\n this.toastr.error('Failed uploading to S3 storage');\r\n this.isUpload = false;\r\n console.error('S3 Upload Error:', err);\r\n }\r\n );\r\n }\r\n\r\n private finalizeTargetFileService(fileNameS3: string): void {\r\n const campaignId = this.getCampaignStorage?.generalInformation?.id;\r\n const parameterList: Array<Parameter> = [\r\n {\r\n name: 'body',\r\n value: { fileName: fileNameS3 },\r\n in: 'body',\r\n type: 'object',\r\n withoutKeyData: true,\r\n },\r\n ];\r\n\r\n const subs = this.apiAdapterService\r\n .executeApiRequest(parameterList, `/campaign/${campaignId}/targetfile`, 'POST')\r\n .subscribe(\r\n (resp: AppResponse<any>) => {\r\n if (!resp) return;\r\n\r\n this.toastr.info('Upload XLSX has been uploaded successfully');\r\n this.isUpload = false;\r\n\r\n this.targetAudience.emit({\r\n targetAudience: this.categorySelected.map((t) => t.id),\r\n numberCount: this.categorySelected.reduce(\r\n (sum, x) => sum + x.totalMembers,\r\n 0\r\n ),\r\n isUpload: true,\r\n file: {\r\n name: fileNameS3,\r\n targetURL: resp.data?.targetURL || '',\r\n },\r\n });\r\n },\r\n () => (this.isUpload = false)\r\n );\r\n\r\n this.subscribers.push(subs);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscribers.forEach((each) => each.unsubscribe());\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { SchedulerMessageValidationConst } from '../../../../core/const';\r\n\r\n@Component({\r\n\tselector: 'lib-new-campaign-scheduler',\r\n\ttemplateUrl: './scheduler.component.html',\r\n\tstyleUrls: ['./scheduler.component.scss'],\r\n})\r\nexport class SchedulerComponent implements OnInit {\r\n\t@Output()\r\n\tpublic scheduler: EventEmitter<FormGroup>;\r\n\r\n\tpublic form: FormGroup;\r\n\tpublic minDate: Date;\r\n\tpublic validationMessages: any;\r\n\r\n\tprivate datePipe: DatePipe;\r\n\r\n\t@Input() public isReadOnlyMode: boolean;\r\n\r\n\tconstructor(private toastr: ToastrService) {\r\n\t\tthis.datePipe = new DatePipe('en-US');\r\n\t\tthis.scheduler = new EventEmitter();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.validationMessages = SchedulerMessageValidationConst;\r\n\t\tthis.minDate = new Date();\r\n\r\n\t\tthis.initForm();\r\n\t\tthis.initEdit();\r\n\t\tthis.initDisable();\r\n\t}\r\n\r\n\tprivate initForm(): void {\r\n\t\tthis.form = new FormGroup({\r\n\t\t\tschedulerType: new FormControl(null, Validators.required),\r\n\t\t\tstartDate: new FormControl(null),\r\n\t\t\tstartTime: new FormControl(null),\r\n\t\t\tisRepeat: new FormControl(false),\r\n\t\t\tdelivery: new FormControl(null),\r\n\t\t});\r\n\r\n\t\tthis.form.valueChanges.subscribe(() => {\r\n\t\t\tthis.scheduler.emit(this.form);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initDisable(): void {\r\n\t\tif (!this.isReadOnlyMode) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.disable();\r\n\t}\r\n\r\n\tprivate initEdit(isEdit: boolean = true): void {\r\n\t\tconst campaign = localStorage.getItem('telin.campaign')\r\n\t\t\t? JSON.parse(localStorage.getItem('telin.campaign'))\r\n\t\t\t: {};\r\n\r\n\t\tif (Object.entries(campaign).length === 0) return;\r\n\r\n\t\tif (isEdit)\r\n\t\t\tthis.form\r\n\t\t\t\t.get('schedulerType')\r\n\t\t\t\t.setValue(campaign?.scheduler?.schedulerType);\r\n\r\n\t\tthis.form.get('startDate').setValue(campaign?.scheduler?.startDate);\r\n\t\tthis.form.get('startTime').setValue(campaign?.scheduler?.startTime);\r\n\t\tthis.form.get('isRepeat').setValue(campaign?.scheduler?.isRepeat);\r\n\t\tthis.form\r\n\t\t\t.get('delivery')\r\n\t\t\t.setValue(\r\n\t\t\t\tthis.capitalizeFirstLetter(campaign?.scheduler?.delivery)\r\n\t\t\t);\r\n\t}\r\n\r\n\tprivate capitalizeFirstLetter(value: string): string {\r\n\t\tif (!value) return '';\r\n\r\n\t\treturn (\r\n\t\t\tvalue?.charAt(0).toUpperCase() + value?.slice(1).toLowerCase() ?? ''\r\n\t\t);\r\n\t}\r\n\r\n\tpublic updateSchedulerType(type: string): void {\r\n\t\tthis.form.get('schedulerType').setValue(type);\r\n\r\n\t\tif (this.form.get('schedulerType').value === 'NOW') {\r\n\t\t\tthis.form.get('startDate').setValue(null);\r\n\t\t\tthis.form.get('startDate').clearValidators();\r\n\t\t\tthis.form.get('startDate').updateValueAndValidity();\r\n\t\t\tthis.form.get('startTime').setValue(null);\r\n\t\t\tthis.form.get('startTime').clearValidators();\r\n\t\t\tthis.form.get('startTime').updateValueAndValidity();\r\n\t\t\tthis.form.get('delivery').setValue(null);\r\n\t\t\tthis.form.get('delivery').clearValidators();\r\n\t\t\tthis.form.get('delivery').updateValueAndValidity();\r\n\t\t\tthis.form.get('isRepeat').setValue(false);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('startDate').setValidators(Validators.required);\r\n\t\tthis.form.get('startDate').updateValueAndValidity();\r\n\t\tthis.form.get('startTime').setValidators(Validators.required);\r\n\t\tthis.form.get('startTime').updateValueAndValidity();\r\n\t\tthis.initEdit(false);\r\n\t}\r\n\r\n\tpublic updateTime(): void {\r\n\t\tif (!this.form.get('startDate').value) return;\r\n\r\n\t\tconst dateNow = new Date().getTime();\r\n\t\tconst startDate = new Date(\r\n\t\t\t`${this.datePipe.transform(\r\n\t\t\t\tthis.form.get('startDate').value,\r\n\t\t\t\t'yyyy-MM-dd'\r\n\t\t\t)} ${this.form.get('startTime').value}`\r\n\t\t).getTime();\r\n\r\n\t\tif (dateNow > startDate) {\r\n\t\t\tthis.form.get('startTime').setValue(null);\r\n\t\t\tthis.toastr.error('Selected time has been surpassed');\r\n\t\t}\r\n\t}\r\n\r\n\tpublic updateRepeat(isChecked: boolean): void {\r\n\t\tif (isChecked) {\r\n\t\t\tthis.form.get('delivery').setValidators(Validators.required);\r\n\t\t\tthis.form.get('delivery').updateValueAndValidity();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.form.get('isRepeat').setValue(null);\r\n\t\tthis.form.get('delivery').setValue(null);\r\n\t\tthis.form.get('delivery').clearValidators();\r\n\t\tthis.form.get('delivery').updateValueAndValidity();\r\n\t}\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-new-campaign-summary',\r\n\ttemplateUrl: './summary.component.html',\r\n\tstyleUrls: ['./summary.component.scss'],\r\n})\r\nexport class SummaryComponent {\r\n\t@Input() public isShowLabel: boolean;\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'lib-wizard',\r\n\ttemplateUrl: './wizard.component.html',\r\n\tstyleUrls: ['./wizard.component.scss'],\r\n})\r\nexport class WizardComponent implements OnInit {\r\n\t@Input() positionWizard: number = 1;\r\n\t@Input() dataWizard: string[] = [];\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnInit(): void {}\r\n}\r\n","import { AgmCoreModule } from '@agm/core';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { PickerModule } from '@ctrl/ngx-emoji-mart';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { NgbDropdownModule, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as echarts from 'echarts';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { SearchModule } from '../global/search/search.module';\r\nimport { CampaignManagementComponent } from './campaign-management.component';\r\nimport { InputNumericModule } from './components/input-numeric/input-numeric.module';\r\nimport { CampaignIndexModule } from './modules/campaign-index/campaign-index.module';\r\nimport { PendingApprovalDialogViewComponent } from './modules/campaign-index/dialog/pending-approval-dialog-view';\r\nimport { DashboardModule } from './modules/dashboard/dashboard.module';\r\nimport { NewCampaignComponent } from './modules/new-campaign';\r\nimport { GeneralInformationEmailComponent } from './modules/new-campaign/components/general-information-email';\r\nimport { GeneralInformationLineComponent } from './modules/new-campaign/components/general-information-line';\r\nimport { GeneralInformationSMSComponent } from './modules/new-campaign/components/general-information-sms';\r\nimport { GeneralInformationWAComponent } from './modules/new-campaign/components/general-information-wa';\r\nimport { FailoverMechanismComponent } from './modules/new-campaign/failover-mechanism';\r\nimport { GeneralInformationComponent } from './modules/new-campaign/general-information';\r\nimport { NewNumberBasesComponent } from './modules/new-campaign/new-number-bases';\r\nimport { SchedulerComponent } from './modules/new-campaign/scheduler';\r\nimport { SummaryComponent } from './modules/new-campaign/summary';\r\nimport { WizardComponent } from './modules/wizard';\r\n\r\n@NgModule({\r\n declarations: [\r\n CampaignManagementComponent,\r\n WizardComponent,\r\n NewCampaignComponent,\r\n GeneralInformationComponent,\r\n SchedulerComponent,\r\n SummaryComponent,\r\n NewNumberBasesComponent,\r\n GeneralInformationLineComponent,\r\n GeneralInformationWAComponent,\r\n GeneralInformationSMSComponent,\r\n GeneralInformationEmailComponent,\r\n PendingApprovalDialogViewComponent,\r\n FailoverMechanismComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyCHReBe_RpzAgLTrUC5QIDyeKttQ817wRY',\r\n libraries: ['places'],\r\n }),\r\n DashboardModule,\r\n MatAutocompleteModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatRadioModule,\r\n MatListModule,\r\n MatButtonModule,\r\n NgxEchartsModule.forRoot({\r\n echarts,\r\n }),\r\n MatIconModule,\r\n PickerModule,\r\n AngularEditorModule,\r\n MatDialogModule,\r\n MatTabsModule,\r\n MatBadgeModule,\r\n NgbDropdownModule,\r\n NgbPaginationModule,\r\n MatCardModule,\r\n MatTableModule,\r\n MatCheckboxModule,\r\n MatPaginatorModule,\r\n MatGridListModule,\r\n MatDatepickerModule,\r\n MatSortModule,\r\n SearchModule,\r\n MatDividerModule,\r\n MatProgressSpinnerModule,\r\n MatSlideToggleModule,\r\n DragDropModule,\r\n CampaignIndexModule,\r\n InputNumericModule,\r\n ],\r\n exports: [CampaignManagementComponent, SummaryComponent],\r\n entryComponents: [PendingApprovalDialogViewComponent],\r\n providers: [DatePipe],\r\n})\r\nexport class CampaignManagementModule {}\r\n","import { AgmCoreModule } from '@agm/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { AdlCampaignManagementLibraryInternalComponent } from './adl-campaign-management-library-internal.component';\r\nimport { CampaignManagementModule } from './campaign-management/campaign-management.module';\r\nimport { CustomPaginator } from './core/util';\r\n\r\n@NgModule({\r\n\tdeclarations: [AdlCampaignManagementLibraryInternalComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tAgmCoreModule.forRoot({\r\n\t\t\tapiKey: 'AIzaSyCHReBe_RpzAgLTrUC5QIDyeKttQ817wRY',\r\n\t\t\tlibraries: ['places'],\r\n\t\t}),\r\n\t\tCampaignManagementModule,\r\n\t\tNgxEchartsModule,\r\n\t\tMatCardModule,\r\n\t\tHttpClientModule,\r\n\t\tToastrModule.forRoot(),\r\n\t],\r\n\texports: [AdlCampaignManagementLibraryInternalComponent],\r\n\tproviders: [{ provide: MatPaginatorIntl, useClass: CustomPaginator }],\r\n})\r\nexport class AdlCampaignManagementLibraryInternalModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { ConfirmationComponent } from './confirmation';\r\n\r\n@NgModule({\r\n\tdeclarations: [ConfirmationComponent],\r\n\timports: [CommonModule, MatDialogModule, MatButtonModule],\r\n\texports: [ConfirmationComponent]\r\n})\r\nexport class ConfirmationModule {}\r\n"],"names":["Component","Subject","EventEmitter","FormControl","debounceTime","Output","Input","NgModule","CommonModule","FormsModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatButtonModule","MatIconModule","ControlContainer","ContentChild","NG_VALUE_ACCESSOR","forwardRef","SELECT_ITEM_HEIGHT_EM","takeUntil","fromEvent","tap","MatSelect","NgZone","Directive","HttpHeaders","catchError","of","HttpClient","Injectable","MatTableDataSource","DatePipe","MatPaginatorIntl","HttpParams","FormGroup","Inject","MAT_DIALOG_DATA","MatDialogRef","ToastrService","MatDialog","ViewChild","MatSort","MatDatepickerModule","MatTableModule","MatSortModule","MatPaginatorModule","MatDialogModule","MatTabsModule","MatCardModule","MatCheckboxModule","MatSelectModule","MatRadioModule","MatChipsModule","NgbPaginationModule","NgbDropdownModule","MatGridListModule","MatNativeDateModule","MatToolbarModule","MatTooltipModule","MatAutocompleteModule","MatListModule","PickerModule","AngularEditorModule","MatButtonToggleModule","MatBadgeModule","NgxEchartsModule","SegmentedMessage","Validators","FormArray","AngularValidators","CustomValidators","MapsAPILoader","moveItemInArray","DomSanitizer","SelectionModel","AgmCoreModule","MatDividerModule","MatProgressSpinnerModule","MatSlideToggleModule","DragDropModule","HttpClientModule","ToastrModule"],"mappings":"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"}