x-tql-service 1.19.4

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.
Files changed (39) hide show
  1. package/README.md +24 -0
  2. package/fesm2022/x-tql-service.mjs +2232 -0
  3. package/fesm2022/x-tql-service.mjs.map +1 -0
  4. package/index.d.ts +5 -0
  5. package/lib/constants/error-status.enum.d.ts +5 -0
  6. package/lib/constants/index.d.ts +5 -0
  7. package/lib/constants/key.constant.d.ts +12 -0
  8. package/lib/constants/language.constant.d.ts +14 -0
  9. package/lib/constants/map.constant.d.ts +25 -0
  10. package/lib/constants/mics.constant.d.ts +9 -0
  11. package/lib/controllers/dialog/tql-dialog-controller.service.d.ts +28 -0
  12. package/lib/controllers/index.d.ts +5 -0
  13. package/lib/controllers/route/tql-route-controller.service.d.ts +6 -0
  14. package/lib/controllers/site-map/tql-site-map-controller.service.d.ts +23 -0
  15. package/lib/controllers/table/tql-table-controller.service.d.ts +11 -0
  16. package/lib/controllers/toast/tql-toast-controller.service.d.ts +19 -0
  17. package/lib/interceptor/index.d.ts +1 -0
  18. package/lib/interceptor/tql-api.interceptor.d.ts +17 -0
  19. package/lib/models/default/default-component.d.ts +55 -0
  20. package/lib/models/default/default-dialog-component.d.ts +35 -0
  21. package/lib/models/default/default-directive.d.ts +7 -0
  22. package/lib/models/default/default-map-component.d.ts +19 -0
  23. package/lib/models/default/default-model.d.ts +68 -0
  24. package/lib/models/default/default-model.interface.d.ts +5 -0
  25. package/lib/models/default/dynamic-model.d.ts +11 -0
  26. package/lib/models/index.d.ts +9 -0
  27. package/lib/models/payload.model.d.ts +33 -0
  28. package/lib/models/ws-payload.model.d.ts +13 -0
  29. package/lib/services/api/tql-api-lib.service.d.ts +81 -0
  30. package/lib/services/config/tql-global-config.service.d.ts +9 -0
  31. package/lib/services/error-handler/tql-error-handler.service.d.ts +69 -0
  32. package/lib/services/index.d.ts +7 -0
  33. package/lib/services/log/tql-logger.service.d.ts +23 -0
  34. package/lib/services/translate/tql-translate.service.d.ts +64 -0
  35. package/lib/services/utils/tql-utils.service.d.ts +138 -0
  36. package/lib/services/ws/tql-ws.service.d.ts +123 -0
  37. package/lib/tql-service.module.d.ts +8 -0
  38. package/package.json +23 -0
  39. package/public-api.d.ts +6 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x-tql-service.mjs","sources":["../../../projects/tql-service/src/lib/constants/mics.constant.ts","../../../projects/tql-service/src/lib/constants/error-status.enum.ts","../../../projects/tql-service/src/lib/constants/key.constant.ts","../../../projects/tql-service/src/lib/constants/map.constant.ts","../../../projects/tql-service/src/lib/constants/language.constant.ts","../../../projects/tql-service/src/lib/models/default/default-model.ts","../../../projects/tql-service/src/lib/models/default/default-component.ts","../../../projects/tql-service/src/lib/models/default/default-directive.ts","../../../projects/tql-service/src/lib/models/default/default-dialog-component.ts","../../../projects/tql-service/src/lib/models/default/dynamic-model.ts","../../../projects/tql-service/src/lib/models/default/default-map-component.ts","../../../projects/tql-service/src/lib/services/utils/tql-utils.service.ts","../../../projects/tql-service/src/lib/controllers/site-map/tql-site-map-controller.service.ts","../../../projects/tql-service/src/lib/controllers/toast/tql-toast-controller.service.ts","../../../projects/tql-service/src/lib/controllers/dialog/tql-dialog-controller.service.ts","../../../projects/tql-service/src/lib/controllers/route/tql-route-controller.service.ts","../../../projects/tql-service/src/lib/controllers/table/tql-table-controller.service.ts","../../../projects/tql-service/src/lib/services/log/tql-logger.service.ts","../../../projects/tql-service/src/lib/services/error-handler/tql-error-handler.service.ts","../../../projects/tql-service/src/lib/services/api/tql-api-lib.service.ts","../../../projects/tql-service/src/lib/services/ws/tql-ws.service.ts","../../../projects/tql-service/src/lib/services/translate/tql-translate.service.ts","../../../projects/tql-service/src/lib/services/config/tql-global-config.service.ts","../../../projects/tql-service/src/lib/models/payload.model.ts","../../../projects/tql-service/src/lib/models/ws-payload.model.ts","../../../projects/tql-service/src/lib/models/index.ts","../../../projects/tql-service/src/lib/interceptor/tql-api.interceptor.ts","../../../projects/tql-service/src/lib/interceptor/index.ts","../../../projects/tql-service/src/lib/tql-service.module.ts","../../../projects/tql-service/src/public-api.ts","../../../projects/tql-service/src/x-tql-service.ts"],"sourcesContent":["// import * as moment from 'moment';\nimport * as _ from 'lodash';\nimport * as xml2js from 'xml2js';\nimport { InjectionToken } from '@angular/core';\n\nexport { _, xml2js };\n\nexport const DATA_TYPE = {\n DATE: 'date',\n YES_NO: 'yes-no',\n};\n\nexport const TQL_LIBRARY_CONFIG = new InjectionToken('TQL Library Configuration');\n","export enum ErrorStatusEnum {\n FORBIDDEN,\n SUCCESS = 'Success',\n ERROR = 'Error'\n}\n","const PRE_FIX = '';\nexport const KEY_CONSTANT = {\n ALL: 'all',\n LOCAL_STORAGE: {\n USER: `${PRE_FIX}User`,\n EXPIRE: `${PRE_FIX}expiry`,\n SESSION_TOKEN: `${PRE_FIX}sessionToken`,\n USER_TOKEN: `${PRE_FIX}userToken`,\n },\n SYS_ID: 'sysId',\n STUDIO_KEY: 'x-atomiton-studio-key',\n SESSION_KEY: 'x-atomiton-session-key',\n};\n","export const MAP_STYLES = [\n {\n featureType: 'administrative',\n elementType: 'geometry',\n stylers: [{ visibility: 'off' }],\n },\n { featureType: 'landscape.natural', elementType: 'geometry', stylers: [{ visibility: 'off' }] },\n {\n featureType: 'poi',\n stylers: [{ visibility: 'off' }],\n },\n { featureType: 'road', elementType: 'geometry.fill', stylers: [{ color: '#c0c0c0' }] },\n {\n featureType: 'road',\n elementType: 'labels.icon',\n stylers: [{ visibility: 'off' }],\n },\n { featureType: 'road.highway', elementType: 'geometry.fill', stylers: [{ weight: 2 }] },\n {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [{ visibility: 'off' }],\n },\n { featureType: 'transit', stylers: [{ visibility: 'off' }] },\n];\n","export const LANGUAGES = {\n EN: 'en-US',\n PT: 'pt-BR',\n};\n\nexport const LANGUAGE_DEFAULT = LANGUAGES.EN;\n\nexport const KEY_LANGUAGES_LOCAL_STORAGE = 'TQL_language';\n\nexport const TYPE_LANGUAGES_HIGH_CHART = {\n shortMonths: 'shortMonths',\n months: 'months',\n weekdays: 'weekdays',\n};\n\nexport const TRANSLATE_KEY = {\n key: 'AIzaSyBxnsG8frZ9zX9_26LA5vkGb8CNUzh6AhA',\n};\n","import { IDefaultModel } from './default-model.interface';\nimport * as _ from 'lodash';\n\nexport class DefaultModel implements IDefaultModel {\n /**\n * all keys are in lowercase\n * @type {{}}\n * @private\n */\n _data: any = {};\n /**\n * all keys are raw\n * @type {{}}\n * @private\n */\n _raw: any = {};\n _idKey: string;\n _id: any;\n\n /**\n *\n * @param _data\n * @param idKey\n * @param isAutoAssign\n */\n constructor(_data: any = {}, idKey: string = '', isAutoAssign: boolean = false, isAssignRawData: boolean = true) {\n if (_data) {\n // set raw\n if (_data.hasOwnProperty('_raw')) {\n delete _data['_raw'];\n }\n this._raw = _data;\n\n // store data to new place\n for (const key of Object.keys(_data)) {\n this._data[key.toLowerCase()] = this._raw[key];\n }\n const self = this;\n // setTimeout(() => {\n if (isAutoAssign) {\n if (isAssignRawData) {\n Object.assign(self, self._raw);\n } else {\n Object.assign(self, self._data);\n }\n }\n // });\n }\n\n if (idKey) {\n // set id key\n this._idKey = idKey.toLowerCase();\n this._id = this.getId();\n }\n }\n\n /**\n * get value of id\n * @return {any}\n */\n getId(): string | number | null {\n if (this._idKey && this._data[this._idKey]) {\n return this._data[this._idKey];\n }\n return null;\n }\n\n setId(id: string | number | null) {\n this._data[this._idKey] = id;\n this._id = this.getId();\n }\n\n /**\n * delete object property\n * @param key: string\n */\n deleteProperty(key: string): void {\n const self: any = this;\n if (!!self?.key) {\n delete self[key];\n }\n }\n\n /**\n * get key of id\n * @returns {string}\n */\n getIdKey(): string {\n return this._idKey || '';\n }\n\n /**\n * get value of _data by key\n * @param key: string\n * @returns {any}\n */\n getValue(key: string): any {\n return this._data[_.toLower(key)];\n }\n\n /**\n * set value of _data by key & value of this object's attribute if existed\n * @param key: string\n * @param value: string\n * @returns {any}\n */\n setValue(key: string, value: any): any {\n const self: any = this;\n if (self.hasOwnProperty(key)) {\n self[key] = value;\n }\n return (this._data[key.toLowerCase()] = value);\n }\n\n /**\n * get raw value of _data by key\n * @param key: string\n * @returns {any}\n */\n getRawValue(key: string): any {\n return this._raw[key];\n }\n\n /**\n * set value of _data by key\n * @param key: string\n * @param value: string\n * @returns {any}\n */\n setRawValue(key: string, value: any): any {\n return (this._raw[key] = value);\n }\n\n /*STATIC*/\n static describe(instance: any): Array<string> {\n return _.filter(Object.getOwnPropertyNames(instance), (x) => !_.startsWith(x, '_'));\n }\n}\n\nexport namespace DefaultModel {}\n","import { Directive, EventEmitter, Injector, OnDestroy, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LoadingBarService } from '@ngx-loading-bar/core';\n\n@Directive()\nexport class DefaultComponent implements OnDestroy {\n /**\n * emit event trigger when all _promises called\n * @type {EventEmitter<any>}\n */\n @Output() onPromise: EventEmitter<any> = new EventEmitter<any>();\n _promises: Promise<any>[] = [];\n\n /**\n * store all subscription of this component\n * @type {Subscription}\n * @private\n */\n _subscriptionList: Subscription;\n _isLoading = false;\n _LoadingBarService: LoadingBarService;\n\n /**\n * pass injector into here if you want to check loading work\n * ex: in child class\n * Constructor(private _Injector: Injector) {\n * super(_Injector)\n * }\n */\n constructor(_Injector?: Injector) {\n // when init, unsubscribe all\n this.unsubscribeAll();\n\n if (_Injector) {\n this._LoadingBarService = _Injector.get(LoadingBarService);\n this.addSubscribes(\n this._LoadingBarService.value$.subscribe((flat) => {\n this._isLoading = !!flat;\n }),\n );\n }\n }\n\n /**\n * IMPORTANT\n * when destroy, unsubscribe all\n */\n ngOnDestroy() {\n this.unsubscribeAll();\n // console.log('DESTROYED ' + this.constructor.name);\n }\n\n /**\n * unsubscribe all subscription which add into the component\n * it is important to prevent subscription still exist when component is destroyed\n */\n unsubscribeAll() {\n if (this._subscriptionList) {\n this._subscriptionList.unsubscribe();\n }\n this._subscriptionList = new Subscription();\n }\n\n /**\n * add subscriptions to component storage\n * @param subscriptions\n */\n addSubscribes(...subscriptions: any) {\n subscriptions.forEach((el: any) => {\n this._subscriptionList.add(el);\n });\n }\n\n /**\n * add promises into an array\n * @param promises\n */\n addPromises(...promises: Promise<any>[]): void {\n promises.forEach((el) => {\n this._promises.push(el);\n });\n\n this.onPromise.emit(\n Promise.all(this._promises).then(() => {\n this._promises = [];\n }),\n );\n }\n\n /**\n * get list of current stored promises\n * @returns {Promise<any>[]}\n */\n get promises() {\n return this._promises;\n }\n}\n","import { Directive } from '@angular/core';\nimport { DefaultComponent } from './default-component';\n\n@Directive()\nexport class DefaultDirective extends DefaultComponent {\n constructor() {\n super();\n }\n}\n","import { Directive, Injector } from '@angular/core';\nimport { DefaultComponent } from './default-component';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Directive()\nexport class DefaultDialogComponent extends DefaultComponent {\n static DEFAULT_WIDTH: any = '90vw';\n static DEFAULT_HEIGHT: any = 'auto';\n\n constructor(public dialogRef: MatDialogRef<any>, public _Injector?: Injector, ...args: unknown[]) {\n super(_Injector);\n if (!this.dialogRef.disableClose) {\n this.dialogRef.backdropClick().subscribe(() => {\n this.onCancel();\n });\n }\n }\n\n /**\n *\n * @param arg\n */\n onCancel(arg: any = false) {\n this.dialogRef.close(arg);\n }\n\n /**\n *\n * @private\n */\n onClose() {\n this.dialogRef.close(false);\n }\n\n /**\n *\n * @private\n * @param arg\n */\n onOk(arg: any = true) {\n this.dialogRef.close(arg);\n }\n}\n\nexport namespace DefaultDialogComponent {\n export enum State {\n OPENING,\n CLOSED,\n }\n}\n","import { Type } from '@angular/core';\n\nexport interface IDynamicComponentModel {\n // store data for component\n data?: any;\n\n // action reset\n reset?(): void;\n\n // called after the component generated and inserted to view\n onDataChange?(): void;\n}\n\nexport class DynamicDataModel {\n constructor(public component: Type<IDynamicComponentModel>, public data: any = null) {}\n}\n","import { Directive, EventEmitter, Injector, OnDestroy, Output } from '@angular/core';\nimport { DefaultComponent } from './default-component';\nimport { MAP_STYLES } from '../../constants';\n\ndeclare const google;\n\n@Directive()\nexport class DefaultMapComponent extends DefaultComponent {\n DEFAULT_ZOOM = 13;\n styles: any = MAP_STYLES;\n center: any;\n zoom: any = this.DEFAULT_ZOOM;\n bounds: any;\n google;\n\n constructor() {\n super();\n if (typeof google !== 'undefined') {\n this.center = new google.maps.LatLng(0, 0);\n }\n this.resetMapBounds();\n }\n\n /**\n * reset map\n */\n resetMapBounds() {\n if (typeof google !== 'undefined') {\n this.bounds = new google.maps.LatLngBounds();\n }\n }\n\n setMapBounds(map, points: any[] = [], minZoom: number | null = null) {\n if (!(!!map && points.length)) {\n return;\n }\n const self = this;\n if (!self.bounds) {\n this.resetMapBounds();\n }\n if (typeof google !== 'undefined' && map) {\n for (let i = 0; i < points.length; i++) {\n if (points[i]) {\n self.bounds.extend(points[i]);\n }\n }\n map.fitBounds(self.bounds);\n let listener = google.maps.event.addListener(map, 'idle', function () {\n //TODO tmp disabled, nam, 12/02/2019\n // if (map.getZoom() > self.DEFAULT_ZOOM) {\n // map.setZoom(self.DEFAULT_ZOOM);\n // }\n if (minZoom && map.getZoom() > minZoom) {\n map.setZoom(minZoom);\n }\n google.maps.event.removeListener(listener);\n });\n }\n }\n\n getCenterOfArray(points: any[] = []): any {\n if (!points.length || typeof google === 'undefined') {\n return null;\n }\n const bounds = new google.maps.LatLngBounds();\n points.map((el) => bounds.extend(el));\n // console.log(bounds.getCenter());\n const center = bounds.getCenter();\n // console.log(new GeoPoint(center.lat(), center.lng()));\n return { lat: center.lat(), lng: center.lng() };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport * as _ from 'lodash';\nimport * as xml2js from 'xml2js';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\n@Injectable()\nexport class TqlUtilsService {\n static _DatePipe = new DatePipe('en-US');\n\n constructor() {}\n\n /**\n * replace all {find} inside {str} by {replace}\n * @param text: string\n * @param find: string\n * @param replace: string\n * @returns any\n */\n static replaceAll(text: any, find: any, replace: any): string {\n function escapeRegExp(str: any) {\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n }\n\n return text.replace(new RegExp(escapeRegExp(find), 'g'), replace);\n }\n\n /**\n * replace all with params\n * param format: {number}\n * @param text\n * @param params\n * @returns {string}\n */\n static replaceWithParams(text: string, params: string[]) {\n _.map(params, (x, index) => {\n text = TqlUtilsService.replaceAll(text, `{${index}}`, x);\n });\n return text;\n }\n\n /**\n * check if is array, if is not, return [value]\n * @param value: string\n * @returns any\n */\n static toArray(value: any) {\n return _.isArray(value) ? value : !!value ? [value] : [];\n }\n\n /**\n * parse string to object\n * @param xmlString: string\n * @param callback: function\n * @returns Promise<any>\n */\n static parseXml(xmlString: any, callback = (rs: any) => {}): Promise<any> {\n return new Promise((resolve, reject) => {\n xml2js.parseString(xmlString, { explicitArray: false, mergeAttrs: true }, (error, result) => {\n if (error) {\n reject(error);\n throw new Error(error as any);\n } else {\n resolve(result);\n callback(result);\n }\n });\n });\n }\n\n /**\n * Clean management response\n * @param data: management response\n * @returns any\n */\n static transferData(data: any) {\n if (\n !!data['data'] &&\n !!data['data']['Find'] &&\n (data['data']['Find']['Status'] === 'Success' || data['data']['Status'] === 'Success') &&\n !!data['data']['Find']['Result']\n ) {\n return data['data']['Find']['Result'];\n }\n\n if (data['data'] && data['data']['Status'] === 'Success') {\n if (!!_.get(data, 'management.Save')) {\n return _.get(data, 'management.Save');\n }\n\n return data['data'];\n }\n\n return null;\n }\n\n /**\n * Check and convert management\n * @param data: Data response\n * @param modelType: Model type\n * @param key: If model type of management response other than model type (optional)\n * @returns Model[]\n */\n static convertData(data: any, modelType: any, key = null) {\n data = TqlUtilsService.transferData(data);\n\n return this.convert(data, modelType, key);\n }\n\n /**\n * Convert management to Model Type\n * ! { Model.name } is undefined in run build\n * @param data: Data response\n * @param modelType: Model type\n * @param key: If model type of management response other than model type (optional)\n * @returns Model[]\n */\n static convert(data: any, modelType: any, key: any) {\n if (!data || TqlUtilsService.isEmpty(data)) {\n return [];\n }\n\n return _.concat(data).map((d) => {\n const model = new modelType();\n key = key || modelType.name;\n\n // Convert response management to management Model\n // Convert key name to camelcase\n _.forEach(_.keys(d[key]), (k) => {\n return (model[`${k.charAt(0).toLowerCase()}${k.substring(1)}`] = d[key][k]);\n });\n\n return model;\n });\n }\n\n static jsonToModel(data: any, modelType: any) {\n return _.concat(data).map((d) => {\n const model = new modelType(d);\n\n // Convert response management to management Model\n // Convert key name to camelcase\n _.forEach(_.keys(d), (k) => {\n return (model[`${k.charAt(0).toLowerCase()}${k.substring(1)}`] = d[k]);\n });\n\n return model;\n });\n }\n\n static signData(data: any, model: any, keyRepresent: any, key: any) {\n const obj: any = {};\n const arr: any = this.convertData(data, model, key);\n\n obj[keyRepresent] = arr ? arr[0] : null;\n\n return obj;\n }\n\n /**\n * Return true if response is successful\n * @param data: management\n * @param path: string\n * @returns ({message: undefined, status: boolean} | boolean | {message: undefined, status: boolean})\n */\n static isSuccess(data: any, path: string = 'data'): boolean | any {\n const paths = ['Save', 'Create', 'DeleteAll', 'Update'];\n let pathResult = '';\n\n for (const p of paths) {\n if (!!_.get(data, `${path}.${p}`)) {\n pathResult = `${path}.${p}`;\n }\n }\n\n if (!!_.get(data, path) && !pathResult) {\n pathResult = path;\n }\n\n if (_.get(data, `${pathResult}.Status`) === 'Success' || _.get(data, `${pathResult}.status`) === 'Success') {\n return {\n status: _.get(data, `${pathResult}.Status`) === 'Success',\n message: _.get(data, `${pathResult}.Message`),\n };\n }\n\n return false;\n }\n\n /**\n * Return true if response is failed\n * @param data: management\n * @returns boolean\n */\n static isError(data: any) {\n if (data && data['Result'] && data['Result']['Status'] === 'Error') {\n return true;\n }\n\n return false;\n }\n\n /**\n * check if management is empty\n * @param data: string\n * @returns boolean\n */\n static isEmpty(data: any) {\n if (data['data'] && data['data']['Find'] && data['data']['Find']['Status'] === 'NoResult') {\n return true;\n }\n return false;\n }\n\n /**\n * get file extension\n * @param fileName: string\n * @returns any\n */\n static getFileExtension(fileName: string) {\n return _.last(_.split(fileName, '.'));\n }\n\n /**\n * set string to clipboard\n * @param str: string\n */\n static copyStringToClipboard(str: any) {\n // Create new element\n const el: any = document.createElement('textarea');\n // Set value (string to be copied)\n el.value = str;\n // Set non-editable to avoid focus and move outside of view\n el.setAttribute('readonly', '');\n document.body.appendChild(el);\n // Select text inside element\n el.select();\n // Copy text to clipboard\n document.execCommand('copy');\n // Remove temporary element\n document.body.removeChild(el);\n }\n\n /**\n * get enum key by its value\n * @param myEnum\n * @param enumValue\n * @param isCaseSensitive\n * @return {null}\n */\n static getEnumKeyByEnumValue(myEnum: any, enumValue: any, isCaseSensitive: boolean = true) {\n return (\n _.find(Object.keys(myEnum), (x) =>\n isCaseSensitive\n ? myEnum[x] === enumValue\n : myEnum[x].toString().toLowerCase() === enumValue.toString().toLowerCase(),\n ) || null\n );\n }\n\n /**\n * shorten number\n * @param value\n * @returns {any}\n */\n static abbreviateNumber(value: any) {\n let newValue = value;\n const suffixes = ['', 'kb', 'mb', 'b', 'tb'];\n let suffixNum = 0;\n\n while (newValue >= 1000 && suffixNum < _.size(suffixes)) {\n newValue = (newValue / 1000).toFixed(1);\n suffixNum++;\n // for (let precision = 2; precision >= 1; precision--) {\n // shortValue = parseFloat((suffixNum !== 0 ? value / Math.pow(1000, suffixNum) : value).toPrecision(precision));\n // const dotLessShortValue = (shortValue + '').replace(/[^a-zA-Z 0-9]+/g, '');\n // if (dotLessShortValue.length <= 2) {\n // break;\n // }\n // }\n // if (shortValue % 1 !== 0) {\n // shortValue = shortValue.toFixed(1);\n // }\n // newValue = shortValue + suffixes[suffixNum];\n }\n return newValue + suffixes[suffixNum];\n }\n\n /**\n * convert json to tree\n * @param json\n * @param key\n * @returns {any}\n */\n static jsonToTree(data: any): any {\n if (TqlUtilsService.isObject(data)) {\n const keys = Object.keys(data);\n return _.map(keys, (x) => {\n if (TqlUtilsService.isObject(data[x])) {\n return {\n title: x,\n children: TqlUtilsService.jsonToTree(data[x]),\n };\n }\n if (TqlUtilsService.isArray(data[x])) {\n return {\n title: x,\n children: _.flatten(TqlUtilsService.jsonToTree(data[x])),\n };\n } else {\n return {\n title: x,\n name: data[x],\n };\n }\n });\n } else if (TqlUtilsService.isArray(data)) {\n return _.map(data, (x) => TqlUtilsService.jsonToTree(x));\n } else {\n return {\n name: data,\n };\n }\n }\n\n /**\n * swap element in array\n * @param array\n * @param firstIndex\n * @param secondIndex\n */\n static swap(array: any[], firstIndex: number, secondIndex: number) {\n if (!!array[firstIndex] && !!array[secondIndex]) {\n const tmp = array[firstIndex];\n array[firstIndex] = array[secondIndex];\n array[secondIndex] = tmp;\n }\n }\n\n static isObject(data: any) {\n return data?.constructor === {}.constructor;\n }\n\n static isArray(data: any) {\n return data?.constructor === [].constructor;\n }\n\n static buildTreeFromChild(child: any) {\n let parent;\n while (child?.parent) {\n parent = child?.parent;\n parent.children = [child];\n child = parent;\n }\n return parent || child;\n }\n\n static traversalTree(list: any[], callback: Function, parent?: any) {\n _.map(list, (x) => {\n if (!!x) {\n x.parent = null;\n if (!!parent) {\n x.parent = parent;\n }\n if (x?.children?.length) {\n TqlUtilsService.traversalTree(x.children, callback, x);\n }\n callback(x, parent);\n }\n });\n }\n\n static traversalTreeReverse(node: any, callback: Function) {\n callback(node);\n if (!!node.parent) {\n TqlUtilsService.traversalTreeReverse(node.parent, callback);\n }\n }\n\n static findNodeOfTree(list: any[], condition: Function): any {\n let found: any = null;\n for (let i = 0; i < list.length; i++) {\n if (condition(list[i])) {\n found = list[i];\n break;\n } else if (list[i]?.children?.length) {\n found = TqlUtilsService.findNodeOfTree(list[i].children, condition);\n if (found) {\n break;\n }\n }\n }\n return found;\n }\n\n static filterNodeOfTree(list: any[], condition: Function): any {\n const foundList: any[] = [];\n this.traversalTree(list, (x: any) => {\n if (condition(x)) {\n foundList.push(x);\n }\n });\n return foundList;\n }\n\n /**\n * get parent route when using in guard\n * @param route\n */\n static getRedirectToRoute(route: ActivatedRouteSnapshot) {\n return route.pathFromRoot\n .filter((p) => p !== route && p.url !== null && p.url.length > 0)\n .reduce((arr, p) => arr.concat(p.url.map((u) => u.path)), new Array<string>());\n }\n\n static getResolvedUrl(route: ActivatedRouteSnapshot): string {\n return (\n '/' +\n route.pathFromRoot\n .filter((v) => v.url?.length)\n .map((v) => v.url.map((segment) => segment.toString()).join('/'))\n .join('/')\n );\n }\n\n static getUrlFromSegments(segments: any[] | undefined) {\n if (!!segments) {\n return encodeURI(\n '/' +\n _.join(\n _.map(segments, (x) => x?.path),\n '/',\n ),\n );\n }\n return '';\n }\n\n static clearLineBreakR(s: string) {\n return _.replace(s, /(\\r\\n|\\r)/g, '\\n');\n }\n\n static transferToCapitalText(s: string, exceptions: object = {}) {\n function capitalize(s: any) {\n if (typeof s !== 'string') {\n return '';\n }\n return s.charAt(0).toUpperCase() + s.slice(1);\n }\n\n s = capitalize(s);\n return !!exceptions[s] ? exceptions[s] : s.replace(/([A-Z])/g, ' $1').trim();\n }\n\n static parsePayloadWithObject(query: string, dataObject: any) {\n if (!Object.keys(dataObject).length) {\n return query;\n }\n Object.keys(dataObject).forEach((k) => {\n query = TqlUtilsService.replaceAll(query.toString(), `{${k}}`, dataObject[k]);\n });\n return query;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Route } from '@angular/router';\nimport { TqlUtilsService } from '../../services';\nimport { isUndefined } from 'lodash';\nimport { _ } from '../../constants';\n\nclass SiteMap {\n key: string;\n children: SiteMap[];\n private _lazyLoading: string;\n\n constructor(key: string, children: SiteMap[] = []) {\n this.key = key;\n this.children = children;\n }\n\n addChild(child: SiteMap) {\n this.children.push(child);\n }\n\n set lazyLoading(value: string) {\n this._lazyLoading = value;\n }\n\n get lazyLoading() {\n return this._lazyLoading;\n }\n\n checkLazyLoading(compareClassName: string, siteMaps: SiteMap[]) {\n let isMatch = false;\n\n if (this.lazyLoading) {\n // remove 'Routing' text then compare\n if (TqlUtilsService.replaceAll(compareClassName, 'Routing', '') === this.lazyLoading) {\n isMatch = true;\n this.children = siteMaps;\n }\n }\n\n return isMatch;\n }\n}\n\n@Injectable()\nexport class TqlSiteMapControllerService {\n static SiteMap = SiteMap;\n private _siteMap: Map<string, SiteMap> = new Map<string, SiteMap>();\n\n constructor() {}\n\n async addRoutes(routes: Route[], appName: string, routingClassName: string) {\n // console.log(appName);\n // console.log(routingClassName);\n // console.log(routes);\n const newRoute = {\n path: 'root',\n children: routes,\n };\n const newSiteMap = await this.traversalRoute(newRoute);\n const foundSiteMap = this._siteMap.get(appName);\n if (newSiteMap) {\n if (!!foundSiteMap) {\n // existed\n foundSiteMap.checkLazyLoading(routingClassName, newSiteMap.children);\n } else {\n // new\n this._siteMap.set(appName, newSiteMap);\n }\n }\n // console.log(this._siteMap.get(appName));\n // console.log('');\n\n // this.print(newSiteMap);\n }\n\n async traversalRoute(route: Route) {\n if (isUndefined(route.path)) {\n return;\n }\n const newSiteMap = new SiteMap(route.path);\n // children\n if (route.children) {\n route.children.map(async (r, index) => {\n const child = await this.traversalRoute(r);\n if (child) {\n newSiteMap.addChild(child);\n }\n });\n }\n\n // lazy loading\n if (route.loadChildren) {\n try {\n const fn = route?.loadChildren as Function;\n newSiteMap.lazyLoading = (await fn()).name;\n } catch (e) {}\n }\n return newSiteMap;\n }\n\n print(siteMap: SiteMap | undefined, index: number = 0) {\n if (!!siteMap) {\n index++;\n const preFix = _.map(_.range(index), () => '_').join('');\n console.log(preFix + siteMap.key);\n _.map(siteMap.children, (x) => {\n this.print(x, index);\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n@Injectable()\nexport class TqlToastControllerService {\n private X_BUTTON: string = 'Close';\n\n constructor(private _MatSnackBar: MatSnackBar) {}\n\n openSimple(message: any, duration: number = TqlToastControllerService.DURATION.SHORT) {\n this._MatSnackBar.open(message, this.X_BUTTON, { duration });\n }\n\n openSuccess(message: any, duration: number = TqlToastControllerService.DURATION.SHORT) {\n // TODO\n this._MatSnackBar.open(message, this.X_BUTTON, { duration });\n }\n\n openError(message: any, duration: number = TqlToastControllerService.DURATION.SHORT) {\n // TODO\n this._MatSnackBar.open(message, this.X_BUTTON, { duration });\n }\n\n openWarning(message: any, duration: number = TqlToastControllerService.DURATION.SHORT) {\n // TODO\n this._MatSnackBar.open(message, this.X_BUTTON, { duration });\n }\n}\n\nexport namespace TqlToastControllerService {\n export enum DURATION {\n SHORT = 3000,\n LONG = 20000,\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DefaultDialogComponent } from '../../models';\nimport { BehaviorSubject } from 'rxjs';\nimport * as _ from 'lodash';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\n\n@Injectable()\nexport class TqlDialogControllerService {\n _openingDialogs: MatDialogRef<any, any>[] = [];\n _Observable_Is_Opening_Dialogs: BehaviorSubject<DefaultDialogComponent.State> =\n new BehaviorSubject<DefaultDialogComponent.State>(DefaultDialogComponent.State.CLOSED);\n\n constructor(private _MatDialog: MatDialog) {}\n\n /**\n * add dialog to storage to check opening status\n * @param dialog\n * @private\n */\n private _addDialog(dialog: MatDialogRef<any, any>) {\n this._openingDialogs.push(dialog);\n this._Observable_Is_Opening_Dialogs.next(\n this._openingDialogs.length > 0\n ? DefaultDialogComponent.State.OPENING\n : DefaultDialogComponent.State.CLOSED,\n );\n }\n\n /**\n * remove dialog to storage to check opening status\n * @param dialog\n * @private\n */\n private _removeDialog(dialog: MatDialogRef<any, any>) {\n _.remove(this._openingDialogs, dialog);\n this._Observable_Is_Opening_Dialogs.next(\n this._openingDialogs.length > 0\n ? DefaultDialogComponent.State.OPENING\n : DefaultDialogComponent.State.CLOSED,\n );\n }\n\n open(classComp: typeof DefaultDialogComponent, data: object = {}, options: any = {}): Promise<any> {\n // default not allow close when click backdrop\n options['disableClose'] = true;\n\n // width\n options['width'] = classComp.DEFAULT_WIDTH;\n options['height'] = classComp.DEFAULT_HEIGHT;\n options['maxHeight'] = '80vh';\n\n const dialog = this._MatDialog.open(classComp, {\n ...options,\n data: data,\n autoFocus: false,\n });\n\n if (options['callback']) {\n options['callback'](dialog);\n }\n\n // tmp store dialog\n this._addDialog(dialog);\n\n return new Promise((resolve, reject) => {\n dialog.afterClosed().subscribe((result) => {\n // remove dialog from the tmp stored\n this._removeDialog(dialog);\n resolve(result);\n });\n });\n }\n\n confirm(text: string) {\n return confirm(text);\n }\n\n alert(text: string) {\n alert(text);\n }\n\n prompt(text: string) {\n return prompt(text);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TqlRouteControllerService {\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TqlTableControllerService {\n filterGroup: { [key: string]: any } = {};\n constructor() {}\n\n generateFilter(id: string) {\n if (!this.filterGroup[id]) {\n this.filterGroup[id] = {\n onUpdate$: new Subject<any>(),\n onUpdateUI$: new Subject<any>(),\n };\n }\n }\n\n getFilter(id: string) {\n return this.filterGroup[id];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n// import moment from 'moment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TqlLoggerService {\n log$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n\n constructor() {}\n\n /**\n * log result\n * @param data: any\n */\n _logResult(...data: any) {\n // console.log(`[${this.constructor.name}]`, 'result \\n', ...data);\n }\n\n /**\n * log error\n * @param error: any\n */\n _logError(...error: any) {\n console.error(`[${this.constructor.name}]`, 'error \\n', ...error);\n }\n\n /**\n * log message\n * @param message\n */\n log(message: any) {\n // console.log(`${moment().format()} `, message);\n this.log$.next(message + '');\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { TqlToastControllerService } from '../../controllers';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { throwError } from 'rxjs';\nimport { TqlLoggerService } from '../log/tql-logger.service';\n\n// import {LoadingBarService} from '@ngx-loading-bar/core';\n\n@Injectable()\nexport class TqlErrorHandlerService extends TqlLoggerService {\n _TqlToastControllerService: TqlToastControllerService;\n\n constructor(_Injector?: Injector) {\n super();\n if (_Injector) {\n this._TqlToastControllerService = _Injector.get(TqlToastControllerService);\n }\n }\n\n /**\n *\n * @param error\n * @returns {EErrorStatus.FORBIDDEN | null}\n */\n handleHttpError(error: HttpErrorResponse): any {\n // if forbidden or un-authentication then return forbidden\n if ([401, 403].includes(error.status)) {\n return TqlErrorHandlerService.EErrorStatus.FORBIDDEN;\n }\n\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred. Handle it accordingly.\n this._logError('An error occurred: ', error.error.message);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong,\n this._logError(`Backend returned code ${error.status}, `, `message was: ${error.message}`);\n }\n // return an observable with a user-facing error message\n throwError('Something bad happened; please try again later.');\n return null;\n }\n\n /**\n *\n * @param response\n * @returns {boolean}\n */\n handleSimpleResponse(response: any): boolean {\n const event: TqlErrorHandlerService.IStatusMessage = {\n status: false,\n message: 'Error',\n data: response['data'],\n };\n if (response['data']['Response']) {\n event.status = response['data']['Response']['Status'] === 'Success';\n event.message = response['data']['Response']['Message'];\n }\n // print message\n return this.handleStatusMessage(event);\n }\n\n /**\n *\n * @param response\n * @returns {boolean}\n */\n handleAPIResponseMessage(response: any): boolean {\n const event: TqlErrorHandlerService.IStatusMessage = {\n status: false,\n message: 'Error',\n data: response['data'],\n };\n if (response['data']['APIResponse']) {\n event.status = response['data']['APIResponse']['Status'] === 'Success';\n event.message = response['data']['APIResponse']['Message'];\n }\n // print message\n return this.handleStatusMessage(event);\n }\n\n /**\n *\n * @param response\n * @returns {boolean}\n */\n handleCreate(response: any): boolean {\n const event: TqlErrorHandlerService.IStatusMessage = {\n status: false,\n message: 'Error',\n data: response['data'],\n };\n if (response['data']['Create']) {\n event.status = response['data']['Create']['Status'] === 'Success';\n event.message = 'Creation is successful';\n } else {\n event.message = 'Creation occurs error';\n }\n // print message\n return this.handleStatusMessage(event);\n }\n\n /**\n *\n * @param response\n * @returns {boolean}\n */\n handleUpdate(response: any): boolean {\n const event: TqlErrorHandlerService.IStatusMessage = {\n status: false,\n message: 'Error',\n data: response['data'],\n };\n if (response['data']['Save']) {\n event.status = response['data']['Save']['Status'] === 'Success';\n event.message = 'Update is successful';\n } else if (response['data']['Update']) {\n event.status = response['data']['Update']['Status'] === 'Success';\n event.message = 'Update is successful';\n } else {\n event.message = 'Update occurs error';\n }\n // print message\n return this.handleStatusMessage(event);\n }\n\n /**\n * show message base on status\n * @param event\n * @return {boolean}\n */\n handleStatusMessage(event: TqlErrorHandlerService.IStatusMessage): boolean {\n if (event.status) {\n this._showSuccessMessage(event.message);\n } else {\n this._showErrorMessage(event.message);\n }\n return event.status;\n }\n\n /**\n *\n * @param message\n */\n _showSuccessMessage(message: any): void {\n this._TqlToastControllerService.openSuccess(message, TqlToastControllerService.DURATION.SHORT);\n }\n\n /**\n *\n * @param message\n */\n _showErrorMessage(message = 'Some error occur'): void {\n this._TqlToastControllerService.openError(message, TqlToastControllerService.DURATION.LONG);\n }\n}\n\nexport namespace TqlErrorHandlerService {\n export enum EErrorStatus {\n FORBIDDEN,\n SUCCESS = 'Success',\n ERROR = 'Error',\n }\n\n export interface IStatusMessage {\n status: boolean;\n message: string;\n data?: any;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError, tap } from 'rxjs/operators';\nimport { PayloadModel } from '../../models';\nimport { TqlErrorHandlerService } from '../error-handler/tql-error-handler.service';\nimport { _ } from '../../constants';\nimport { TqlUtilsService } from '../utils/tql-utils.service';\nimport { TqlLoggerService } from '../log/tql-logger.service';\n\n@Injectable()\nexport class TqlApiLibService extends TqlLoggerService {\n private _default_url: string;\n\n constructor(private _HttpClient: HttpClient, private _TqlErrorHandlerService: TqlErrorHandlerService) {\n super();\n }\n\n /**\n *\n * @param url\n */\n initialize(url: string) {\n this._default_url = url;\n }\n\n /**\n * reset all subscription\n */\n reset() {}\n\n /**\n * get url\n * @returns string\n */\n getUrl() {\n return `${this._default_url}`;\n }\n\n /**\n * Execute payload\n * @param payload: Payload\n * @param headers: Headers of query\n * @param url: URL custom (optional)\n * @returns {Promise<T | string>}\n * @param params\n * @param contentType\n */\n async execute(\n payload: PayloadModel,\n params: any[] = [],\n headers: any = {},\n url?: string,\n contentType: string = 'text/plain',\n ) {\n return await this.executeHttpClient(payload, params, headers, url, contentType)\n .toPromise()\n .then((data) => {\n // this.checkPermission(data);\n return data;\n });\n }\n\n /**\n * Execute http client\n * @param payload: Payload\n * @param headers: Headers of query\n * @param url: URL custom (optional)\n * @param params\n * @param contentType\n * @returns {Observable<T | string>}\n */\n executeHttpClient(\n payload: PayloadModel,\n params: any[] = [],\n headers: any = {},\n url?: string,\n contentType: string = 'text/plain',\n ) {\n return this._HttpClient\n .post(url || this.getUrl(), payload.buildPayload(params as any), {\n headers: new HttpHeaders({\n 'Content-Type': contentType,\n ...headers,\n }),\n responseType: 'text',\n })\n .pipe(\n tap(this._TqlErrorHandlerService._logResult, this._TqlErrorHandlerService._logError),\n // then handle the error\n catchError((err) => {\n return this._TqlErrorHandlerService.handleHttpError(err);\n }),\n );\n }\n\n async get(url: string, contentType: string = 'text/plain', headers: any = {}) {\n return await this._HttpClient\n .get(url, {\n headers: new HttpHeaders({\n 'Content-Type': contentType,\n ...headers,\n }),\n responseType: 'text',\n })\n .toPromise();\n }\n\n /**\n *\n * @param payload\n * @param params\n * @param headers\n * @param url\n * @param contentType\n * @return {Promise<{data: any[], raw: {}} | {data: any[], raw: {}}>}\n */\n async findRaw(\n payload: PayloadModel,\n params: any = [],\n headers = {},\n url?: string,\n contentType?: string,\n ): Promise<{ data: any[]; raw: {} }> {\n return await this.execute(payload, params, headers, url, contentType)\n .then(async (data: any) => {\n let json = {};\n try {\n json = {\n data: JSON.parse(data),\n };\n } catch (e) {\n json = TqlUtilsService.parseXml(`<data>${data}</data>`);\n }\n\n return json;\n })\n .then((json: {}) => {\n const pathRoot = 'data';\n let array: any[] = [];\n\n if (payload.objectPath !== null && payload.objectPath !== undefined) {\n array = _.get(json, `${pathRoot}${payload.objectPath && '.' + payload.objectPath}`) || [];\n\n array = TqlUtilsService.toArray(array);\n }\n\n array = payload.parse(array as any) as any[];\n\n return {\n raw: json,\n data: array,\n };\n });\n }\n\n /**\n * find management and convert to management model\n * @param payload: Payload\n * @param params: any\n * @param headers: any\n * @param url: string\n * @param contentType\n * @return {Promise<any[]>}\n */\n async find(payload: PayloadModel, params: any = [], headers = {}, url?: string, contentType?: string) {\n return await this.findRaw(payload, params, headers, url, contentType).then(({ raw, data }) => {\n return data;\n });\n }\n\n /**\n *\n * @param payload\n * @param params\n * @param headers\n * @param url\n * @param contentType\n * @returns {Promise<{}>}\n */\n async post(payload: PayloadModel, params: any = [], headers = {}, url?: string, contentType?: string) {\n return await this.findRaw(payload, params, headers, url, contentType).then(({ raw, data }) => {\n return raw;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, first, skipWhile } from 'rxjs';\nimport { TqlLoggerService } from '../log/tql-logger.service';\nimport _ from 'lodash';\nimport { WSPayloadModel } from '../../models/ws-payload.model';\n\n@Injectable()\nexport class TqlWsService extends TqlLoggerService {\n /**\n * status\n * @type {BehaviorSubject<TqlWsService.Status>}\n */\n status$: BehaviorSubject<TqlWsService.Status> = new BehaviorSubject<TqlWsService.Status>(new TqlWsService.Status());\n\n /**\n * message\n * @type {BehaviorSubject<string>}\n */\n message$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n\n socket: WebSocket | null;\n autoReconnect: boolean = false;\n url: string = '';\n\n pendingPayloads: WSPayloadModel[] = [];\n storedPayloads: WSPayloadModel[] = [];\n\n /**\n * events\n * @type {any}\n */\n events: any = {\n open: TqlWsService.ENUM_TYPES.EMPTY,\n close: TqlWsService.ENUM_TYPES.EMPTY,\n error: TqlWsService.ENUM_TYPES.EMPTY,\n message: TqlWsService.ENUM_TYPES.EMPTY,\n };\n\n /*options*/\n options: TqlWsService.IConnectionOptions = {\n max_reconnect_count: TqlWsService.maxDefaultReconnectCount,\n max_same_time_api: TqlWsService.maxDefaultSameTimeApi,\n };\n original_options: TqlWsService.IConnectionOptions;\n\n static maxDefaultReconnectCount: number = 10;\n static maxDefaultSameTimeApi: number = 100;\n\n constructor() {\n super();\n this.handleMessage();\n }\n\n /**\n * connect to url\n * @param url\n * @param autoReconnect\n * @param options\n */\n connect(\n url: string,\n autoReconnect: boolean = false,\n options: TqlWsService.IConnectionOptions = {\n max_reconnect_count: TqlWsService.maxDefaultReconnectCount,\n },\n ) {\n // options\n this.original_options = _.cloneDeep(options);\n\n if (_.isUndefined(this.original_options?.max_same_time_api)) {\n this.original_options.max_same_time_api = TqlWsService.maxDefaultSameTimeApi;\n }\n\n // make sure options not empty\n this.options = _.cloneDeep(this.original_options);\n\n // reset\n const $end = this.end(this.socket ? TqlWsService.ENUM_CODES.RESTART : TqlWsService.ENUM_CODES.START);\n\n $end.then(() => {\n //\n this.autoReconnect = autoReconnect;\n this.url = url;\n\n // set events\n this.setEvents();\n\n // start socket\n this.socket = new WebSocket(this.url);\n\n this.socket.addEventListener('open', this.events.open);\n this.socket.addEventListener('close', this.events.close);\n this.socket.addEventListener('error', this.events.error);\n this.socket.addEventListener('message', this.events.message);\n });\n }\n\n /**\n * reconnect\n */\n reconnect() {\n this.log(`Socket reconnect.`);\n\n if (this.url) {\n this.options.max_reconnect_count--;\n if (this.options.max_reconnect_count > 0) {\n this.connect(this.url, this.autoReconnect, this.options);\n } else {\n this.updateStatus(TqlWsService.ENUM_ACTIONS.DISCONNECT);\n }\n }\n }\n\n /**\n * end the connection\n * @param code\n * @returns {Promise<boolean>}\n */\n end(code: TqlWsService.ENUM_CODES = TqlWsService.ENUM_CODES.END): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n this.autoReconnect = false;\n\n // remove events & close socket\n if (this.socket) {\n this.socket.close(TqlWsService.CODES[code].code, TqlWsService.CODES[code].message);\n this.status$\n .pipe(\n skipWhile((x) => x.connected),\n first(),\n )\n .subscribe((rs) => {\n _.map(this.events, (x, k) => {\n if (x !== TqlWsService.ENUM_TYPES.EMPTY) {\n this.socket?.removeEventListener(k, x);\n }\n });\n // disconnect\n this.reset();\n\n // status\n this.updateStatus(TqlWsService.ENUM_ACTIONS.END);\n\n resolve(true);\n });\n } else {\n // disconnect\n this.reset();\n\n // status\n this.updateStatus(TqlWsService.ENUM_ACTIONS.END);\n\n resolve(false);\n }\n });\n }\n\n /**\n * reset all values\n */\n reset() {\n // reset\n this.socket = null;\n this.url = '';\n this.events = {\n open: TqlWsService.ENUM_TYPES.EMPTY,\n close: TqlWsService.ENUM_TYPES.EMPTY,\n error: TqlWsService.ENUM_TYPES.EMPTY,\n message: TqlWsService.ENUM_TYPES.EMPTY,\n };\n }\n\n /**\n * call api\n * @param payload\n * @param isWaiver - not wait for response\n * @returns {Promise<any>}\n */\n call(payload: WSPayloadModel, isWaiver: boolean = false): Promise<any> {\n if (this.socket) {\n if (!isWaiver) {\n // store if it is not waiver\n this.storedPayloads.push(payload);\n this.processPayload();\n } else {\n // send if it is waiver\n this.socket?.send(payload?.query);\n }\n }\n return payload.$promise;\n }\n\n processPayload() {\n while (this.storedPayloads?.length && this.pendingPayloads.length < (this.options?.max_same_time_api || 0)) {\n const payload = this.storedPayloads.shift();\n if (!!payload) {\n this.pendingPayloads.push(payload);\n this.socket?.send(payload?.query);\n }\n }\n }\n\n /**\n * set event after connect\n */\n private setEvents() {\n this.events.open = () => {\n this.log(`Socket connected.`);\n\n // status\n this.updateStatus(TqlWsService.ENUM_ACTIONS.CONNECT);\n\n // options\n this.options = _.cloneDeep(this.original_options);\n };\n this.events.close = () => {\n this.log(`Socket closed.`);\n\n // status\n this.updateStatus(TqlWsService.ENUM_ACTIONS.DISCONNECT);\n\n if (this.autoReconnect) {\n this.reconnect();\n } else {\n this.reset();\n }\n };\n\n this.events.error = (event) => {\n this.log(`Socket errored.`);\n this.log(event);\n\n // status\n this.updateStatus(TqlWsService.ENUM_ACTIONS.DISCONNECT);\n\n if (this.autoReconnect) {\n this.reconnect();\n } else {\n this.reset();\n }\n };\n\n this.events.message = (event) => {\n const data = event?.data;\n if (data) {\n this.log(`Socket has message come.`);\n this.log(data);\n this.message$.next(data);\n }\n };\n }\n\n /**\n * handle coming message\n */\n private handleMessage() {\n this.message$\n // .pipe(concatMap((data) => from(this.resolveMessage(data))))\n .subscribe((data) => {\n // console.log(this.pendingPayloads);\n _.forEach(this.pendingPayloads, (x) => {\n if (x.resolve(data)) {\n _.remove(this.pendingPayloads, x);\n this.processPayload();\n return false;\n }\n return true;\n });\n this.log('|||||||||||| Pending Payloads: ' + this.pendingPayloads?.length);\n if (this.pendingPayloads?.length <= 10) {\n this.log(this.pendingPayloads);\n }\n });\n }\n\n /**\n * update status$\n * @param action\n */\n updateStatus(action: TqlWsService.ENUM_ACTIONS) {\n const status = this.status$.value;\n\n switch (action) {\n case TqlWsService.ENUM_ACTIONS.CONNECT:\n status.setConnect();\n break;\n case TqlWsService.ENUM_ACTIONS.DISCONNECT:\n status.setDisconnect();\n break;\n case TqlWsService.ENUM_ACTIONS.END:\n status.setEnd();\n break;\n }\n\n status.setReconnectCount(this.options.max_reconnect_count);\n this.status$.next(status);\n }\n}\n\nexport namespace TqlWsService {\n export enum ENUM_TYPES {\n EMPTY,\n }\n\n export enum ENUM_CODES {\n START,\n END,\n RESTART,\n }\n\n export enum ENUM_ACTIONS {\n CONNECT,\n DISCONNECT,\n END,\n }\n\n export interface IConnectionOptions {\n max_reconnect_count: number;\n max_same_time_api?: number;\n }\n\n /*The value must be an integer: either 1000, or else a custom code of your choosing in the range 3000-4999.\n If you specify a code value, you should also specify a reason value.*/\n export const CODES = {\n [ENUM_CODES.START]: { code: 300, message: 'Socket started first time' },\n [ENUM_CODES.END]: { code: 3001, message: 'Socket is ended' },\n [ENUM_CODES.RESTART]: { code: 3002, message: 'Socket is restart' },\n };\n\n export class Status {\n connectStartTime: number = 0;\n connectEndTime: number = 0;\n\n private _connected: boolean = false;\n get connected(): boolean {\n return this._connected;\n }\n\n private _reconnectCount: number;\n get reconnectCount(): number {\n return this._reconnectCount;\n }\n\n private _end: boolean = false;\n get end(): boolean {\n return this._end;\n }\n\n constructor() {}\n\n setDisconnect() {\n this._connected = false;\n this.connectEndTime = new Date().getTime();\n }\n\n setConnect() {\n this._connected = true;\n this.connectStartTime = new Date().getTime();\n this.connectEndTime = 0;\n }\n\n setEnd() {\n this._connected = false;\n this._end = true;\n this.connectEndTime = new Date().getTime();\n }\n\n setReconnectCount(count: number) {\n this._reconnectCount = count;\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\nimport {\n MissingTranslationHandler,\n MissingTranslationHandlerParams,\n TranslateLoader,\n TranslateService,\n} from '@ngx-translate/core';\nimport _ from 'lodash';\nimport { BehaviorSubject, catchError, first, map, Observable, of, Subject } from 'rxjs';\nimport {\n KEY_LANGUAGES_LOCAL_STORAGE,\n LANGUAGES,\n LANGUAGE_DEFAULT,\n TRANSLATE_KEY,\n TYPE_LANGUAGES_HIGH_CHART,\n} from '../../constants';\n\n@Injectable()\nexport class TqlTranslateService {\n constructor(private http: HttpClient, private injector: Injector) {}\n\n public translationDataLoaded$ = new BehaviorSubject<any>(null);\n public translationData: {\n key: string;\n data: any;\n }[] = [];\n\n loaded$(): Subject<any> {\n this.translationData.push(this.translationDataLoaded$.value);\n return this.translationDataLoaded$;\n }\n\n getDataTranslate(keyLang: string): Observable<any> {\n const itemFind = this.translationData.find((x) => x.key === keyLang);\n if (itemFind) {\n return new Observable((x) => {\n x.next(itemFind.data);\n x.complete();\n });\n }\n return new Observable((x) => {\n const path = `config/language/${keyLang}.json`;\n try {\n this.http\n .get(path)\n .pipe(\n catchError((res) => {\n // console.error('Something went wrong for the following translation file:', path);\n // console.error(res.message);\n return of({});\n }),\n )\n .subscribe((rs) => {\n x.next(rs);\n x.complete();\n const data = _.assign({ ...TqlTranslateService.getJsonLocalStorage(keyLang) }, rs);\n this.translationDataLoaded$.next(data);\n this.translationData.push({\n key: keyLang,\n data: data,\n });\n });\n } catch (e) {}\n });\n }\n\n translateGG(text: string): Observable<string> {\n const obj = new GoogleObj(text);\n switch (this.getLanguage()) {\n case LANGUAGES.PT: {\n obj.target = 'pt';\n break;\n }\n case LANGUAGES.EN: {\n return new Observable<string>((x) => {\n this.saveTextTranslate(text, text);\n x.next(text);\n x.complete();\n });\n }\n }\n\n return this.http\n .post('https://translation.googleapis.com/language/translate/v2?key=' + TRANSLATE_KEY.key, obj)\n .pipe(\n map((x: any) => {\n if (x?.['data']?.translations?.[0]?.translatedText) {\n this.saveTextTranslate(x?.['data']?.translations?.[0]?.translatedText, text);\n }\n return x?.['data']?.translations?.[0]?.translatedText ?? text;\n }),\n );\n }\n\n saveTextTranslate(rs: string, text: string): void {\n this.translationData[0].data as { [k: string]: any };\n this.translationData[0].data[text] = rs;\n const object: { [key: string]: string } = {};\n object[text] = rs;\n TqlTranslateService.updateJsonDataLocalStorage(object);\n }\n\n static getDataLocalStorage(): any {\n if (typeof window === 'undefined' || !window?.localStorage?.getItem(KEY_LANGUAGES_LOCAL_STORAGE)) {\n return {};\n }\n try {\n const data = JSON.parse(window?.localStorage?.getItem(KEY_LANGUAGES_LOCAL_STORAGE) ?? '{}');\n return data ?? {};\n } catch (error) {\n return {};\n }\n }\n\n getLanguage(): string {\n return TqlTranslateService.getLanguage();\n }\n\n static getLanguage(): string {\n if (this.getDataLocalStorage()?.key) {\n return this.getDataLocalStorage()?.key;\n }\n TqlTranslateService.updateKeyLanguage(LANGUAGE_DEFAULT);\n return LANGUAGE_DEFAULT;\n }\n\n static getJsonLocalStorage(keyLang?: string): any {\n return this.getDataLocalStorage()?.[keyLang ?? this.getLanguage()] ?? {};\n }\n\n static updateKeyLanguage(keyLang: string): void {\n const data: ITranslateDataLocalStorage = this.getDataLocalStorage();\n data['key'] = keyLang;\n if (typeof window !== 'undefined')\n window?.localStorage.setItem(KEY_LANGUAGES_LOCAL_STORAGE, JSON.stringify(data));\n }\n\n static updateJsonDataLocalStorage(dataTranslate: any): void {\n const keyLang: string = TqlTranslateService.getLanguage();\n const data = this.getDataLocalStorage();\n data[keyLang] = _.assign({ ...TqlTranslateService.getJsonLocalStorage(keyLang) }, dataTranslate);\n if (typeof window !== 'undefined')\n window?.localStorage.setItem(KEY_LANGUAGES_LOCAL_STORAGE, JSON.stringify(data));\n }\n\n async instant(data: string) {\n const translate = this.injector.get(TranslateService);\n return await translate.stream(data).pipe(first()).toPromise();\n }\n\n static getTranslateHighCharts(type: string): any {\n const langue = this.getLanguage();\n switch (type) {\n case TYPE_LANGUAGES_HIGH_CHART.shortMonths: {\n switch (langue) {\n case LANGUAGES.PT: {\n return [\n 'Jan',\n 'Fev',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Set',\n 'Out',\n 'Nov',\n 'Dez',\n ];\n }\n default: {\n return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n }\n }\n }\n case TYPE_LANGUAGES_HIGH_CHART.months: {\n switch (langue) {\n case LANGUAGES.PT: {\n return [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n ];\n }\n default: {\n return [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n }\n }\n }\n case TYPE_LANGUAGES_HIGH_CHART.weekdays: {\n switch (langue) {\n case LANGUAGES.PT: {\n return [\n 'Domingo',\n 'Segunda-feira',\n 'Terça-feira',\n 'Quarta-feira',\n 'Quinta-feira',\n 'Sexta-feira',\n 'Sábado',\n ];\n }\n default: {\n return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n }\n }\n }\n }\n }\n}\n\nexport namespace TqlTranslateService {\n export class MyMissingTranslationHandler implements MissingTranslationHandler {\n constructor(private _TqlTranslateService: TqlTranslateService) {}\n\n handle(params: MissingTranslationHandlerParams) {\n const itemFind = this._TqlTranslateService.translationData[0]?.data?.[params?.key];\n if (itemFind) {\n return itemFind;\n }\n return this._TqlTranslateService.translateGG(params?.key);\n }\n }\n\n export function HandleMyMissing(_TqlTranslateService: TqlTranslateService) {\n return new MyMissingTranslationHandler(_TqlTranslateService);\n }\n\n // AoT requires an exported function for factories\n export function HttpLoaderFactory(_TqlTranslateService: TqlTranslateService) {\n return new MultiTranslateHttpLoader(_TqlTranslateService);\n }\n\n export class MultiTranslateHttpLoader implements TranslateLoader {\n constructor(private _TqlTranslateService: TqlTranslateService) {}\n\n public getTranslation(): Observable<any> {\n return new Observable((x) => {\n x.next(this._TqlTranslateService.translationData[0].data);\n x.complete();\n });\n }\n }\n\n export function initializeTranslations(_TqlTranslateService: TqlTranslateService): () => Promise<any> {\n return async (): Promise<any> => {\n return _TqlTranslateService.getDataTranslate(_TqlTranslateService.getLanguage()).toPromise();\n };\n }\n\n export const languageHighChart = {\n lang: {\n thousandsSep: ',',\n shortMonths: TqlTranslateService.getTranslateHighCharts('shortMonths'),\n months: TqlTranslateService.getTranslateHighCharts('months'),\n weekdays: TqlTranslateService.getTranslateHighCharts('weekdays'),\n },\n };\n}\n\nexport class GoogleObj {\n q: string;\n readonly source: string = 'en';\n target: string = 'pt';\n readonly format: string = 'text';\n\n constructor(q: string) {\n this.q = q;\n }\n}\n\nexport interface ITranslateDataLocalStorage {\n key: string;\n 'en-US': any;\n 'pt-BR': any;\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { TQL_LIBRARY_CONFIG } from '../../constants';\nimport * as _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TqlGlobalConfigService {\n private config: any = { spinTemplate: null };\n\n constructor(@Optional() @Inject(TQL_LIBRARY_CONFIG) private externalConfig: any) {\n console.log(externalConfig);\n _.assign(this.config, externalConfig);\n }\n\n getConfig() {\n return this.config;\n }\n}\n","import { IDefaultModelConstructor } from './default/default-model.interface';\nimport * as _ from 'lodash';\nimport { TqlUtilsService } from '../services';\n\nexport class PayloadModel {\n query: string;\n objectName: string | undefined;\n objectPath: string | undefined;\n objectClass: IDefaultModelConstructor | undefined;\n\n /**\n *\n * @param query\n * @param objectName\n * @param objectClass\n * @param objectPath\n */\n constructor(query: string, objectName?: string, objectPath?: string, objectClass?: IDefaultModelConstructor) {\n this.query = query;\n this.objectName = objectName;\n this.objectPath = objectPath;\n this.objectClass = objectClass;\n }\n\n /**\n *\n * @param params\n * @returns {string}\n */\n buildPayload(params: any[] = []): string {\n let data = this.query.toString();\n\n if (!params || !Object.keys(params).length) {\n return data;\n }\n\n return _.reduce(\n params,\n (result, v, index) => TqlUtilsService.replaceAll(result.toString(), `{${index}}`, v),\n data,\n );\n }\n\n /**\n *\n * @param dataObject\n * @returns {string}\n */\n buildPayloadWithObject(dataObject: any) {\n if (!Object.keys(dataObject).length) {\n return this.query;\n }\n return _.reduce(\n Object.keys(dataObject),\n (result, v, k) => TqlUtilsService.replaceAll(result.toString(), `{${k}}`, dataObject[k]),\n this.query,\n );\n }\n\n /**\n *\n * @param array\n * @returns {any[]}\n */\n parse(array = []) {\n if (_.isUndefined(this.objectClass) || _.isUndefined(this.objectName)) {\n return array;\n }\n\n const data: any[] = [];\n\n try {\n for (let i = 0; i < array.length; i++) {\n if (_.get(array, this.objectName ? [i, this.objectName] : [i])) {\n data.push(new this.objectClass(_.get(array, this.objectName ? [i, this.objectName] : [i])));\n }\n }\n } catch (e) {\n console.error(e);\n }\n return data;\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\nimport { TqlUtilsService } from '../services';\nimport _ from 'lodash';\n\nexport class WSPayloadModel {\n id: string;\n query: string;\n $promise: Promise<any>;\n promiseResolve: Function;\n\n constructor(query: string, params: string[] = [], id?: string) {\n this.id = id || uuidv4();\n this.query = TqlUtilsService.replaceAll(query, '{mid}', this.id);\n _.map(params, (x, k) => {\n this.query = TqlUtilsService.replaceAll(this.query, `{${k}}`, x);\n });\n this.$promise = new Promise<any>((resolve) => {\n this.promiseResolve = resolve;\n });\n }\n\n /**\n *\n * @param data\n * @returns {boolean}\n */\n resolve(data: any): boolean {\n if (data.includes(this.id)) {\n data = TqlUtilsService.replaceAll(data, '---Self---', `\"\"`);\n let json: any = data;\n try {\n json = JSON.parse(data);\n } catch (e) {}\n this.promiseResolve(json);\n return true;\n }\n return false;\n }\n}\n","/* default */\nexport * from './default/default-model.interface';\nexport * from './default/default-model';\nexport * from './default/default-component';\nexport * from './default/default-directive';\nexport * from './default/default-dialog-component';\nexport * from './default/dynamic-model';\nexport * from './default/default-map-component';\n\n/*payload*/\nexport * from './payload.model';\nexport * from './ws-payload.model';\n","import {Injectable} from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {timeout} from 'rxjs/operators';\n\n@Injectable()\nexport class TqlApiInterceptor implements HttpInterceptor {\n\n constructor() {\n }\n\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n\n // timeout\n let $timeout = 300000;\n if (request.headers.has(TqlApiInterceptor.HEADER_KEYS.TIMEOUT)) {\n $timeout = parseInt(request.headers.get(TqlApiInterceptor.HEADER_KEYS.TIMEOUT) as string);\n request = request.clone({\n headers: request.headers.delete(TqlApiInterceptor.HEADER_KEYS.TIMEOUT)\n });\n }\n\n // check token\n if (request.headers.has(TqlApiInterceptor.HEADER_KEYS.NO_TOKEN) || request.headers.has(TqlApiInterceptor.HEADER_KEYS.REQUIRE_TOKEN)) {\n request = request.clone({\n headers: request.headers.delete(TqlApiInterceptor.HEADER_KEYS.NO_TOKEN).delete(TqlApiInterceptor.HEADER_KEYS.REQUIRE_TOKEN)\n });\n // check token\n }\n\n // console.log(request);\n return next.handle(request)\n .pipe(\n timeout($timeout)\n );\n }\n}\n\nexport namespace TqlApiInterceptor {\n export enum HEADER_KEYS {\n TIMEOUT = 'timeout',\n NO_TOKEN = 'noToken',\n REQUIRE_TOKEN = 'requiteToken',\n REQUIRE_USER_TOKEN = 'requiteUserToken',\n }\n}\n","// export * from './api/tql-api-lib.service';\nexport * from './tql-api.interceptor';\n","import { LOCALE_ID, NgModule, provideAppInitializer, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n TqlDialogControllerService,\n TqlRouteControllerService,\n TqlSiteMapControllerService,\n TqlToastControllerService,\n} from './controllers';\nimport {\n TqlApiLibService,\n TqlErrorHandlerService,\n TqlLoggerService,\n TqlTranslateService,\n TqlUtilsService,\n TqlWsService,\n} from './services';\nimport { MissingTranslationHandler, TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TQL_LIBRARY_CONFIG } from './constants';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: TqlTranslateService.HttpLoaderFactory,\n deps: [TqlTranslateService],\n },\n missingTranslationHandler: {\n provide: MissingTranslationHandler,\n useFactory: TqlTranslateService.HandleMyMissing,\n deps: [TqlTranslateService],\n },\n useDefaultLang: false,\n }),\n ],\n providers: [\n TqlSiteMapControllerService,\n TqlToastControllerService,\n TqlDialogControllerService,\n TqlRouteControllerService,\n TqlApiLibService,\n TqlErrorHandlerService,\n TqlLoggerService,\n TqlUtilsService,\n TqlWsService,\n TqlTranslateService,\n provideAppInitializer(() => {\n const translateService = inject(TqlTranslateService);\n return TqlTranslateService.initializeTranslations(translateService)();\n }),\n {\n provide: LOCALE_ID,\n deps: [TqlTranslateService],\n useFactory: (_TqlTranslateService: TqlTranslateService) => _TqlTranslateService.getLanguage(),\n },\n { provide: TQL_LIBRARY_CONFIG, useValue: {} },\n ],\n exports: [TranslateModule],\n})\nexport class TqlServiceModule {}\n","/*\n * Public API Surface of tql-service\n */\n\n// controllers\nexport * from './lib/constants';\nexport * from './lib/models';\nexport * from './lib/controllers';\nexport * from './lib/services';\nexport * from './lib/interceptor';\nexport * from './lib/tql-service.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.TqlErrorHandlerService","_","catchError","uuidv4"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="x-tql-service" />
