ngx-universal-zone 0.0.1

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 (44) hide show
  1. package/database/db-base.service.d.ts +37 -0
  2. package/database/db-setting-constant.d.ts +7 -0
  3. package/database/db-sql.service.d.ts +48 -0
  4. package/database/db-web.service.d.ts +50 -0
  5. package/database/db.module.d.ts +6 -0
  6. package/database/index.d.ts +6 -0
  7. package/database/schema.service.d.ts +25 -0
  8. package/fesm2022/ngx-universal-zone-database.mjs +608 -0
  9. package/fesm2022/ngx-universal-zone-database.mjs.map +1 -0
  10. package/fesm2022/ngx-universal-zone-pipes.mjs +87 -0
  11. package/fesm2022/ngx-universal-zone-pipes.mjs.map +1 -0
  12. package/fesm2022/ngx-universal-zone-pub-sub.mjs +147 -0
  13. package/fesm2022/ngx-universal-zone-pub-sub.mjs.map +1 -0
  14. package/fesm2022/ngx-universal-zone-ui.mjs +218 -0
  15. package/fesm2022/ngx-universal-zone-ui.mjs.map +1 -0
  16. package/fesm2022/ngx-universal-zone.mjs +966 -0
  17. package/fesm2022/ngx-universal-zone.mjs.map +1 -0
  18. package/index.d.ts +5 -0
  19. package/package.json +40 -0
  20. package/pipes/formateDate.pipe.d.ts +8 -0
  21. package/pipes/index.d.ts +2 -0
  22. package/pipes/safe.pipe.d.ts +18 -0
  23. package/pub-sub/i-hash.d.ts +10 -0
  24. package/pub-sub/index.d.ts +2 -0
  25. package/pub-sub/ngx-pub-sub.module.d.ts +7 -0
  26. package/pub-sub/ngx-pub-sub.service.d.ts +27 -0
  27. package/pub-sub/subject-type.enum.d.ts +5 -0
  28. package/public-api.d.ts +6 -0
  29. package/shared/app-injector.d.ts +6 -0
  30. package/shared/app-setting.service.d.ts +18 -0
  31. package/shared/flag-based-preloading-strategy.d.ts +12 -0
  32. package/shared/helper.service.d.ts +15 -0
  33. package/shared/message-bus/index.d.ts +4 -0
  34. package/shared/message-bus/message-bus.d.ts +15 -0
  35. package/shared/message-bus/message-bus.testing.d.ts +9 -0
  36. package/shared/message-bus/messages.d.ts +2 -0
  37. package/shared/message-bus/models.d.ts +39 -0
  38. package/shared/universal-zone.module.d.ts +2 -0
  39. package/ui/directives/directives.module.d.ts +9 -0
  40. package/ui/directives/long-ress.directive.d.ts +21 -0
  41. package/ui/directives/only-number.directive.d.ts +7 -0
  42. package/ui/index.d.ts +5 -0
  43. package/ui/no-data/no-data.component.d.ts +13 -0
  44. package/ui/no-data/no-data.module.d.ts +8 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-universal-zone-database.mjs","sources":["../../../projects/ngx-universal-zone/database/db-base.service.ts","../../../projects/ngx-universal-zone/database/db-web.service.ts","../../../projects/ngx-universal-zone/database/schema.service.ts","../../../projects/ngx-universal-zone/database/db-setting-constant.ts","../../../projects/ngx-universal-zone/database/db-sql.service.ts","../../../projects/ngx-universal-zone/database/db.module.ts","../../../projects/ngx-universal-zone/database/ngx-universal-zone-database.ts"],"sourcesContent":["// @ts-ignore\n\nimport { Observable } from \"rxjs\";\n\nimport { ITableOptions } from \"./schema.service\";\nimport { DbFilter } from \"./db-web.service\";\n\nexport class DbServiceConfig {\n dbType!: DbServiceType;\n dbName!: string;\n schema!: ITableOptions[];\n}\n\nexport enum DbServiceType {\n IndexDd,\n Sqlite\n}\n\nexport abstract class DbService {\n dbInitialized$ = new Observable<any>();\n\n get Db(): any {\n return;\n }\n\n putLocal(store, data): Promise<{ rowsAffected; insertId }> {\n // @ts-ignore\n\n return;\n }\n\n putLocalRx(store, data): Observable<any> {\n // @ts-ignore\n return;\n }\n\n get<T>(store: string, key: any): Promise<T> {\n // @ts-ignore\n return;\n }\n getRx<T>(store: string, key: any): Observable<T> { \n // @ts-ignore\n return; \n }\n\n getAll<T>(store: string, opt?: DbFilter): Promise<T> {\n // @ts-ignore\n return;\n }\n\n getAllRx<T>(store: string, opt?: DbFilter): Observable<T> {\n // @ts-ignore\n return;\n }\n\n remove(store, id): Promise<any> {\n // @ts-ignore\n return;\n }\n\n removeRx(store, key): Observable<any> {\n // @ts-ignore\n return;\n }\n\n removeAll(store): Promise<any> {\n // @ts-ignore\n return;\n }\n\n removeAllRx(store: string): Observable<any> {\n // @ts-ignore\n return;\n }\n\n count(store, opts?: { key }): Promise<number> {\n // @ts-ignore\n return;\n }\n\n countRx(store, opts?: { key }): Observable<number> {\n // @ts-ignore\n return;\n }\n\n deleteDb(): Promise<any> {\n // @ts-ignore\n return;\n }\n\n deleteTable(store): Observable<void> {\n // @ts-ignore\n return;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport Dexie, { IndexableType } from 'dexie';\nimport { forkJoin, Observable, of, Subject, switchMap } from 'rxjs';\n\nimport { SchemaService } from './schema.service';\nimport { DbService, DbServiceConfig } from './db-base.service';\n\n// @Injectable()\nexport class DbWebService extends Dexie implements DbService {\n private _db!: Dexie;\n private dbInitialized = new Subject<any>();\n\n constructor(\n private config: DbServiceConfig,\n private schemaService: SchemaService\n ) {\n super(config.dbName);\n\n const schema: {\n [tableName: string]: string | null;\n } = {};\n schemaService.schema.stores.forEach((s) => {\n let cols = ``;\n for (let c of s.columns) {\n cols += `${c.isPrimaryKey ? `++${c.name}` : `,${c.name}`}`;\n }\n schema[s.name] = cols;\n });\n this.version(1).stores(schema);\n this.open()\n .then((d) => {\n this._db = d;\n\n this.dbInitialized.next(d);\n })\n .catch((e) => alert(e));\n }\n \n dbInitialized$ = this.dbInitialized.asObservable();\n\n get Db() {\n return this._db;\n }\n\n putLocal(store, data): Promise<{ rowsAffected; insertId }> {\n return new Promise(async (resolve, reject) => {\n const schema = this.schemaService.schema.stores.filter(\n (s) => s.name == store\n )[0];\n const key = schema.columns.filter((s) => s.isPrimaryKey)[0];\n\n const exist = data[key.name] ? await this.get(store, data[key.name]) : null;\n if (exist) {\n //update\n this.Db\n .table(store)\n .update(data[key.name], data)\n .then(\n (r) => resolve(null as any),\n (e) => reject(e)\n );\n } else {\n this.Db\n .table(store)\n .add(data)\n .then(\n (r) => resolve(null as any),\n (e) => reject(e)\n );\n }\n });\n }\n\n putLocalRx(store, data) {\n return new Observable((observer) => {\n this.putLocal(store, data).then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n get<T>(store: string, key: any): Promise<T> {\n return new Promise((resolve, reject) => {\n if(!this.Db) {\n return reject('Database not initialized. Please wait for dbInitialized$ to emit.');\n }\n \n this.Db\n .table(store)\n .get(key)\n .then((r) => {\n resolve(<T>r);\n }, (e) => reject(e));\n });\n }\n\n getRx<T>(store: string, key: any) {\n return new Observable<T>((observer) => {\n this.get<T>(store, key).then((value) => {\n observer.next(value);\n observer.complete();\n });\n });\n }\n\n getByFieldName<T>(storeName, fieldName, key): Promise<Array<T>> {\n const filter = {};\n filter[fieldName] = key;\n return this.Db.table(storeName).where(filter).toArray();\n }\n\n getAll<T>(store: string, opt?: DbFilter): Promise<T> {\n return new Promise(async (resolve, reject) => {\n if(!this.Db) {\n return reject('Database not initialized. Please wait for dbInitialized$ to emit.');\n }\n\n let table = this.Db.table(store);\n let collection = table.toCollection();\n\n if(opt?.sortBy) {\n collection = table.orderBy(opt.sortBy);\n }\n\n if(opt?.sortType && opt?.sortType == 'desc') {\n collection = table.reverse();\n }\n\n // collection = this.Db.table(store).toCollection();\n if (opt && opt.key && opt.value) {\n if(!opt.keyRange) {\n opt.keyRange = KeyRangeType.equalTo;\n }\n\n switch (opt.keyRange) {\n case KeyRangeType.startsWithIgnoreCase:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .startsWithIgnoreCase(opt.value);\n break;\n case KeyRangeType.equalTo:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .equals(opt.value);\n break;\n case KeyRangeType.notEqualTo:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .notEqual(opt.value);\n break;\n case KeyRangeType.equalToIgnoreCase:\n collection = this.Db\n .table(store)\n .where(opt.key)\n .equalsIgnoreCase(opt.value);\n break;\n }\n }\n\n if(opt?.pageIndex != null) {\n collection = collection.offset((opt.pageIndex - 1) * opt.pageSize);\n }\n\n if(opt?.pageSize != null) {\n collection = collection.limit(opt.pageSize)\n }\n\n // let data!: T;\n // if(opt?.sortBy) {\n // data = <T>await collection.sortBy(opt.sortBy);\n // } else {\n // data = <T>await collection.toArray();\n // }\n\n // if(opt.sortType == 'desc') {\n // data = <T>(<any[]>data).reverse();\n // }\n\n const data = <T>await collection.toArray();\n resolve(data);\n });\n }\n\n getAllRx<T>(store: string, opt?: DbFilter) {\n return new Observable<T>((observer) => {\n this.getAll<T>(store, opt).then((value) => {\n observer.next(value);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n remove(store, key): Promise<any> {\n return this.Db.table(store).delete(key);\n }\n\n removeRx(store, key): Observable<any> {\n return new Observable((observer) => {\n this.remove(store, key).then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n async removeAll(store) {\n const all = await this.getAll<any[]>(store);\n const schema = this.schemaService.schema.stores.filter(\n (s) => s.name == store\n )[0];\n const key = schema.columns.filter((s) => s.isPrimaryKey)[0];\n\n const promises: any = [];\n for (let r of all) {\n promises.push(this.Db.table(store).delete(key.name));\n }\n\n await Promise.all(promises);\n }\n\n removeAllRx(store: string) {\n return this.getAllRx<any[]>(store).pipe(\n switchMap((entries) => {\n const observables: Array<Observable<any>> = [];\n for(let entry of entries) {\n observables.push(this.removeRx(store, entry.id));\n }\n \n if(!observables.length) {\n return of(null);\n }\n\n return forkJoin(observables);\n })\n );\n }\n\n count(store, opts?: { key }): Promise<number> {\n if (opts && opts.key) {\n const pk = this.schemaService.schema.stores\n .filter((s) => s.name == store)[0]\n .columns.filter((s) => s.isPrimaryKey)[0];\n return this.Db.table(store).where(pk.name).equals(opts.key).count();\n }\n\n return this.Db.table(store).count();\n }\n\n countRx(store, opts?: { key }) {\n return new Observable<number>((observer) => {\n this.count(store, opts).then((value) => {\n observer.next(value);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n\n deleteDb() {\n return new Promise(async (resolve, reject) => {\n await this.Db.delete();\n resolve(null);\n });\n }\n\n deleteTable(store) {\n return new Observable<void>((observer) => {\n this.Db.table(store).clear().then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => observer.error(e));\n });\n }\n}\n\nexport interface DbFilter {\n key?: any;\n value?: any;\n keyRange?: KeyRangeType;\n pageIndex?: number;\n pageSize?: number;\n sortBy?: any;\n sortType?: 'asc' | 'desc';\n}\n\nexport enum KeyRangeType {\n equalToIgnoreCase = 1,\n startsWithIgnoreCase = 2,\n equalTo = 3,\n notEqualTo = 4\n}\n","import { Injectable } from '@angular/core';\nimport { DbServiceConfig } from './db-base.service';\n\n\nexport interface ITableOptions {\n name: string;\n columns: Array<{ name; isPrimaryKey?; type? }>;\n}\n\n@Injectable()\nexport class SchemaService {\n schema = {\n stores: <ITableOptions[]>[]\n };\n tables: Record<string, string> = {};\n\n private _config = {} as DbServiceConfig;\n\n /**\n * Represents a SchemaService that manages the database schema.\n */\n constructor() {\n\n }\n\n get config() {\n return this._config;\n }\n\n init(config: DbServiceConfig) {\n this._config = config;\n\n if(config.schema && config.schema.length) {\n this.schema.stores = this.config.schema;\n this.schema.stores.forEach((s) => this.tables[s.name] = s.name);\n }\n }\n}","import { ITableOptions } from \"./schema.service\";\r\n\r\nexport class DbSettingConstant {\r\n public static readonly SETTING = 'setting';\r\n}\r\n\r\nexport const DbSettingConfig = {\r\n schema: <ITableOptions>{\r\n name: DbSettingConstant.SETTING,\r\n columns: [\r\n {\r\n name: 'key',\r\n isPrimaryKey: true,\r\n type: 'TEXT',\r\n },\r\n {\r\n name: 'value',\r\n type: 'TEXT',\r\n },\r\n ],\r\n }\r\n};","import { Injectable } from '@angular/core';\n\nimport { Observable, of, Subject } from 'rxjs';\n// import * as CapacitorSQLPlugin from 'capacitor-sqlite';\n\nimport { SchemaService, ITableOptions } from './schema.service';\nimport { DbService, DbServiceConfig } from './db-base.service';\nimport { DbFilter } from './db-web.service';\n\n@Injectable()\nexport class DbSqliteService implements DbService {\n private _dbName: string;\n private _db: any;\n private _isDbInitialized = false;\n private dbInitialized = new Subject<any>();\n\n constructor(\n private config: DbServiceConfig,\n private schemaSvc: SchemaService\n ) {\n this._dbName = config.dbName;\n // await this._deleteDatabase();\n // this._db = CapacitorSQLite;\n\n this._db.open({ database: this._dbName }).then(\n async (response: { result: boolean; message: string }) => {\n if (response.result) {\n await this._dbSuccess();\n\n this.initializeDb();\n }\n }, (e) => {\n this._dbError(e);\n });\n }\n getAllRx<T>(store: string, opt?: DbFilter): Observable<T> {\n throw new Error('Method not implemented.');\n }\n\n testDb() {\n this._db.transaction((tr) => {\n tr.executeSql(\n 'SELECT upper(?) AS upperString',\n ['Test string'],\n (tr, rs) => {\n console.log('Got upperString result: ' + rs.rows.item(0).upperString);\n }\n );\n });\n }\n\n initializeDb() {\n const delay = 50;\n //workaround: don't proceed unless db is initialized...wait everytime 50ms\n const _self = this;\n let timerId: any = setTimeout(async function request() {\n if (!_self._isDbInitialized) {\n //retry\n timerId = setTimeout(request, delay);\n } else {\n //clear timeout\n clearTimeout(timerId);\n timerId = null;\n\n await _self._prepareTables();\n\n // heavy database operations should start from this...\n _self.dbInitialized.next(_self._db);\n }\n }, delay);\n }\n\n dbInitialized$ = this.dbInitialized.asObservable();\n\n get Db() {\n return this._db;\n }\n\n putLocal(store, data: any): Promise<{ rowsAffected; insertId }> {\n return new Promise(async (resolve, reject) => {\n let sql = `BEGIN TRANSACTION;`;\n const values: any[] = [];\n\n const total = await this.count(store);\n if (total) {\n //update\n sql = `UPDATE ${store} SET `;\n //columns\n for (let prop in data) {\n if (data.hasOwnProperty(prop)) {\n sql += `${prop}='${data[prop]}',`;\n }\n }\n //remove extra ',' at the end\n sql = sql.substr(0, sql.length - 1);\n } else {\n //insert\n sql = `INSERT INTO ${store} `;\n //columns\n sql += `(`;\n for (let prop in data) {\n if (data.hasOwnProperty(prop)) {\n sql += `${prop},`;\n }\n }\n //remove extra ',' at the end\n sql = sql.substr(0, sql.length - 1);\n sql += `)`;\n\n //values\n sql += ` VALUES (`;\n for (let prop in data) {\n sql += `?,`;\n values.push(data[prop]);\n }\n sql = sql.substr(0, sql.length - 1);\n sql += `)`;\n }\n\n sql += `COMMIT TRANSACTION;`;\n const { changes } = await this._db.execute({\n statements: sql,\n values: values,\n });\n resolve(changes);\n // this._db.transaction(async (tx) => {\n // const res = await this._executeSql<{ rowsAffected, insertId }>(tx, sql, values);\n // resolve(res);\n // }, (error) => reject(error));\n });\n }\n\n putLocalRx(store, data) {\n return new Observable((observer) => {\n this.putLocal(store, data).then((result) => {\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n get<T>(store: string, key: any): Promise<T> {\n return new Promise(async (resolve, reject) => {\n //get primary key field form schema\n const table: any = this.schemaSvc.schema.stores.filter(\n (s) => s.name === store\n )[0];\n const pk = table.columns.filter((c) => c.isPrimaryKey)[0];\n const pkName = pk.name;\n\n let sql = `SELECT * FROM ${store} WHERE ${pkName} = '${key}' LIMIT 1`;\n try {\n let data;\n const { values } = await this._db.query({ statement: sql, values: [] });\n if (values.length) {\n data = values[0];\n }\n resolve(data);\n } catch (e) {\n reject(e);\n }\n });\n }\n\n getRx<T>(store: string, key: any): Observable<T> { \n // @ts-ignore\n return; \n }\n\n getAll<T>(store: string, opt?: DbFilter): Promise<T> {\n return new Promise(async (resolve, reject) => {\n let sql = `SELECT * FROM ${store}`;\n\n try {\n let data;\n const { values } = await this._db.query({ statement: sql, values: [] });\n resolve(values);\n } catch (e) {\n reject(e);\n }\n });\n }\n\n remove(store, key): Promise<any> {\n return new Promise((resolve, reject) => {\n throw 'remove not impleted in db-sql yet';\n });\n }\n\n removeRx(store, key): Observable<any> {\n throw 'remove not impleted in db-sql yet';\n }\n\n removeAll(store) {\n return new Promise((resolve, reject) => {\n throw 'removeAll not impleted in db-sql yet';\n });\n }\n\n removeAllRx(store: string): Observable<any> {\n throw 'removeAllRx not impleted in db-sql yet';\n }\n\n count(store, opts?: { key }): Promise<number> {\n return new Promise(async (resolve, reject) => {\n let sql = `SELECT count(*) AS total FROM ${store} `;\n\n const { values } = await this._db.query({ statement: sql, values: [] });\n resolve(values);\n });\n }\n\n countRx(store, opts?: { key }) {\n return new Observable<number>((observer) => {\n this.count(store, opts).then((result) => {\n observer.next(result);\n observer.complete();\n }, (error) => observer.error(error));\n });\n }\n\n deleteDb() {\n return this._deleteDatabase();\n }\n\n \n deleteTable(store): Observable<void> {\n throw 'deleteTable not impleted in db-sql yet';\n }\n\n private _prepareTables() {\n return new Promise(async (resolve, reject) => {\n const schemas = this.schemaSvc.schema.stores;\n\n const promises: any[] = [];\n for (let schema of schemas) {\n let sql = `BEGIN TRANSACTION;`;\n\n sql += `CREATE TABLE IF NOT EXISTS ${schema.name} `;\n sql += `(`;\n\n for (let col of schema.columns) {\n //TODO: for user table, need to fix primary key\n // const ikPkTypeNumber = col['type'] == 'INTEGER';\n sql += `${col.name}${col.type ? ' ' + col.type : ''}${\n col['isPrimaryKey'] ? ' PRIMARY KEY' : ''\n },`;\n }\n\n //remove extra ',' at the end\n sql = sql.substr(0, sql.length - 1);\n sql += `)`;\n\n sql += `COMMIT TRANSACTION;`;\n\n const promise = this._db.execute({ statements: sql });\n promises.push(promise);\n }\n\n try {\n await Promise.all(promises);\n resolve(null);\n } catch (e) {\n reject(e);\n }\n });\n }\n\n private _deleteDatabase(): Promise<{ result: boolean; message: string }> {\n return this._db.deleteDatabase({ database: this._dbName });\n }\n\n private _dbSuccess() {\n this._isDbInitialized = true;\n }\n\n private _dbError(err) {\n alert('Open database ERROR: ' + JSON.stringify(err));\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\r\n\r\nimport { SchemaService } from './schema.service';\r\nimport { DbWebService } from './db-web.service';\r\nimport { DbService, DbServiceType } from './db-base.service';\r\nimport { DbSqliteService } from './db-sql.service';\r\n\r\nexport function dbFactory(schemaSvc: SchemaService) {\r\n const dbConfig = schemaSvc.config;\r\n\r\n switch (dbConfig.dbType) {\r\n case DbServiceType.IndexDd:\r\n return new DbWebService(dbConfig, schemaSvc);\r\n case DbServiceType.Sqlite:\r\n return new DbSqliteService(dbConfig, schemaSvc);\r\n }\r\n}\r\n\r\nexport const provideDb = (): EnvironmentProviders => {\r\n const providers: Provider[] = [\r\n SchemaService,\r\n {\r\n provide: DbService,\r\n useFactory: dbFactory,\r\n deps: [SchemaService],\r\n }\r\n ];\r\n\r\n return makeEnvironmentProviders(providers);\r\n};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DbServiceConfig","i2.SchemaService"],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Pipe } from '@angular/core';