5
+ export * from './public-api';
@@ -0,0 +1,5 @@
1
+ export declare enum ErrorStatusEnum {
2
+ FORBIDDEN = 0,
3
+ SUCCESS = "Success",
4
+ ERROR = "Error"
5
+ }
@@ -0,0 +1,5 @@
1
+ export * from './mics.constant';
2
+ export * from './error-status.enum';
3
+ export * from './key.constant';
4
+ export * from './map.constant';
5
+ export * from './language.constant';
@@ -0,0 +1,12 @@
1
+ export declare const KEY_CONSTANT: {
2
+ ALL: string;
3
+ LOCAL_STORAGE: {
4
+ USER: string;
5
+ EXPIRE: string;
6
+ SESSION_TOKEN: string;
7
+ USER_TOKEN: string;
8
+ };
9
+ SYS_ID: string;
10
+ STUDIO_KEY: string;
11
+ SESSION_KEY: string;
12
+ };
@@ -0,0 +1,14 @@
1
+ export declare const LANGUAGES: {
2
+ EN: string;
3
+ PT: string;
4
+ };
5
+ export declare const LANGUAGE_DEFAULT: string;
6
+ export declare const KEY_LANGUAGES_LOCAL_STORAGE = "TQL_language";
7
+ export declare const TYPE_LANGUAGES_HIGH_CHART: {
8
+ shortMonths: string;
9
+ months: string;
10
+ weekdays: string;
11
+ };
12
+ export declare const TRANSLATE_KEY: {
13
+ key: string;
14
+ };
@@ -0,0 +1,25 @@
1
+ export declare const MAP_STYLES: ({
2
+ featureType: string;
3
+ elementType: string;
4
+ stylers: {
5
+ visibility: string;
6
+ }[];
7
+ } | {
8
+ featureType: string;
9
+ stylers: {
10
+ visibility: string;
11
+ }[];
12
+ elementType?: undefined;
13
+ } | {
14
+ featureType: string;
15
+ elementType: string;
16
+ stylers: {
17
+ color: string;
18
+ }[];
19
+ } | {
20
+ featureType: string;
21
+ elementType: string;
22
+ stylers: {
23
+ weight: number;
24
+ }[];
25
+ })[];
@@ -0,0 +1,9 @@
1
+ import * as _ from 'lodash';
2
+ import * as xml2js from 'xml2js';
3
+ import { InjectionToken } from '@angular/core';
4
+ export { _, xml2js };
5
+ export declare const DATA_TYPE: {
6
+ DATE: string;
7
+ YES_NO: string;
8
+ };
9
+ export declare const TQL_LIBRARY_CONFIG: InjectionToken<unknown>;
@@ -0,0 +1,28 @@
1
+ import { DefaultDialogComponent } from '../../models';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { MatDialog, MatDialogRef } from '@angular/material/dialog';
4
+ import * as i0 from "@angular/core";
5
+ export declare class TqlDialogControllerService {
6
+ private _MatDialog;
7
+ _openingDialogs: MatDialogRef<any, any>[];
8
+ _Observable_Is_Opening_Dialogs: BehaviorSubject<DefaultDialogComponent.State>;
9
+ constructor(_MatDialog: MatDialog);
10
+ /**
11
+ * add dialog to storage to check opening status
12
+ * @param dialog
13
+ * @private
14
+ */
15
+ private _addDialog;
16
+ /**
17
+ * remove dialog to storage to check opening status
18
+ * @param dialog
19
+ * @private
20
+ */
21
+ private _removeDialog;
22
+ open(classComp: typeof DefaultDialogComponent, data?: object, options?: any): Promise<any>;
23
+ confirm(text: string): boolean;
24
+ alert(text: string): void;
25
+ prompt(text: string): string | null;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<TqlDialogControllerService, never>;
27
+ static ɵprov: i0.ɵɵInjectableDeclaration<TqlDialogControllerService>;
28
+ }
@@ -0,0 +1,5 @@
1
+ export * from './site-map/tql-site-map-controller.service';
2
+ export * from './toast/tql-toast-controller.service';
3
+ export * from './dialog/tql-dialog-controller.service';
4
+ export * from './route/tql-route-controller.service';
5
+ export * from './table/tql-table-controller.service';
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TqlRouteControllerService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TqlRouteControllerService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<TqlRouteControllerService>;
6
+ }
@@ -0,0 +1,23 @@
1
+ import { Route } from '@angular/router';
2
+ import * as i0 from "@angular/core";
3
+ declare class SiteMap {
4
+ key: string;
5
+ children: SiteMap[];
6
+ private _lazyLoading;
7
+ constructor(key: string, children?: SiteMap[]);
8
+ addChild(child: SiteMap): void;
9
+ set lazyLoading(value: string);
10
+ get lazyLoading(): string;
11
+ checkLazyLoading(compareClassName: string, siteMaps: SiteMap[]): boolean;
12
+ }
13
+ export declare class TqlSiteMapControllerService {
14
+ static SiteMap: typeof SiteMap;
15
+ private _siteMap;
16
+ constructor();
17
+ addRoutes(routes: Route[], appName: string, routingClassName: string): Promise<void>;
18
+ traversalRoute(route: Route): Promise<SiteMap | undefined>;
19
+ print(siteMap: SiteMap | undefined, index?: number): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<TqlSiteMapControllerService, never>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<TqlSiteMapControllerService>;
22
+ }
23
+ export {};
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TqlTableControllerService {
3
+ filterGroup: {
4
+ [key: string]: any;
5
+ };
6
+ constructor();
7
+ generateFilter(id: string): void;
8
+ getFilter(id: string): any;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<TqlTableControllerService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<TqlTableControllerService>;
11
+ }
@@ -0,0 +1,19 @@
1
+ import { MatSnackBar } from '@angular/material/snack-bar';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TqlToastControllerService {
4
+ private _MatSnackBar;
5
+ private X_BUTTON;
6
+ constructor(_MatSnackBar: MatSnackBar);
7
+ openSimple(message: any, duration?: number): void;
8
+ openSuccess(message: any, duration?: number): void;
9
+ openError(message: any, duration?: number): void;
10
+ openWarning(message: any, duration?: number): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<TqlToastControllerService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<TqlToastControllerService>;
13
+ }
14
+ export declare namespace TqlToastControllerService {
15
+ enum DURATION {
16
+ SHORT = 3000,
17
+ LONG = 20000
18
+ }
19
+ }
@@ -0,0 +1 @@
1
+ export * from './tql-api.interceptor';
@@ -0,0 +1,17 @@
1
+ import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TqlApiInterceptor implements HttpInterceptor {
5
+ constructor();
6
+ intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<TqlApiInterceptor, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<TqlApiInterceptor>;
9
+ }
10
+ export declare namespace TqlApiInterceptor {
11
+ enum HEADER_KEYS {
12
+ TIMEOUT = "timeout",
13
+ NO_TOKEN = "noToken",
14
+ REQUIRE_TOKEN = "requiteToken",
15
+ REQUIRE_USER_TOKEN = "requiteUserToken"
16
+ }
17
+ }
@@ -0,0 +1,55 @@
1
+ import { EventEmitter, Injector, OnDestroy } from '@angular/core';
2
+ import { Subscription } from 'rxjs';
3
+ import { LoadingBarService } from '@ngx-loading-bar/core';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DefaultComponent implements OnDestroy {
6
+ /**
7
+ * emit event trigger when all _promises called
8
+ * @type {EventEmitter<any>}
9
+ */
10
+ onPromise: EventEmitter<any>;
11
+ _promises: Promise<any>[];
12
+ /**
13
+ * store all subscription of this component
14
+ * @type {Subscription}
15
+ * @private
16
+ */
17
+ _subscriptionList: Subscription;
18
+ _isLoading: boolean;
19
+ _LoadingBarService: LoadingBarService;
20
+ /**
21
+ * pass injector into here if you want to check loading work
22
+ * ex: in child class
23
+ * Constructor(private _Injector: Injector) {
24
+ * super(_Injector)
25
+ * }
26
+ */
27
+ constructor(_Injector?: Injector);
28
+ /**
29
+ * IMPORTANT
30
+ * when destroy, unsubscribe all
31
+ */
32
+ ngOnDestroy(): void;
33
+ /**
34
+ * unsubscribe all subscription which add into the component
35
+ * it is important to prevent subscription still exist when component is destroyed
36
+ */
37
+ unsubscribeAll(): void;
38
+ /**
39
+ * add subscriptions to component storage
40
+ * @param subscriptions
41
+ */
42
+ addSubscribes(...subscriptions: any): void;
43
+ /**
44
+ * add promises into an array
45
+ * @param promises
46
+ */
47
+ addPromises(...promises: Promise<any>[]): void;
48
+ /**
49
+ * get list of current stored promises
50
+ * @returns {Promise<any>[]}
51
+ */
52
+ get promises(): Promise<any>[];
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<DefaultComponent, never>;
54
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DefaultComponent, never, never, {}, { "onPromise": "onPromise"; }, never, never, true, never>;
55
+ }