3
+ import * as i1 from '@angular/platform-browser';
4
+ import { format, parseISO } from 'date-fns';
5
+ import { Observable } from 'rxjs';
6
+
7
+ class SafePipe {
8
+ constructor(sanitizer) {
9
+ this.sanitizer = sanitizer;
10
+ }
11
+ transform(data, type) {
12
+ if (!data) {
13
+ return;
14
+ }
15
+ let result;
16
+ const context = type;
17
+ switch (context) {
18
+ case SecurityContext.URL:
19
+ result = this.sanitizer.bypassSecurityTrustResourceUrl(data);
20
+ break;
21
+ case SecurityContext.STYLE:
22
+ result = this.sanitizer.bypassSecurityTrustStyle(data);
23
+ break;
24
+ case SecurityContext.HTML:
25
+ result = this.sanitizer.bypassSecurityTrustHtml(data);
26
+ break;
27
+ default:
28
+ break;
29
+ }
30
+ return result;
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SafePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
33
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: SafePipe, isStandalone: true, name: "safe" }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SafePipe, decorators: [{
36
+ type: Pipe,
37
+ args: [{
38
+ name: 'safe',
39
+ }]
40
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
41
+ var SecurityContext;
42
+ (function (SecurityContext) {
43
+ SecurityContext["NONE"] = "none";
44
+ SecurityContext["HTML"] = "html";
45
+ SecurityContext["STYLE"] = "style";
46
+ SecurityContext["SCRIPT"] = "script";
47
+ SecurityContext["URL"] = "url";
48
+ SecurityContext["RESOURCE_URL"] = "resource";
49
+ })(SecurityContext || (SecurityContext = {}));
50
+
51
+ class FormateDatePipe {
52
+ constructor() { }
53
+ transform(date, ft) {
54
+ return new Observable(observer => {
55
+ if (!date) {
56
+ observer.next(null);
57
+ observer.complete();
58
+ }
59
+ else {
60
+ let fd = null;
61
+ if (date instanceof Date) {
62
+ fd = format(date, ft);
63
+ }
64
+ else {
65
+ fd = format(parseISO(date), ft);
66
+ }
67
+ observer.next(fd);
68
+ observer.complete();
69
+ }
70
+ });
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: FormateDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
73
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: FormateDatePipe, isStandalone: true, name: "formateDate" }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: FormateDatePipe, decorators: [{
76
+ type: Pipe,
77
+ args: [{
78
+ name: 'formateDate',
79
+ }]
80
+ }], ctorParameters: () => [] });
81
+
82
+ /**
83
+ * Generated bundle index. Do not edit.
84
+ */
85
+
86
+ export { FormateDatePipe, SafePipe, SecurityContext };
87
+ //# sourceMappingURL=ngx-universal-zone-pipes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-universal-zone-pipes.mjs","sources":["../../../projects/ngx-universal-zone/pipes/safe.pipe.ts","../../../projects/ngx-universal-zone/pipes/formateDate.pipe.ts","../../../projects/ngx-universal-zone/pipes/ngx-universal-zone-pipes.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe',\n})\nexport class SafePipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(data, type: any) {\n if (!data) {\n return;\n }\n\n let result;\n const context = type as SecurityContext;\n switch (context) {\n case SecurityContext.URL:\n result = this.sanitizer.bypassSecurityTrustResourceUrl(data);\n break;\n case SecurityContext.STYLE:\n result = this.sanitizer.bypassSecurityTrustStyle(data);\n break;\n case SecurityContext.HTML:\n result = this.sanitizer.bypassSecurityTrustHtml(data);\n break;\n default:\n break;\n }\n return result;\n }\n}\n\nexport enum SecurityContext {\n NONE = 'none',\n HTML = 'html',\n STYLE = 'style',\n SCRIPT = 'script',\n URL = 'url',\n RESOURCE_URL = 'resource',\n}\n","import { Pipe } from '@angular/core';\nimport { format, parseISO } from 'date-fns';\nimport { Observable } from 'rxjs';\n\n@Pipe({\n name: 'formateDate',\n})\nexport class FormateDatePipe {\n constructor() {}\n\n transform(date: any, ft: string) {\n return new Observable<string>(observer => {\n if (!date) {\n observer.next(null);\n observer.complete();\n } else {\n let fd = null;\n if (date instanceof Date) {\n fd = format(date, ft);\n } else {\n fd = format(parseISO(date), ft);\n }\n\n observer.next(fd);\n observer.complete();\n }\n });\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,QAAQ,CAAA;AACnB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS;;IAE7B,SAAS,CAAC,IAAI,EAAE,IAAS,EAAA;QACvB,IAAI,CAAC,IAAI,EAAE;YACT;;AAGF,QAAA,IAAI,MAAM;QACV,MAAM,OAAO,GAAG,IAAuB;QACvC,QAAQ,OAAO;YACb,KAAK,eAAe,CAAC,GAAG;gBACtB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC;gBAC5D;YACF,KAAK,eAAe,CAAC,KAAK;gBACxB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC;gBACtD;YACF,KAAK,eAAe,CAAC,IAAI;gBACvB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC;gBACrD;AACF,YAAA;gBACE;;AAEJ,QAAA,OAAO,MAAM;;8GAvBJ,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA;;IA4BW;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,UAAyB;AAC3B,CAAC,EAPW,eAAe,KAAf,eAAe,GAO1B,EAAA,CAAA,CAAA;;MCjCY,eAAe,CAAA;AAC1B,IAAA,WAAA,GAAA;IAEA,SAAS,CAAC,IAAS,EAAE,EAAU,EAAA;AAC7B,QAAA,OAAO,IAAI,UAAU,CAAS,QAAQ,IAAG;YACvC,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,QAAQ,CAAC,QAAQ,EAAE;;iBACd;gBACL,IAAI,EAAE,GAAG,IAAI;AACb,gBAAA,IAAI,IAAI,YAAY,IAAI,EAAE;AACxB,oBAAA,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;;qBAChB;oBACL,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;;AAGjC,gBAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjB,QAAQ,CAAC,QAAQ,EAAE;;AAEvB,SAAC,CAAC;;8GAnBO,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA;;;ACND;;AAEG;;;;"}
@@ -0,0 +1,147 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
5
+
6
+ var SubjectType;
7
+ (function (SubjectType) {
8
+ SubjectType[SubjectType["Subject"] = 0] = "Subject";
9
+ SubjectType[SubjectType["BehaviorSubject"] = 1] = "BehaviorSubject";
10
+ SubjectType[SubjectType["ReplaySubject"] = 2] = "ReplaySubject";
11
+ })(SubjectType || (SubjectType = {}));
12
+
13
+ class NgxPubSubService {
14
+ constructor() {
15
+ this.eventObservableMapping = {};
16
+ }
17
+ publishEvent(eventName, data) {
18
+ this.validateEventName(eventName);
19
+ this.createSubjectIfNotExist(eventName);
20
+ this.publishNext(eventName, SubjectType.Subject, data);
21
+ }
22
+ subscribe(eventName, next, error, complete) {
23
+ this.validateEventName(eventName);
24
+ // subject will be created if the provided eventName is not registered
25
+ this.createSubjectIfNotExist(eventName);
26
+ return this.eventObservableMapping[eventName].ref.subscribe(next, error, complete);
27
+ }
28
+ /**
29
+ * Use this method to get the Observable associated with the event.
30
+ * Useful when you would like to apply additional rxjs operators like debounceTime
31
+ */
32
+ getEventObservable(eventName) {
33
+ this.validateEventName(eventName);
34
+ // subject will be created if the provided eventName is not registered
35
+ this.createSubjectIfNotExist(eventName);
36
+ return this.eventObservableMapping[eventName].ref.asObservable();
37
+ }
38
+ registerEventWithLastValue(name, defaultValue) {
39
+ this.validateEventName(name);
40
+ // type and name check
41
+ this.checkEventType(name, SubjectType.BehaviorSubject, true);
42
+ // create one
43
+ this.eventObservableMapping[name] = {
44
+ type: SubjectType.BehaviorSubject,
45
+ ref: new BehaviorSubject(defaultValue),
46
+ };
47
+ }
48
+ registerEventWithHistory(name, bufferSize, windowTime, scheduler) {
49
+ this.validateEventName(name);
50
+ // type and name check
51
+ this.checkEventType(name, SubjectType.ReplaySubject, true);
52
+ // create one
53
+ this.eventObservableMapping[name] = {
54
+ type: SubjectType.ReplaySubject,
55
+ ref: new ReplaySubject(bufferSize, windowTime, scheduler),
56
+ };
57
+ }
58
+ publishWithLast(eventName, data) {
59
+ this.validateEventName(eventName);
60
+ this.publishNext(eventName, SubjectType.BehaviorSubject, data);
61
+ }
62
+ publishWithHistory(eventName, data) {
63
+ this.validateEventName(eventName);
64
+ this.publishNext(eventName, SubjectType.ReplaySubject, data);
65
+ }
66
+ completeEvent(eventName) {
67
+ this.validateEventName(eventName);
68
+ if (!this.eventObservableMapping[eventName]) {
69
+ throw Error('Event not created yet');
70
+ }
71
+ this.completeObservableAndDestroyMapping(eventName);
72
+ }
73
+ ngOnDestroy() {
74
+ for (const eventName in this.eventObservableMapping) {
75
+ if (this.eventObservableMapping.hasOwnProperty(eventName)) {
76
+ this.completeObservableAndDestroyMapping(eventName);
77
+ }
78
+ }
79
+ }
80
+ publishNext(eventName, type = SubjectType.Subject, data) {
81
+ this.checkEventType(eventName, type);
82
+ this.eventObservableMapping[eventName].ref.next(data);
83
+ }
84
+ checkEventType(eventName, type = SubjectType.Subject, shouldNotExist = false) {
85
+ const object = this.eventObservableMapping[eventName];
86
+ let errorMessage;
87
+ if (!object && shouldNotExist) {
88
+ return;
89
+ }
90
+ if (!object) {
91
+ errorMessage = `Event doesn't exist of type: ${SubjectType[type]} or it has been completed`;
92
+ }
93
+ else if (object.type !== type) {
94
+ errorMessage = `Event exists with other type: ${SubjectType[object.type]}. Expected type: ${SubjectType[type]}`;
95
+ }
96
+ if (shouldNotExist && object.type === type) {
97
+ errorMessage = `Event already registerd with the same type. Don't register a second time`;
98
+ }
99
+ if (errorMessage) {
100
+ throw Error(`Error (${eventName}): ${errorMessage}`);
101
+ }
102
+ }
103
+ createSubjectIfNotExist(eventName) {
104
+ const object = this.eventObservableMapping[eventName];
105
+ if (object) {
106
+ return;
107
+ }
108
+ this.eventObservableMapping[eventName] = {
109
+ type: SubjectType.Subject,
110
+ ref: new Subject(),
111
+ };
112
+ }
113
+ validateEventName(eventName) {
114
+ if (!eventName) {
115
+ throw Error('Event name not provided');
116
+ }
117
+ }
118
+ completeObservableAndDestroyMapping(eventName) {
119
+ this.eventObservableMapping[eventName].ref.complete();
120
+ delete this.eventObservableMapping[eventName];
121
+ }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgxPubSubService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
123
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgxPubSubService }); }
124
+ }
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgxPubSubService, decorators: [{
126
+ type: Injectable
127
+ }], ctorParameters: () => [] });
128
+
129
+ class NgxPubSubModule {
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgxPubSubModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
131
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: NgxPubSubModule, imports: [CommonModule] }); }
132
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgxPubSubModule, providers: [NgxPubSubService], imports: [CommonModule] }); }
133
+ }
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgxPubSubModule, decorators: [{
135
+ type: NgModule,
136
+ args: [{
137
+ imports: [CommonModule],
138
+ providers: [NgxPubSubService],
139
+ }]
140
+ }] });
141
+
142
+ /**
143
+ * Generated bundle index. Do not edit.
144
+ */
145
+
146
+ export { NgxPubSubModule, NgxPubSubService };
147
+ //# sourceMappingURL=ngx-universal-zone-pub-sub.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-universal-zone-pub-sub.mjs","sources":["../../../projects/ngx-universal-zone/pub-sub/subject-type.enum.ts","../../../projects/ngx-universal-zone/pub-sub/ngx-pub-sub.service.ts","../../../projects/ngx-universal-zone/pub-sub/ngx-pub-sub.module.ts","../../../projects/ngx-universal-zone/pub-sub/ngx-universal-zone-pub-sub.ts"],"sourcesContent":["export enum SubjectType {\n Subject,\n BehaviorSubject,\n ReplaySubject,\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport {\n Subject,\n Subscription,\n ReplaySubject,\n Observable,\n BehaviorSubject,\n SchedulerLike,\n} from 'rxjs';\n\nimport { IHash } from './i-hash';\nimport { SubjectType } from './subject-type.enum';\n\n@Injectable()\nexport class NgxPubSubService implements OnDestroy {\n private eventObservableMapping: IHash;\n\n constructor() {\n this.eventObservableMapping = {};\n }\n\n publishEvent(eventName: string, data?: any) {\n this.validateEventName(eventName);\n this.createSubjectIfNotExist(eventName);\n\n this.publishNext(eventName, SubjectType.Subject, data);\n }\n\n subscribe(\n eventName: string,\n next?: (value: any) => void,\n error?: (error: any) => any,\n complete?: () => void\n ): Subscription {\n this.validateEventName(eventName);\n // subject will be created if the provided eventName is not registered\n this.createSubjectIfNotExist(eventName);\n\n return this.eventObservableMapping[eventName].ref.subscribe(\n next,\n error,\n complete\n );\n }\n\n /**\n * Use this method to get the Observable associated with the event.\n * Useful when you would like to apply additional rxjs operators like debounceTime\n */\n getEventObservable(eventName: string): Observable<any> {\n this.validateEventName(eventName);\n // subject will be created if the provided eventName is not registered\n this.createSubjectIfNotExist(eventName);\n\n return this.eventObservableMapping[eventName].ref.asObservable();\n }\n\n registerEventWithLastValue(name: string, defaultValue: any) {\n this.validateEventName(name);\n // type and name check\n this.checkEventType(name, SubjectType.BehaviorSubject, true);\n // create one\n this.eventObservableMapping[name] = {\n type: SubjectType.BehaviorSubject,\n ref: new BehaviorSubject(defaultValue),\n };\n }\n\n registerEventWithHistory(\n name: string,\n bufferSize?: number,\n windowTime?: number,\n scheduler?: SchedulerLike\n ) {\n this.validateEventName(name);\n // type and name check\n this.checkEventType(name, SubjectType.ReplaySubject, true);\n // create one\n this.eventObservableMapping[name] = {\n type: SubjectType.ReplaySubject,\n ref: new ReplaySubject(bufferSize, windowTime, scheduler),\n };\n }\n\n publishWithLast(eventName: string, data?: any) {\n this.validateEventName(eventName);\n this.publishNext(eventName, SubjectType.BehaviorSubject, data);\n }\n\n publishWithHistory(eventName: string, data?: any) {\n this.validateEventName(eventName);\n this.publishNext(eventName, SubjectType.ReplaySubject, data);\n }\n\n completeEvent(eventName: string) {\n this.validateEventName(eventName);\n if (!this.eventObservableMapping[eventName]) {\n throw Error('Event not created yet');\n }\n this.completeObservableAndDestroyMapping(eventName);\n }\n\n ngOnDestroy() {\n for (const eventName in this.eventObservableMapping) {\n if (this.eventObservableMapping.hasOwnProperty(eventName)) {\n this.completeObservableAndDestroyMapping(eventName);\n }\n }\n }\n\n private publishNext(\n eventName: string,\n type: SubjectType = SubjectType.Subject,\n data?: any\n ) {\n this.checkEventType(eventName, type);\n this.eventObservableMapping[eventName].ref.next(data);\n }\n\n private checkEventType(\n eventName: string,\n type: SubjectType = SubjectType.Subject,\n shouldNotExist = false\n ) {\n const object = this.eventObservableMapping[eventName];\n let errorMessage;\n if (!object && shouldNotExist) {\n return;\n }\n if (!object) {\n errorMessage = `Event doesn't exist of type: ${SubjectType[type]} or it has been completed`;\n } else if (object.type !== type) {\n errorMessage = `Event exists with other type: ${\n SubjectType[object.type]\n }. Expected type: ${SubjectType[type]}`;\n }\n if (shouldNotExist && object.type === type) {\n errorMessage = `Event already registerd with the same type. Don't register a second time`;\n }\n if (errorMessage) {\n throw Error(`Error (${eventName}): ${errorMessage}`);\n }\n }\n\n private createSubjectIfNotExist(eventName: string) {\n const object = this.eventObservableMapping[eventName];\n if (object) {\n return;\n }\n\n this.eventObservableMapping[eventName] = {\n type: SubjectType.Subject,\n ref: new Subject(),\n };\n }\n\n private validateEventName(eventName: string) {\n if (!eventName) {\n throw Error('Event name not provided');\n }\n }\n\n private completeObservableAndDestroyMapping(eventName: string) {\n this.eventObservableMapping[eventName].ref.complete();\n delete this.eventObservableMapping[eventName];\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgxPubSubService } from './ngx-pub-sub.service';\n\n@NgModule({\n imports: [CommonModule],\n providers: [NgxPubSubService],\n})\nexport class NgxPubSubModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA,IAAY,WAIX;AAJD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,WAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe;AACf,IAAA,WAAA,CAAA,WAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa;AACf,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA;;MCUY,gBAAgB,CAAA;AAG3B,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;;IAGlC,YAAY,CAAC,SAAiB,EAAE,IAAU,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;AACjC,QAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;QAEvC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;;AAGxD,IAAA,SAAS,CACP,SAAiB,EACjB,IAA2B,EAC3B,KAA2B,EAC3B,QAAqB,EAAA;AAErB,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;;AAEjC,QAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;AAEvC,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CACzD,IAAI,EACJ,KAAK,EACL,QAAQ,CACT;;AAGH;;;AAGG;AACH,IAAA,kBAAkB,CAAC,SAAiB,EAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;;AAEjC,QAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC;QAEvC,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE;;IAGlE,0BAA0B,CAAC,IAAY,EAAE,YAAiB,EAAA;AACxD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;;QAE5B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC;;AAE5D,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG;YAClC,IAAI,EAAE,WAAW,CAAC,eAAe;AACjC,YAAA,GAAG,EAAE,IAAI,eAAe,CAAC,YAAY,CAAC;SACvC;;AAGH,IAAA,wBAAwB,CACtB,IAAY,EACZ,UAAmB,EACnB,UAAmB,EACnB,SAAyB,EAAA;AAEzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;;QAE5B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC;;AAE1D,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG;YAClC,IAAI,EAAE,WAAW,CAAC,aAAa;YAC/B,GAAG,EAAE,IAAI,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;SAC1D;;IAGH,eAAe,CAAC,SAAiB,EAAE,IAAU,EAAA;AAC3C,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC;;IAGhE,kBAAkB,CAAC,SAAiB,EAAE,IAAU,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC;;AAG9D,IAAA,aAAa,CAAC,SAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE;AAC3C,YAAA,MAAM,KAAK,CAAC,uBAAuB,CAAC;;AAEtC,QAAA,IAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC;;IAGrD,WAAW,GAAA;AACT,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE;YACnD,IAAI,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACzD,gBAAA,IAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC;;;;IAKjD,WAAW,CACjB,SAAiB,EACjB,IAAA,GAAoB,WAAW,CAAC,OAAO,EACvC,IAAU,EAAA;AAEV,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC;AACpC,QAAA,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG/C,cAAc,CACpB,SAAiB,EACjB,IAAoB,GAAA,WAAW,CAAC,OAAO,EACvC,cAAc,GAAG,KAAK,EAAA;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC;AACrD,QAAA,IAAI,YAAY;AAChB,QAAA,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE;YAC7B;;QAEF,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,YAAY,GAAG,CAAgC,6BAAA,EAAA,WAAW,CAAC,IAAI,CAAC,2BAA2B;;AACtF,aAAA,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;AAC/B,YAAA,YAAY,GAAG,CAAA,8BAAA,EACb,WAAW,CAAC,MAAM,CAAC,IAAI,CACzB,CAAA,iBAAA,EAAoB,WAAW,CAAC,IAAI,CAAC,EAAE;;QAEzC,IAAI,cAAc,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;YAC1C,YAAY,GAAG,0EAA0E;;QAE3F,IAAI,YAAY,EAAE;YAChB,MAAM,KAAK,CAAC,CAAU,OAAA,EAAA,SAAS,MAAM,YAAY,CAAA,CAAE,CAAC;;;AAIhD,IAAA,uBAAuB,CAAC,SAAiB,EAAA;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC;QACrD,IAAI,MAAM,EAAE;YACV;;AAGF,QAAA,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG;YACvC,IAAI,EAAE,WAAW,CAAC,OAAO;YACzB,GAAG,EAAE,IAAI,OAAO,EAAE;SACnB;;AAGK,IAAA,iBAAiB,CAAC,SAAiB,EAAA;QACzC,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,MAAM,KAAK,CAAC,yBAAyB,CAAC;;;AAIlC,IAAA,mCAAmC,CAAC,SAAiB,EAAA;QAC3D,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;AACrD,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC;;8GAtJpC,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAhB,gBAAgB,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;MCLY,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHhB,YAAY,CAAA,EAAA,CAAA,CAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAFf,SAAA,EAAA,CAAC,gBAAgB,CAAC,YADnB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAGX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,SAAS,EAAE,CAAC,gBAAgB,CAAC;AAC9B,iBAAA;;;ACPD;;AAEG;;;;"}
@@ -0,0 +1,218 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Component, ViewEncapsulation, NgModule, Directive, HostListener, EventEmitter, Input, Output } from '@angular/core';
3
+ import * as i1 from '@angular/platform-browser';
4
+ import * as i2 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import { merge, timer, interval } from 'rxjs';
7
+ import { tap, map, switchMap, takeUntil } from 'rxjs/operators';
8
+
9
+ class NoDataComponent {
10
+ constructor(domSanitizer) {
11
+ this.domSanitizer = domSanitizer;
12
+ this.icon = input();
13
+ this.message = input();
14
+ }
15
+ ngOnInit() {
16
+ let svg = this.icon();
17
+ if (!this.icon()) {
18
+ svg = `<?xml version="1.0" encoding="utf-8"?>
19
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
20
+ viewBox="0 0 40 40" style="enable-background:new 0 0 40 40;" xml:space="preserve">
21
+ <style type="text/css">
22
+ .st0{fill-rule:evenodd;clip-rule:evenodd;}
23
+ </style>
24
+ <g>
25
+ <path d="M9,21.8c0,0.4,0.3,0.7,0.6,0.8c0.5,0.1,0.9-0.3,0.9-0.8v-7h6.2V8.4h11.9c1.3,0,2.4,1.1,2.4,2.4v5.8c0,0.5,0.4,0.8,0.9,0.8
26
+ c0.4-0.1,0.6-0.4,0.6-0.8v-5.7c0-2.2-1.8-3.9-3.9-3.9H13.3L9,11.7V21.8z M14,8.4h1.2v4.9h-4.7v-1L14,8.4z"/>
27
+ <path d="M31.7,29.9c-0.4,0.1-0.6,0.4-0.6,0.8v2.2c0,1.3-1.1,2.4-2.4,2.4H12.9c-1.3,0-2.4-1.1-2.4-2.4v-1.5c0-0.5-0.4-0.8-0.9-0.8
28
+ C9.2,30.7,9,31,9,31.4v1.4c0,2.2,1.8,3.9,3.9,3.9h15.7c2.2,0,3.9-1.8,3.9-3.9v-2.2C32.5,30.2,32.1,29.8,31.7,29.9z"/>
29
+ <path d="M8.2,7.5c0.2,0.2,0.3,0.2,0.5,0.2c0.2,0,0.4-0.1,0.6-0.3c0.3-0.3,0.2-0.8-0.1-1.1L5.8,3c-0.3-0.3-0.8-0.3-1.1,0
30
+ C4.5,3.2,4.4,3.7,4.7,4L8.2,7.5z"/>
31
+ <path d="M10.5,4.7C10.6,5,11,5.2,11.3,5.2c0.2,0,0.4-0.1,0.5-0.2C12,4.8,12.1,4.5,12,4.2l-0.8-2.4c-0.1-0.4-0.6-0.7-1.1-0.4
32
+ c-0.3,0.2-0.5,0.6-0.4,1L10.5,4.7z"/>
33
+ <path d="M6.4,8.8L4,8C3.6,7.9,3.1,8.1,3,8.5C2.9,8.9,3.2,9.3,3.6,9.5l2.4,0.8c0.1,0,0.2,0,0.3,0c0.3,0,0.7-0.2,0.8-0.6
34
+ C7,9.3,6.8,9,6.4,8.8z"/>
35
+ <path d="M35.7,19.8c-0.5-0.3-1.1-0.2-1.5,0.2L32,22.3l-2.2-2.2c-0.5-0.5-1.2-0.4-1.7,0c-0.4,0.5-0.4,1.2,0.1,1.6l2.2,2.2l-2.2,2.2
36
+ c-0.4,0.4-0.5,1.1-0.1,1.6c0.2,0.3,0.6,0.4,0.9,0.4c0.3,0,0.6-0.1,0.8-0.3l2.2-2.2l2.3,2.3c0.2,0.2,0.5,0.3,0.8,0.3
37
+ c0.3,0,0.6-0.1,0.9-0.4c0.4-0.5,0.3-1.2-0.1-1.6l-2.3-2.3l2.3-2.3C36.4,21.1,36.3,20.3,35.7,19.8z"/>
38
+ <path d="M10.2,29.4c1.1-0.2,1.9-1.1,2.1-2.1c0.4-1.9-1.3-3.5-3.2-3.2c-1.1,0.2-1.9,1.1-2.1,2.1C6.6,28.2,8.3,29.8,10.2,29.4z
39
+ M8.5,27c-0.2-0.8,0.5-1.5,1.4-1.4c0.4,0.1,0.8,0.5,0.9,0.9c0.2,0.8-0.5,1.5-1.4,1.4C9,27.8,8.6,27.5,8.5,27z"/>
40
+ <path d="M36.8,7.2c-0.7-1.1-2.2-1.1-2.9,0c-0.3,0.5-0.3,1.1,0,1.6c0.3,0.6,0.9,0.8,1.5,0.8s1.1-0.3,1.5-0.8
41
+ C37.1,8.3,37.1,7.7,36.8,7.2z M35.7,8.4c-0.2,0.2-0.5,0.2-0.7,0c-0.2-0.2-0.2-0.5,0-0.7c0.1-0.1,0.2-0.1,0.4-0.1
42
+ c0.1,0,0.3,0,0.4,0.1C35.9,7.8,35.9,8.2,35.7,8.4z"/>
43
+ </g>
44
+ </svg>`;
45
+ }
46
+ this.iconHtml = this.domSanitizer.bypassSecurityTrustHtml(svg);
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoDataComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.5", type: NoDataComponent, isStandalone: false, selector: "app-no-data", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
50
+ <div class="data-empty">
51
+ <div *ngIf="iconHtml" [outerHTML]="iconHtml"></div>
52
+ <p *ngIf="message()">{{ message() }}</p>
53
+ <ng-content></ng-content>
54
+ </div>
55
+ `, isInline: true, styles: [".data-empty{text-align:center;padding-top:20%}.data-empty svg{color:#efefef;width:120px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoDataComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'app-no-data', template: `
60
+ <div class="data-empty">
61
+ <div *ngIf="iconHtml" [outerHTML]="iconHtml"></div>
62
+ <p *ngIf="message()">{{ message() }}</p>
63
+ <ng-content></ng-content>
64
+ </div>
65
+ `, encapsulation: ViewEncapsulation.None, standalone: false, styles: [".data-empty{text-align:center;padding-top:20%}.data-empty svg{color:#efefef;width:120px}\n"] }]
66
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
67
+
68
+ class NoDataModule {
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoDataModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
70
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: NoDataModule, declarations: [NoDataComponent], imports: [CommonModule], exports: [NoDataComponent] }); }
71
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoDataModule, imports: [CommonModule] }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NoDataModule, decorators: [{
74
+ type: NgModule,
75
+ args: [{
76
+ imports: [CommonModule],
77
+ declarations: [NoDataComponent],
78
+ exports: [NoDataComponent],
79
+ }]
80
+ }] });
81
+
82
+ class OnlyNumberDirective {
83
+ constructor() { }
84
+ onKeyDown(event) {
85
+ if (event.key === '.') {
86
+ event.preventDefault();
87
+ }
88
+ }
89
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OnlyNumberDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
90
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: OnlyNumberDirective, isStandalone: false, selector: "[onlyNumber]", host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
91
+ }
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OnlyNumberDirective, decorators: [{
93
+ type: Directive,
94
+ args: [{
95
+ selector: '[onlyNumber]',
96
+ standalone: false,
97
+ }]
98
+ }], ctorParameters: () => [], propDecorators: { onKeyDown: [{
99
+ type: HostListener,
100
+ args: ['keydown', ['$event']]
101
+ }] } });
102
+
103
+ class LongPressDirective {
104
+ constructor(elRef) {
105
+ this.elRef = elRef;
106
+ this.disabled = false;
107
+ this._duration = 3000;
108
+ this.isContinuous = false;
109
+ this.continuousInterval = 0;
110
+ this.longPressStart = new EventEmitter();
111
+ this.longPressFinish = new EventEmitter();
112
+ this.longPressCancel = new EventEmitter();
113
+ this.pressing = false;
114
+ merge(this.longPressCancel, this.longPressFinish).pipe(tap(() => {
115
+ const ref = this.elRef.nativeElement;
116
+ ref.style.transform = 'scale(1)';
117
+ })).subscribe();
118
+ }
119
+ set duration(v) {
120
+ this._duration = v ? Number(v) : 3000;
121
+ }
122
+ set _continuousInterval(v) {
123
+ this.isContinuous = !!v;
124
+ this.continuousInterval = v;
125
+ }
126
+ onPress(event) {
127
+ if (this.disabled) {
128
+ event.stopPropagation();
129
+ event.preventDefault();
130
+ return;
131
+ }
132
+ const ref = this.elRef.nativeElement;
133
+ ref.style.transform = 'scale(0.95)';
134
+ this.pressing = true;
135
+ this.longPressStart.emit(event);
136
+ let obs = timer(this._duration).pipe(map(() => event));
137
+ if (this.isContinuous) {
138
+ obs = obs.pipe(tap((event) => this.longPressFinish.emit(event)), switchMap((event) => interval(this.continuousInterval)
139
+ .pipe(map(() => event))), takeUntil(this.longPressCancel));
140
+ }
141
+ this.longPressSubscription = obs.subscribe((event) => {
142
+ if (this.pressing) {
143
+ this.pressing = this.isContinuous;
144
+ this.longPressFinish.emit(event);
145
+ }
146
+ });
147
+ }
148
+ onRelease(event) {
149
+ this.pressing = false;
150
+ if (this.longPressSubscription) {
151
+ this.longPressSubscription.unsubscribe();
152
+ }
153
+ this.longPressCancel.emit(event);
154
+ }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LongPressDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
156
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: LongPressDirective, isStandalone: false, selector: "[longPress]", inputs: { duration: ["longPress", "duration"], disabled: ["longPressDisabled", "disabled"], _continuousInterval: ["longPressInterval", "_continuousInterval"] }, outputs: { longPressStart: "longPressStart", longPressFinish: "longPressFinish", longPressCancel: "longPressCancel" }, host: { listeners: { "mousedown": "onPress($event)", "touchstart": "onPress($event)", "mouseup": "onRelease($event)", "mouseleave": "onRelease($event)", "touchend": "onRelease($event)", "touchcancel": "onRelease($event)" } }, ngImport: i0 }); }
157
+ }
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LongPressDirective, decorators: [{
159
+ type: Directive,
160
+ args: [{
161
+ selector: '[longPress]',
162
+ standalone: false,
163
+ }]
164
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { duration: [{
165
+ type: Input,
166
+ args: ['longPress']
167
+ }], disabled: [{
168
+ type: Input,
169
+ args: ['longPressDisabled']
170
+ }], _continuousInterval: [{
171
+ type: Input,
172
+ args: ['longPressInterval']
173
+ }], longPressStart: [{
174
+ type: Output
175
+ }], longPressFinish: [{
176
+ type: Output
177
+ }], longPressCancel: [{
178
+ type: Output
179
+ }], onPress: [{
180
+ type: HostListener,
181
+ args: ['mousedown', ['$event']]
182
+ }, {
183
+ type: HostListener,
184
+ args: ['touchstart', ['$event']]
185
+ }], onRelease: [{
186
+ type: HostListener,
187
+ args: ['mouseup', ['$event']]
188
+ }, {
189
+ type: HostListener,
190
+ args: ['mouseleave', ['$event']]
191
+ }, {
192
+ type: HostListener,
193
+ args: ['touchend', ['$event']]
194
+ }, {
195
+ type: HostListener,
196
+ args: ['touchcancel', ['$event']]
197
+ }] } });
198
+
199
+ class DirectivesModule {
200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
201
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: DirectivesModule, declarations: [OnlyNumberDirective, LongPressDirective], imports: [CommonModule], exports: [OnlyNumberDirective, LongPressDirective] }); }
202
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DirectivesModule, imports: [CommonModule] }); }
203
+ }
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DirectivesModule, decorators: [{
205
+ type: NgModule,
206
+ args: [{
207
+ imports: [CommonModule],
208
+ declarations: [OnlyNumberDirective, LongPressDirective],
209
+ exports: [OnlyNumberDirective, LongPressDirective],
210
+ }]
211
+ }] });
212
+
213
+ /**
214
+ * Generated bundle index. Do not edit.
215
+ */
216
+
217
+ export { DirectivesModule, LongPressDirective, NoDataComponent, NoDataModule, OnlyNumberDirective };
218
+ //# sourceMappingURL=ngx-universal-zone-ui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-universal-zone-ui.mjs","sources":["../../../projects/ngx-universal-zone/ui/no-data/no-data.component.ts","../../../projects/ngx-universal-zone/ui/no-data/no-data.module.ts","../../../projects/ngx-universal-zone/ui/directives/only-number.directive.ts","../../../projects/ngx-universal-zone/ui/directives/long-ress.directive.ts","../../../projects/ngx-universal-zone/ui/directives/directives.module.ts","../../../projects/ngx-universal-zone/ui/ngx-universal-zone-ui.ts"],"sourcesContent":["import { Component, input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'app-no-data',\n template: `\n <div class=\"data-empty\">\n <div *ngIf=\"iconHtml\" [outerHTML]=\"iconHtml\"></div>\n <p *ngIf=\"message()\">{{ message() }}</p>\n <ng-content></ng-content>\n </div>\n `,\n styles: [\n `\n .data-empty {\n text-align: center;\n padding-top: 20%;\n }\n\n .data-empty svg {\n color: #efefef;\n width: 120px;\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class NoDataComponent implements OnInit {\n icon = input<string>();\n message = input<string>();\n \n iconHtml: SafeHtml;\n constructor(private domSanitizer: DomSanitizer) {}\n\n ngOnInit() {\n let svg = this.icon();\n if(!this.icon()) {\n svg = `<?xml version=\"1.0\" encoding=\"utf-8\"?>\n <svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n viewBox=\"0 0 40 40\" style=\"enable-background:new 0 0 40 40;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill-rule:evenodd;clip-rule:evenodd;}\n </style>\n <g>\n <path d=\"M9,21.8c0,0.4,0.3,0.7,0.6,0.8c0.5,0.1,0.9-0.3,0.9-0.8v-7h6.2V8.4h11.9c1.3,0,2.4,1.1,2.4,2.4v5.8c0,0.5,0.4,0.8,0.9,0.8\n c0.4-0.1,0.6-0.4,0.6-0.8v-5.7c0-2.2-1.8-3.9-3.9-3.9H13.3L9,11.7V21.8z M14,8.4h1.2v4.9h-4.7v-1L14,8.4z\"/>\n <path d=\"M31.7,29.9c-0.4,0.1-0.6,0.4-0.6,0.8v2.2c0,1.3-1.1,2.4-2.4,2.4H12.9c-1.3,0-2.4-1.1-2.4-2.4v-1.5c0-0.5-0.4-0.8-0.9-0.8\n C9.2,30.7,9,31,9,31.4v1.4c0,2.2,1.8,3.9,3.9,3.9h15.7c2.2,0,3.9-1.8,3.9-3.9v-2.2C32.5,30.2,32.1,29.8,31.7,29.9z\"/>\n <path d=\"M8.2,7.5c0.2,0.2,0.3,0.2,0.5,0.2c0.2,0,0.4-0.1,0.6-0.3c0.3-0.3,0.2-0.8-0.1-1.1L5.8,3c-0.3-0.3-0.8-0.3-1.1,0\n C4.5,3.2,4.4,3.7,4.7,4L8.2,7.5z\"/>\n <path d=\"M10.5,4.7C10.6,5,11,5.2,11.3,5.2c0.2,0,0.4-0.1,0.5-0.2C12,4.8,12.1,4.5,12,4.2l-0.8-2.4c-0.1-0.4-0.6-0.7-1.1-0.4\n c-0.3,0.2-0.5,0.6-0.4,1L10.5,4.7z\"/>\n <path d=\"M6.4,8.8L4,8C3.6,7.9,3.1,8.1,3,8.5C2.9,8.9,3.2,9.3,3.6,9.5l2.4,0.8c0.1,0,0.2,0,0.3,0c0.3,0,0.7-0.2,0.8-0.6\n C7,9.3,6.8,9,6.4,8.8z\"/>\n <path d=\"M35.7,19.8c-0.5-0.3-1.1-0.2-1.5,0.2L32,22.3l-2.2-2.2c-0.5-0.5-1.2-0.4-1.7,0c-0.4,0.5-0.4,1.2,0.1,1.6l2.2,2.2l-2.2,2.2\n c-0.4,0.4-0.5,1.1-0.1,1.6c0.2,0.3,0.6,0.4,0.9,0.4c0.3,0,0.6-0.1,0.8-0.3l2.2-2.2l2.3,2.3c0.2,0.2,0.5,0.3,0.8,0.3\n c0.3,0,0.6-0.1,0.9-0.4c0.4-0.5,0.3-1.2-0.1-1.6l-2.3-2.3l2.3-2.3C36.4,21.1,36.3,20.3,35.7,19.8z\"/>\n <path d=\"M10.2,29.4c1.1-0.2,1.9-1.1,2.1-2.1c0.4-1.9-1.3-3.5-3.2-3.2c-1.1,0.2-1.9,1.1-2.1,2.1C6.6,28.2,8.3,29.8,10.2,29.4z\n M8.5,27c-0.2-0.8,0.5-1.5,1.4-1.4c0.4,0.1,0.8,0.5,0.9,0.9c0.2,0.8-0.5,1.5-1.4,1.4C9,27.8,8.6,27.5,8.5,27z\"/>\n <path d=\"M36.8,7.2c-0.7-1.1-2.2-1.1-2.9,0c-0.3,0.5-0.3,1.1,0,1.6c0.3,0.6,0.9,0.8,1.5,0.8s1.1-0.3,1.5-0.8\n C37.1,8.3,37.1,7.7,36.8,7.2z M35.7,8.4c-0.2,0.2-0.5,0.2-0.7,0c-0.2-0.2-0.2-0.5,0-0.7c0.1-0.1,0.2-0.1,0.4-0.1\n c0.1,0,0.3,0,0.4,0.1C35.9,7.8,35.9,8.2,35.7,8.4z\"/>\n </g>\n </svg>`;\n }\n this.iconHtml = this.domSanitizer.bypassSecurityTrustHtml(svg);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NoDataComponent } from './no-data.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [NoDataComponent],\n\n exports: [NoDataComponent],\n})\nexport class NoDataModule {}\n","import { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[onlyNumber]',\r\n standalone: false,\r\n})\r\nexport class OnlyNumberDirective {\r\n constructor() { }\r\n\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n if (event.key === '.') {\r\n event.preventDefault();\r\n }\r\n }\r\n}","import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport { combineLatest, interval, merge, Subscription, timer } from 'rxjs';\r\nimport { map, mapTo, repeat, switchMap, takeUntil, tap } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[longPress]',\r\n standalone: false,\r\n})\r\nexport class LongPressDirective {\r\n constructor(private elRef: ElementRef) {\r\n merge(this.longPressCancel, this.longPressFinish).pipe(\r\n tap(() => {\r\n const ref = this.elRef.nativeElement as HTMLElement;\r\n ref.style.transform = 'scale(1)';\r\n })\r\n ).subscribe();\r\n }\r\n\r\n @Input('longPress')\r\n set duration(v: number | string) {\r\n this._duration = v ? Number(v) : 3000;\r\n }\r\n\r\n @Input('longPressDisabled')\r\n disabled = false;\r\n\r\n @Input('longPressInterval')\r\n set _continuousInterval(v: number) {\r\n this.isContinuous = !!v;\r\n this.continuousInterval = v;\r\n }\r\n\r\n private _duration = 3000;\r\n private isContinuous = false;\r\n private continuousInterval = 0;\r\n\r\n @Output() longPressStart = new EventEmitter<MouseEvent | TouchEvent>();\r\n @Output() longPressFinish = new EventEmitter<MouseEvent | TouchEvent>();\r\n @Output() longPressCancel = new EventEmitter<MouseEvent | TouchEvent>();\r\n\r\n private pressing = false;\r\n private longPressSubscription?: Subscription;\r\n\r\n @HostListener('mousedown', ['$event'])\r\n @HostListener('touchstart', ['$event'])\r\n onPress(event: MouseEvent | TouchEvent) {\r\n if (this.disabled) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const ref = this.elRef.nativeElement as HTMLElement;\r\n ref.style.transform = 'scale(0.95)';\r\n\r\n this.pressing = true;\r\n this.longPressStart.emit(event);\r\n\r\n let obs = timer(this._duration).pipe(map(() => event));\r\n if (this.isContinuous) {\r\n obs = obs.pipe(\r\n tap((event: MouseEvent | TouchEvent) => this.longPressFinish.emit(event)),\r\n switchMap((event) =>\r\n interval(this.continuousInterval)\r\n .pipe(\r\n map(() => event)\r\n )\r\n ),\r\n takeUntil(this.longPressCancel)\r\n );\r\n }\r\n\r\n this.longPressSubscription = obs.subscribe((event) => {\r\n if (this.pressing) {\r\n this.pressing = this.isContinuous;\r\n this.longPressFinish.emit(event);\r\n }\r\n });\r\n }\r\n\r\n @HostListener('mouseup', ['$event'])\r\n @HostListener('mouseleave', ['$event'])\r\n @HostListener('touchend', ['$event'])\r\n @HostListener('touchcancel', ['$event'])\r\n onRelease(event: MouseEvent | TouchEvent) {\r\n this.pressing = false;\r\n if (this.longPressSubscription) {\r\n this.longPressSubscription.unsubscribe();\r\n }\r\n this.longPressCancel.emit(event);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { OnlyNumberDirective } from './only-number.directive';\r\nimport { LongPressDirective } from './long-ress.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [OnlyNumberDirective, LongPressDirective],\r\n exports: [OnlyNumberDirective, LongPressDirective],\r\n})\r\nexport class DirectivesModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}