@acorex/core 7.5.0 → 7.5.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 (65) hide show
  1. package/dateTime/lib/georgian.calendar.d.ts +2 -2
  2. package/esm2022/config/lib/configs.mjs +2 -2
  3. package/esm2022/config/lib/configs.service.mjs +2 -2
  4. package/esm2022/dateTime/lib/calendar.service.mjs +6 -7
  5. package/esm2022/dateTime/lib/dateTime.config.mjs +34 -26
  6. package/esm2022/dateTime/lib/datetime.class.mjs +1 -1
  7. package/esm2022/dateTime/lib/datetime.module.mjs +2 -2
  8. package/esm2022/dateTime/lib/datetime.pipe.mjs +1 -1
  9. package/esm2022/dateTime/lib/georgian.calendar.mjs +40 -44
  10. package/esm2022/dateTime/lib/jalali.calendar.mjs +21 -25
  11. package/esm2022/events/lib/event.service.mjs +4 -4
  12. package/esm2022/file/lib/file-download-ref.class.mjs +1 -1
  13. package/esm2022/file/lib/file-download-result.class.mjs +3 -3
  14. package/esm2022/file/lib/file-upload-ref.class.mjs +1 -1
  15. package/esm2022/file/lib/file.service.mjs +8 -10
  16. package/esm2022/image/lib/image.service.mjs +9 -9
  17. package/esm2022/intl/lib/numbers/number-format-options.mjs +3 -3
  18. package/esm2022/intl/lib/numbers/numbers-utils.mjs +5 -5
  19. package/esm2022/pipes/lib/pipes.module.mjs +2 -2
  20. package/esm2022/pipes/lib/safe.pipe.mjs +15 -9
  21. package/esm2022/translation/lib/translation.module.mjs +1 -1
  22. package/esm2022/translation/lib/translator.pipe.mjs +1 -1
  23. package/esm2022/utils/lib/color-util.mjs +2 -2
  24. package/esm2022/utils/lib/drawing-util.mjs +6 -3
  25. package/esm2022/utils/lib/string-util.mjs +2 -2
  26. package/fesm2022/acorex-core-config.mjs +1 -1
  27. package/fesm2022/acorex-core-config.mjs.map +1 -1
  28. package/fesm2022/acorex-core-dateTime.mjs +240 -241
  29. package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
  30. package/fesm2022/acorex-core-events.mjs +3 -3
  31. package/fesm2022/acorex-core-events.mjs.map +1 -1
  32. package/fesm2022/acorex-core-file.mjs +9 -11
  33. package/fesm2022/acorex-core-file.mjs.map +1 -1
  34. package/fesm2022/acorex-core-image.mjs +8 -8
  35. package/fesm2022/acorex-core-image.mjs.map +1 -1
  36. package/fesm2022/acorex-core-intl.mjs +5 -5
  37. package/fesm2022/acorex-core-intl.mjs.map +1 -1
  38. package/fesm2022/acorex-core-pipes.mjs +14 -8
  39. package/fesm2022/acorex-core-pipes.mjs.map +1 -1
  40. package/fesm2022/acorex-core-translation.mjs.map +1 -1
  41. package/fesm2022/acorex-core-utils.mjs +7 -4
  42. package/fesm2022/acorex-core-utils.mjs.map +1 -1
  43. package/file/lib/file-download-ref.class.d.ts +1 -1
  44. package/image/lib/image.service.d.ts +0 -1
  45. package/intl/lib/numbers/numbers-utils.d.ts +1 -1
  46. package/package.json +1 -7
  47. package/pipes/lib/safe.pipe.d.ts +1 -1
  48. package/esm2022/http/acorex-core-http.mjs +0 -5
  49. package/esm2022/http/index.mjs +0 -7
  50. package/esm2022/http/lib/http-error.class.mjs +0 -2
  51. package/esm2022/http/lib/http-events.interceptor.mjs +0 -3
  52. package/esm2022/http/lib/http-request.class.mjs +0 -2
  53. package/esm2022/http/lib/http-result.class.mjs +0 -21
  54. package/esm2022/http/lib/http.module.mjs +0 -29
  55. package/esm2022/http/lib/http.service.mjs +0 -148
  56. package/fesm2022/acorex-core-http.mjs +0 -201
  57. package/fesm2022/acorex-core-http.mjs.map +0 -1
  58. package/http/README.md +0 -3
  59. package/http/index.d.ts +0 -6
  60. package/http/lib/http-error.class.d.ts +0 -7
  61. package/http/lib/http-events.interceptor.d.ts +0 -10
  62. package/http/lib/http-request.class.d.ts +0 -14
  63. package/http/lib/http-result.class.d.ts +0 -11
  64. package/http/lib/http.module.d.ts +0 -8
  65. package/http/lib/http.service.d.ts +0 -23
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core-image.mjs","sources":["../../../../libs/core/image/src/lib/image.service.ts","../../../../libs/core/image/src/acorex-core-image.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AXImageService {\n constructor() { }\n\n\n async resize(options: { maxSize: number, source: HTMLImageElement | File, type?: 'image/png' | 'image/jpeg' | 'image/webp', quality?: number }): Promise<Blob> {\n options = Object.assign({ type: 'image/png', quality: 1 }, options);\n\n let image: HTMLImageElement;\n if (options.source instanceof File) {\n var a = new Image()\n a.src = URL.createObjectURL(options.source);\n await new Promise<Event>((res) => a.onload = res);\n image = a;\n }\n else {\n image = options.source;\n }\n\n // Resize the image\n var canvas = document.createElement('canvas'),\n width = image.width,\n height = image.height;\n if (width > height) {\n if (width > options.maxSize) {\n height *= options.maxSize / width;\n width = options.maxSize;\n }\n } else {\n if (height > options.maxSize) {\n width *= options.maxSize / height;\n height = options.maxSize;\n }\n }\n canvas.width = width;\n canvas.height = height;\n canvas.getContext('2d').drawImage(image, 0, 0, width, height);\n return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,cAAc,CAAA;AACvB,IAAA,WAAA,GAAA,GAAiB;IAGjB,MAAM,MAAM,CAAC,OAAiI,EAAA;AAC1I,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAEpE,QAAA,IAAI,KAAuB,CAAC;AAC5B,QAAA,IAAI,OAAO,CAAC,MAAM,YAAY,IAAI,EAAE;AAChC,YAAA,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAA;YACnB,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5C,YAAA,MAAM,IAAI,OAAO,CAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;YAClD,KAAK,GAAG,CAAC,CAAC;AACb,SAAA;AACI,aAAA;AACD,YAAA,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1B,SAAA;;QAGD,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EACzC,KAAK,GAAG,KAAK,CAAC,KAAK,EACnB,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,IAAI,KAAK,GAAG,MAAM,EAAE;AAChB,YAAA,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE;AACzB,gBAAA,MAAM,IAAI,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;AAClC,gBAAA,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;AAC3B,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE;AAC1B,gBAAA,KAAK,IAAI,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,gBAAA,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;AAC5B,aAAA;AACJ,SAAA;AACD,QAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,QAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KAC1F;8GArCQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACFlC;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-core-image.mjs","sources":["../../../../libs/core/image/src/lib/image.service.ts","../../../../libs/core/image/src/acorex-core-image.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class AXImageService {\n async resize(options: {\n maxSize: number;\n source: HTMLImageElement | File;\n type?: 'image/png' | 'image/jpeg' | 'image/webp';\n quality?: number;\n }): Promise<Blob> {\n options = Object.assign({ type: 'image/png', quality: 1 }, options);\n\n let image: HTMLImageElement;\n if (options.source instanceof File) {\n const a = new Image();\n a.src = URL.createObjectURL(options.source);\n await new Promise<Event>((res) => (a.onload = res));\n image = a;\n } else {\n image = options.source;\n }\n\n // Resize the image\n const canvas: any = document.createElement('canvas');\n let width = image.width;\n let height = image.height;\n if (width > height) {\n if (width > options.maxSize) {\n height *= options.maxSize / width;\n width = options.maxSize;\n }\n } else {\n if (height > options.maxSize) {\n width *= options.maxSize / height;\n height = options.maxSize;\n }\n }\n canvas.width = width;\n canvas.height = height;\n canvas.getContext('2d').drawImage(image, 0, 0, width, height);\n return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,cAAc,CAAA;IACzB,MAAM,MAAM,CAAC,OAKZ,EAAA;AACC,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAEpE,QAAA,IAAI,KAAuB,CAAC;AAC5B,QAAA,IAAI,OAAO,CAAC,MAAM,YAAY,IAAI,EAAE;AAClC,YAAA,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5C,YAAA,MAAM,IAAI,OAAO,CAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;YACpD,KAAK,GAAG,CAAC,CAAC;AACX,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;AACxB,SAAA;;QAGD,MAAM,MAAM,GAAQ,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,IAAI,KAAK,GAAG,MAAM,EAAE;AAClB,YAAA,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE;AAC3B,gBAAA,MAAM,IAAI,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;AAClC,gBAAA,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;AACzB,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE;AAC5B,gBAAA,KAAK,IAAI,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,gBAAA,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;AAC1B,aAAA;AACF,SAAA;AACD,QAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,QAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KACxF;8GAtCU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAd,cAAc,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;;ACFX;;AAEG;;;;"}
@@ -1,8 +1,8 @@
1
1
  class AXNumberFormatOptions {
2
2
  constructor() {
3
3
  this.scale = 0;
4
- this.thousandsSeparator = ",";
5
- this.fractionalSeparator = ".";
4
+ this.thousandsSeparator = ',';
5
+ this.fractionalSeparator = '.';
6
6
  this.currency = null;
7
7
  this.style = 'number';
8
8
  }
@@ -10,9 +10,9 @@ class AXNumberFormatOptions {
10
10
 
11
11
  const AXDefaultNumberOptions = {
12
12
  scale: 2,
13
- fractionalSeparator: ".",
14
- thousandsSeparator: ",",
15
- style: 'number'
13
+ fractionalSeparator: '.',
14
+ thousandsSeparator: ',',
15
+ style: 'number',
16
16
  };
17
17
  function parseNumberOptions(input) {
18
18
  const pattern = /[cdpn]{1}[0-9]+/;
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core-intl.mjs","sources":["../../../../libs/core/intl/src/lib/numbers/number-format-options.ts","../../../../libs/core/intl/src/lib/numbers/numbers-utils.ts","../../../../libs/core/intl/src/acorex-core-intl.ts"],"sourcesContent":["export class AXNumberFormatOptions {\n\n scale: number = 0;\n\n thousandsSeparator?: string | null = \",\";\n\n fractionalSeparator: string | null = \".\";\n\n currency?: string | null = null;\n\n style: 'currency' | 'percent' | 'number' = 'number';\n}","import { AXNumberFormatOptions } from \"./number-format-options\";\n\nexport const AXDefaultNumberOptions: AXNumberFormatOptions = {\n scale: 2,\n fractionalSeparator: \".\",\n thousandsSeparator: \",\",\n style : 'number'\n}\n\nexport function parseNumberOptions(input: string): AXNumberFormatOptions {\n const pattern = /[cdpn]{1}[0-9]+/;\n if (input?.toLowerCase().match(pattern)) {\n const style = input[0];\n const num = input.substring(1)?.trim() ;\n const scale = num ? Number(num) : AXDefaultNumberOptions.scale;\n const options = new AXNumberFormatOptions();\n switch (style) {\n case 'n':\n options.style = 'number';\n options.scale = scale;\n options.fractionalSeparator = AXDefaultNumberOptions.fractionalSeparator;\n options.thousandsSeparator = AXDefaultNumberOptions.thousandsSeparator;\n break;\n case 'c':\n options.style = 'currency';\n options.scale = scale;\n options.fractionalSeparator = AXDefaultNumberOptions.fractionalSeparator;\n options.thousandsSeparator = AXDefaultNumberOptions.thousandsSeparator;\n break;\n case 'p':\n options.style = 'percent';\n options.scale = scale;\n options.fractionalSeparator = AXDefaultNumberOptions.fractionalSeparator;\n options.thousandsSeparator = AXDefaultNumberOptions.thousandsSeparator;\n break;\n }\n return options;\n }\n return AXDefaultNumberOptions\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"MAAa,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;QAEI,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;QAElB,IAAkB,CAAA,kBAAA,GAAmB,GAAG,CAAC;QAEzC,IAAmB,CAAA,mBAAA,GAAkB,GAAG,CAAC;QAEzC,IAAQ,CAAA,QAAA,GAAmB,IAAI,CAAC;QAEhC,IAAK,CAAA,KAAA,GAAsC,QAAQ,CAAC;KACvD;AAAA;;ACTY,MAAA,sBAAsB,GAA0B;AACzD,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,mBAAmB,EAAE,GAAG;AACxB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,KAAK,EAAG,QAAQ;EACnB;AAEK,SAAU,kBAAkB,CAAC,KAAa,EAAA;IAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC;IAClC,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACrC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAE;AACxC,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC;AAC/D,QAAA,MAAM,OAAO,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAC5C,QAAA,QAAQ,KAAK;AACT,YAAA,KAAK,GAAG;AACJ,gBAAA,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;AACzB,gBAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AACtB,gBAAA,OAAO,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC;AACzE,gBAAA,OAAO,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC;gBACvE,MAAM;AACV,YAAA,KAAK,GAAG;AACJ,gBAAA,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;AAC3B,gBAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AACtB,gBAAA,OAAO,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC;AACzE,gBAAA,OAAO,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC;gBACvE,MAAM;AACV,YAAA,KAAK,GAAG;AACJ,gBAAA,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;AAC1B,gBAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AACtB,gBAAA,OAAO,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC;AACzE,gBAAA,OAAO,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC;gBACvE,MAAM;AACb,SAAA;AACD,QAAA,OAAO,OAAO,CAAC;AAClB,KAAA;AACD,IAAA,OAAO,sBAAsB,CAAA;AACjC;;ACvCA;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-core-intl.mjs","sources":["../../../../libs/core/intl/src/lib/numbers/number-format-options.ts","../../../../libs/core/intl/src/lib/numbers/numbers-utils.ts","../../../../libs/core/intl/src/acorex-core-intl.ts"],"sourcesContent":["export class AXNumberFormatOptions {\n scale: number = 0;\n\n thousandsSeparator?: string | null = ',';\n\n fractionalSeparator: string | null = '.';\n\n currency?: string | null = null;\n\n style: 'currency' | 'percent' | 'number' = 'number';\n}\n","import { AXNumberFormatOptions } from './number-format-options';\n\nexport const AXDefaultNumberOptions: AXNumberFormatOptions = {\n scale: 2,\n fractionalSeparator: '.',\n thousandsSeparator: ',',\n style: 'number',\n};\n\nexport function parseNumberOptions(input: string): AXNumberFormatOptions {\n const pattern = /[cdpn]{1}[0-9]+/;\n if (input?.toLowerCase().match(pattern)) {\n const style = input[0];\n const num = input.substring(1)?.trim();\n const scale = num ? Number(num) : AXDefaultNumberOptions.scale;\n const options = new AXNumberFormatOptions();\n switch (style) {\n case 'n':\n options.style = 'number';\n options.scale = scale;\n options.fractionalSeparator = AXDefaultNumberOptions.fractionalSeparator;\n options.thousandsSeparator = AXDefaultNumberOptions.thousandsSeparator;\n break;\n case 'c':\n options.style = 'currency';\n options.scale = scale;\n options.fractionalSeparator = AXDefaultNumberOptions.fractionalSeparator;\n options.thousandsSeparator = AXDefaultNumberOptions.thousandsSeparator;\n break;\n case 'p':\n options.style = 'percent';\n options.scale = scale;\n options.fractionalSeparator = AXDefaultNumberOptions.fractionalSeparator;\n options.thousandsSeparator = AXDefaultNumberOptions.thousandsSeparator;\n break;\n }\n return options;\n }\n return AXDefaultNumberOptions;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"MAAa,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;QACE,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;QAElB,IAAkB,CAAA,kBAAA,GAAmB,GAAG,CAAC;QAEzC,IAAmB,CAAA,mBAAA,GAAkB,GAAG,CAAC;QAEzC,IAAQ,CAAA,QAAA,GAAmB,IAAI,CAAC;QAEhC,IAAK,CAAA,KAAA,GAAsC,QAAQ,CAAC;KACrD;AAAA;;ACRY,MAAA,sBAAsB,GAA0B;AAC3D,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,mBAAmB,EAAE,GAAG;AACxB,IAAA,kBAAkB,EAAE,GAAG;AACvB,IAAA,KAAK,EAAE,QAAQ;EACf;AAEI,SAAU,kBAAkB,CAAC,KAAa,EAAA;IAC9C,MAAM,OAAO,GAAG,iBAAiB,CAAC;IAClC,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACvC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AACvC,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC;AAC/D,QAAA,MAAM,OAAO,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAC5C,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;AACzB,gBAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AACtB,gBAAA,OAAO,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC;AACzE,gBAAA,OAAO,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC;gBACvE,MAAM;AACR,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;AAC3B,gBAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AACtB,gBAAA,OAAO,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC;AACzE,gBAAA,OAAO,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC;gBACvE,MAAM;AACR,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;AAC1B,gBAAA,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AACtB,gBAAA,OAAO,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC;AACzE,gBAAA,OAAO,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC;gBACvE,MAAM;AACT,SAAA;AACD,QAAA,OAAO,OAAO,CAAC;AAChB,KAAA;AACD,IAAA,OAAO,sBAAsB,CAAC;AAChC;;ACvCA;;AAEG;;;;"}
@@ -1,6 +1,6 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import * as i0 from '@angular/core';
2
3
  import { Pipe, NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
4
  import * as i1 from '@angular/platform-browser';
5
5
 
6
6
  class AXSafePipe {
@@ -11,12 +11,18 @@ class AXSafePipe {
11
11
  if (value == null || value == undefined || value == '')
12
12
  return '';
13
13
  switch (type) {
14
- case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);
15
- case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);
16
- case 'script': return this.sanitizer.bypassSecurityTrustScript(value);
17
- case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);
18
- case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);
19
- default: throw new Error(`Invalid safe type specified: ${type}`);
14
+ case 'html':
15
+ return this.sanitizer.bypassSecurityTrustHtml(value);
16
+ case 'style':
17
+ return this.sanitizer.bypassSecurityTrustStyle(value);
18
+ case 'script':
19
+ return this.sanitizer.bypassSecurityTrustScript(value);
20
+ case 'url':
21
+ return this.sanitizer.bypassSecurityTrustUrl(value);
22
+ case 'resourceUrl':
23
+ return this.sanitizer.bypassSecurityTrustResourceUrl(value);
24
+ default:
25
+ throw new Error(`Invalid safe type specified: ${type}`);
20
26
  }
21
27
  }
22
28
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXSafePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
@@ -26,7 +32,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
26
32
  type: Pipe,
27
33
  args: [{
28
34
  name: 'safe',
29
- pure: true
35
+ pure: true,
30
36
  }]
31
37
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
32
38
 
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core-pipes.mjs","sources":["../../../../libs/core/pipes/src/lib/safe.pipe.ts","../../../../libs/core/pipes/src/lib/pipes.module.ts","../../../../libs/core/pipes/src/acorex-core-pipes.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n\tname: 'safe',\n\tpure: true\n})\nexport class AXSafePipe implements PipeTransform {\n\n\tconstructor(protected sanitizer: DomSanitizer) { }\n\n\tpublic transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n\t\tif (value == null || value == undefined || value == '')\n\t\t\treturn '';\n\t\tswitch (type) {\n\t\t\tcase 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\n\t\t\tcase 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\n\t\t\tcase 'script': return this.sanitizer.bypassSecurityTrustScript(value);\n\t\t\tcase 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\n\t\t\tcase 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\t\t\tdefault: throw new Error(`Invalid safe type specified: ${type}`);\n\t\t}\n\t}\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXSafePipe } from './safe.pipe';\n\n@NgModule({\n declarations: [AXSafePipe],\n imports: [CommonModule],\n exports: [AXSafePipe],\n providers: [],\n})\nexport class AXPipesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAOa,UAAU,CAAA;AAEtB,IAAA,WAAA,CAAsB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAK;IAE3C,SAAS,CAAC,KAAU,EAAE,IAAY,EAAA;QACxC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,EAAE;AACrD,YAAA,OAAO,EAAE,CAAC;AACX,QAAA,QAAQ,IAAI;AACX,YAAA,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAClE,YAAA,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACpE,YAAA,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACtE,YAAA,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAChE,YAAA,KAAK,aAAa,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YAChF,SAAS,MAAM,IAAI,KAAK,CAAC,CAAgC,6BAAA,EAAA,IAAI,CAAE,CAAA,CAAC,CAAC;AACjE,SAAA;KACD;8GAfW,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAV,UAAU,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAE,IAAI;AACV,iBAAA,CAAA;;;MCIY,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,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,aAAa,EALT,YAAA,EAAA,CAAA,UAAU,CACf,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,UAAU,CAAA,EAAA,CAAA,CAAA,EAAA;AAGT,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,aAAa,YAJd,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,UAAU,CAAC;oBAC1B,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,UAAU,CAAC;AACrB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-core-pipes.mjs","sources":["../../../../libs/core/pipes/src/lib/safe.pipe.ts","../../../../libs/core/pipes/src/lib/pipes.module.ts","../../../../libs/core/pipes/src/acorex-core-pipes.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport {\n DomSanitizer,\n SafeHtml,\n SafeResourceUrl,\n SafeScript,\n SafeStyle,\n SafeUrl,\n} from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe',\n pure: true,\n})\nexport class AXSafePipe implements PipeTransform {\n constructor(protected sanitizer: DomSanitizer) {}\n\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n if (value == null || value == undefined || value == '') return '';\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXSafePipe } from './safe.pipe';\n\n@NgModule({\n declarations: [AXSafePipe],\n imports: [CommonModule],\n exports: [AXSafePipe],\n providers: [],\n})\nexport class AXPipesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAca,UAAU,CAAA;AACrB,IAAA,WAAA,CAAsB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;IAE1C,SAAS,CAAC,KAAU,EAAE,IAAY,EAAA;QACvC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,EAAE;AAAE,YAAA,OAAO,EAAE,CAAC;AAClE,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACvD,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACxD,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACzD,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACtD,YAAA,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;AAC9D,YAAA;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAA,CAAE,CAAC,CAAC;AAC3D,SAAA;KACF;8GAnBU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAV,UAAU,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA,CAAA;;;MCHY,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,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,aAAa,EALT,YAAA,EAAA,CAAA,UAAU,CACf,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,UAAU,CAAA,EAAA,CAAA,CAAA,EAAA;AAGT,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,aAAa,YAJd,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,UAAU,CAAC;oBAC1B,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,UAAU,CAAC;AACrB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core-translation.mjs","sources":["../../../../libs/core/translation/src/lib/translator.ts","../../../../libs/core/translation/src/lib/translator.pipe.ts","../../../../libs/core/translation/src/lib/translation.module.ts","../../../../libs/core/translation/src/acorex-core-translation.ts"],"sourcesContent":["import { get } from 'lodash-es';\nimport merge from 'lodash-es/merge';\nimport { Observable, Subject } from 'rxjs';\n\n// @dynamic\nexport class AXTranslator {\n private static lang: string = 'en';\n private static dataChangeSubject = new Subject<any>();\n private static _varsRegx = /((\\$\\{[a-zA-Z_0-9\\.]+\\})+)/gm;\n private static _varNameRegx = /[a-zA-Z_0-9\\.]+/gm;\n\n static get onChange(): Observable<any> {\n return AXTranslator.dataChangeSubject.asObservable();\n }\n\n public static load(lang: string, value: any) {\n if (typeof value === 'object') {\n if (!AXTranslator[`__data__${lang}`]) {\n AXTranslator[`__data__${lang}`] = {};\n }\n AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);\n }\n }\n\n public static use(lang: string) {\n AXTranslator.lang = lang;\n }\n\n public static get(key: string, arg1?: object | string, arg2?: object): string {\n const lang = arg1 && typeof arg1 == 'string' ? arg1 : AXTranslator.lang;\n const params = arg1 && typeof arg1 == 'object' ? arg1 : arg2;\n let result = get(AXTranslator[`__data__${lang}`], key, key);\n const vars = typeof result == 'string' ? result?.match(this._varsRegx) : [];\n if (vars?.length) {\n vars.forEach((v: any) => {\n const varKey = v.match(this._varNameRegx)?.length ? v.match(this._varNameRegx)[0] : null;\n if (varKey) {\n const p = get(params, varKey) || this.get(varKey, lang);\n if (p) {\n result = result.replace(v, p);\n }\n }\n });\n }\n return typeof result == 'string' ? result : JSON.stringify(result);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AXTranslator } from './translator';\n\n@Pipe({ name: 'trans', pure: true })\nexport class AXTranslatorPipe implements PipeTransform {\n transform(value: string, arg1?: object | string, arg2?: object): string {\n return AXTranslator.get(value, arg1, arg2);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXTranslatorPipe } from './translator.pipe';\n\n@NgModule({\n imports: [],\n exports: [AXTranslatorPipe],\n declarations: [AXTranslatorPipe],\n providers: [],\n})\nexport class AXTranslationModule {\n \n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-core-translation.mjs","sources":["../../../../libs/core/translation/src/lib/translator.ts","../../../../libs/core/translation/src/lib/translator.pipe.ts","../../../../libs/core/translation/src/lib/translation.module.ts","../../../../libs/core/translation/src/acorex-core-translation.ts"],"sourcesContent":["import { get } from 'lodash-es';\nimport merge from 'lodash-es/merge';\nimport { Observable, Subject } from 'rxjs';\n\n// @dynamic\nexport class AXTranslator {\n private static lang: string = 'en';\n private static dataChangeSubject = new Subject<any>();\n private static _varsRegx = /((\\$\\{[a-zA-Z_0-9\\.]+\\})+)/gm;\n private static _varNameRegx = /[a-zA-Z_0-9\\.]+/gm;\n\n static get onChange(): Observable<any> {\n return AXTranslator.dataChangeSubject.asObservable();\n }\n\n public static load(lang: string, value: any) {\n if (typeof value === 'object') {\n if (!AXTranslator[`__data__${lang}`]) {\n AXTranslator[`__data__${lang}`] = {};\n }\n AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);\n }\n }\n\n public static use(lang: string) {\n AXTranslator.lang = lang;\n }\n\n public static get(key: string, arg1?: object | string, arg2?: object): string {\n const lang = arg1 && typeof arg1 == 'string' ? arg1 : AXTranslator.lang;\n const params = arg1 && typeof arg1 == 'object' ? arg1 : arg2;\n let result = get(AXTranslator[`__data__${lang}`], key, key);\n const vars = typeof result == 'string' ? result?.match(this._varsRegx) : [];\n if (vars?.length) {\n vars.forEach((v: any) => {\n const varKey = v.match(this._varNameRegx)?.length ? v.match(this._varNameRegx)[0] : null;\n if (varKey) {\n const p = get(params, varKey) || this.get(varKey, lang);\n if (p) {\n result = result.replace(v, p);\n }\n }\n });\n }\n return typeof result == 'string' ? result : JSON.stringify(result);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AXTranslator } from './translator';\n\n@Pipe({ name: 'trans', pure: true })\nexport class AXTranslatorPipe implements PipeTransform {\n transform(value: string, arg1?: object | string, arg2?: object): string {\n return AXTranslator.get(value, arg1, arg2);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXTranslatorPipe } from './translator.pipe';\n\n@NgModule({\n imports: [],\n exports: [AXTranslatorPipe],\n declarations: [AXTranslatorPipe],\n providers: [],\n})\nexport class AXTranslationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -128,7 +128,7 @@ class AXColorUtil {
128
128
  X * 0.051713 - Y * 0.121364 + Z * 1.01153,
129
129
  ];
130
130
  // Apply reverse gamma correction.
131
- rgb = rgb.map((x) => x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055);
131
+ rgb = rgb.map((x) => (x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055));
132
132
  // Bring all negative components to zero.
133
133
  rgb = rgb.map((x) => Math.max(0, x));
134
134
  // If one component is greater than 1, weight components by that value.
@@ -146,7 +146,10 @@ class AXDrawingUtil {
146
146
  static collision(a, b) {
147
147
  const ac = a.getBoundingClientRect();
148
148
  const bc = b.getBoundingClientRect();
149
- if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left && ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {
149
+ if (ac.left < bc.left + bc.width &&
150
+ ac.left + ac.width > bc.left &&
151
+ ac.top < bc.top + bc.height &&
152
+ ac.top + ac.height > bc.top) {
150
153
  return true;
151
154
  }
152
155
  else {
@@ -163,7 +166,7 @@ class AXDrawingUtil {
163
166
  });
164
167
  }
165
168
  static isInRecPoint(pos, rec) {
166
- return pos.x >= rec.left && pos.x <= rec.left + rec.width && pos.y >= rec.top && pos.y <= rec.top + rec.height;
169
+ return (pos.x >= rec.left && pos.x <= rec.left + rec.width && pos.y >= rec.top && pos.y <= rec.top + rec.height);
167
170
  }
168
171
  static convertRemToPixels(rem) {
169
172
  return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);
@@ -209,7 +212,7 @@ class AXStringUtil {
209
212
  let end = start + leftSideString[0].length;
210
213
  return {
211
214
  start,
212
- end
215
+ end,
213
216
  };
214
217
  }
215
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core-utils.mjs","sources":["../../../../libs/core/utils/src/lib/auto-unsubscribe.ts","../../../../libs/core/utils/src/lib/color-util.ts","../../../../libs/core/utils/src/lib/drawing-util.ts","../../../../libs/core/utils/src/lib/html-util.ts","../../../../libs/core/utils/src/lib/string-util.ts","../../../../libs/core/utils/src/acorex-core-utils.ts"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nexport function AXAutoUnsubscriber() {\n return function (constructor) {\n const orig = constructor.prototype.ngOnDestroy;\n constructor.prototype.ngOnDestroy = function () {\n for (const prop in this) {\n const property = this[prop];\n if (typeof property.subscribe === 'function') {\n property.unsubscribe();\n }\n }\n orig.apply();\n };\n };\n}\n\n@Injectable()\nexport class AXUnsubscriber implements OnDestroy {\n private readonly _destroy$ = new Subject<void>();\n\n public readonly takeUntilDestroy = <T>(origin: Observable<T>): Observable<T> =>\n origin.pipe(takeUntil(this._destroy$));\n\n public unsubscribe(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe();\n }\n}\n","export type AXColorMode = 'rgba' | 'hex' | 'hsla' | 'hsva';\n\nimport tinycolor, { ColorInput } from 'tinycolor2';\nimport tinygradient, { Instance } from 'tinygradient';\n\nexport type AXColorFormat = ColorInput;\n\nexport class AXColorUtil {\n static to(color: AXColorFormat, mode: AXColorMode): AXColorFormat {\n const _color = tinycolor(color);\n switch (mode) {\n case 'rgba':\n return _color.toRgb();\n case 'hsla':\n return _color.toHsl();\n case 'hsva':\n return _color.toHsv();\n default:\n return _color.toHex();\n }\n }\n\n static toString(color: AXColorFormat, mode: AXColorMode = null): string {\n const _color = tinycolor(color);\n switch (mode) {\n case 'rgba':\n return _color.toRgbString();\n case 'hsla':\n return _color.toHslString();\n case 'hsva':\n return _color.toHsvString();\n\n case 'hex': {\n const rgba = _color.toRgb();\n return rgba.a != 1 ? _color.toHex8String() : _color.toHexString();\n }\n default: {\n if (typeof color == 'string') {\n if (color.toLowerCase().startsWith('#')) return this.toString(color, 'hex');\n else return this.toString(color, 'rgba');\n } else {\n return this.toString(color, 'rgba');\n }\n }\n }\n }\n\n static isValid(color: AXColorFormat): boolean {\n const _color = tinycolor(color);\n return _color.isValid();\n }\n\n static mix(baseColor: AXColorFormat, hex: AXColorFormat, percentage: number): string {\n return tinycolor.mix(baseColor, hex, percentage).toString('rgb');\n }\n\n static multiply(color1: AXColorFormat, color2: AXColorFormat): string {\n const rgb1 = tinycolor(color1).toRgb();\n const rgb2 = tinycolor(color2).toRgb();\n rgb1.b = Math.floor((rgb1.b * rgb2.b) / 255);\n rgb1.g = Math.floor((rgb1.g * rgb2.g) / 255);\n rgb1.r = Math.floor((rgb1.r * rgb2.r) / 255);\n return tinycolor('rgb ' + rgb1.r + ' ' + rgb1.g + ' ' + rgb1.b).toString('rgb');\n }\n\n static contrastToWhite(color: AXColorFormat): number {\n return tinycolor.readability('#fff', color);\n }\n\n static lighten(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).lighten(percentage);\n }\n\n static darken(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).darken(percentage);\n }\n\n static brighten(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).brighten(percentage);\n }\n\n static saturate(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).saturate(percentage);\n }\n\n static desaturate(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).getLuminance();\n }\n\n static equal(color1: AXColorFormat, color2: AXColorFormat): boolean {\n return tinycolor.equals(color1, color2);\n }\n\n static gradient(values: any[] | { color: any; pos: number }[]): Instance {\n return tinygradient([...values]);\n }\n\n static xyToRgb(vX, vY): string {\n vY = vY || 0.00000000001;\n const Y = 1;\n const X = (Y / vY) * vX;\n const Z = (Y / vY) * (1 - vX - vY);\n\n // Convert to RGB using Wide RGB D65 conversion.\n let rgb = [\n X * 1.656492 - Y * 0.354851 - Z * 0.255038,\n -X * 0.707196 + Y * 1.655397 + Z * 0.036152,\n X * 0.051713 - Y * 0.121364 + Z * 1.01153,\n ];\n\n // Apply reverse gamma correction.\n rgb = rgb.map((x) =>\n x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055\n );\n\n // Bring all negative components to zero.\n rgb = rgb.map((x) => Math.max(0, x));\n\n // If one component is greater than 1, weight components by that value.\n const max = Math.max(...rgb);\n if (max > 1) {\n rgb = rgb.map((x) => x / max);\n }\n\n rgb = rgb.map((x) => Math.round(x * 255));\n\n return 'rgb(' + rgb.join(',') + ')';\n }\n}\n","export interface AXPoint {\n x: number;\n y: number;\n}\n\nexport interface AXBoundingClientRect {\n left?: number;\n top?: number;\n width?: number;\n height?: number;\n bottom?: number;\n right?: number;\n}\n// @dynamic\nexport class AXDrawingUtil {\n static collision(a: HTMLElement, b: HTMLElement): boolean {\n const ac = a.getBoundingClientRect();\n const bc = b.getBoundingClientRect();\n\n if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left && ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {\n return true;\n } else {\n return false;\n }\n }\n\n static isInElementBound(pos: AXPoint, element: HTMLElement): boolean {\n const elBound = element.getBoundingClientRect();\n return AXDrawingUtil.isInRecPoint(pos, {\n left: elBound.x,\n width: elBound.width,\n top: elBound.y,\n height: elBound.height,\n });\n }\n\n static isInRecPoint(pos: AXPoint, rec: AXBoundingClientRect | any): boolean {\n return pos.x >= rec.left && pos.x <= rec.left + rec.width && pos.y >= rec.top && pos.y <= rec.top + rec.height;\n }\n\n static convertRemToPixels(rem: number): number {\n return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);\n }\n}\n","// @dynamic\nexport class AXHtmlUtil {\n static focusElement(element: HTMLElement): HTMLElement {\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n const focusable = element.querySelector<HTMLElement>(list.join(', '));\n if (focusable) {\n focusable.focus();\n return focusable;\n }\n return null;\n }\n static blurElement(element: HTMLElement): HTMLElement {\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n const focusable = element.querySelector<HTMLElement>(list.join(', '));\n if (focusable) {\n focusable.blur();\n return focusable;\n }\n return null;\n }\n\n static hasFocus(element: HTMLElement) {\n return element.matches(':focus-within') || element.matches(':focus');\n }\n}\n","// @dynamic\nexport class AXStringUtil {\n static getWordBoundsAtPosition(str: string, position: number): { start: number, end: number } {\n const isSpace = (c) => /[^a-zA-Z0-9]+/i.test(c);\n let start = position - 1;\n\n while (start >= 0 && !isSpace(str[start])) {\n start -= 1;\n }\n start = Math.max(0, start + 1);\n const leftSideString: any = str.slice(start).match(/[a-zA-Z0-9]+/i);\n start += leftSideString.index;\n let end = start + leftSideString[0].length;\n return {\n start,\n end\n };\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-core-utils.mjs","sources":["../../../../libs/core/utils/src/lib/auto-unsubscribe.ts","../../../../libs/core/utils/src/lib/color-util.ts","../../../../libs/core/utils/src/lib/drawing-util.ts","../../../../libs/core/utils/src/lib/html-util.ts","../../../../libs/core/utils/src/lib/string-util.ts","../../../../libs/core/utils/src/acorex-core-utils.ts"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nexport function AXAutoUnsubscriber() {\n return function (constructor) {\n const orig = constructor.prototype.ngOnDestroy;\n constructor.prototype.ngOnDestroy = function () {\n for (const prop in this) {\n const property = this[prop];\n if (typeof property.subscribe === 'function') {\n property.unsubscribe();\n }\n }\n orig.apply();\n };\n };\n}\n\n@Injectable()\nexport class AXUnsubscriber implements OnDestroy {\n private readonly _destroy$ = new Subject<void>();\n\n public readonly takeUntilDestroy = <T>(origin: Observable<T>): Observable<T> =>\n origin.pipe(takeUntil(this._destroy$));\n\n public unsubscribe(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe();\n }\n}\n","export type AXColorMode = 'rgba' | 'hex' | 'hsla' | 'hsva';\n\nimport tinycolor, { ColorInput } from 'tinycolor2';\nimport tinygradient, { Instance } from 'tinygradient';\n\nexport type AXColorFormat = ColorInput;\n\nexport class AXColorUtil {\n static to(color: AXColorFormat, mode: AXColorMode): AXColorFormat {\n const _color = tinycolor(color);\n switch (mode) {\n case 'rgba':\n return _color.toRgb();\n case 'hsla':\n return _color.toHsl();\n case 'hsva':\n return _color.toHsv();\n default:\n return _color.toHex();\n }\n }\n\n static toString(color: AXColorFormat, mode: AXColorMode = null): string {\n const _color = tinycolor(color);\n switch (mode) {\n case 'rgba':\n return _color.toRgbString();\n case 'hsla':\n return _color.toHslString();\n case 'hsva':\n return _color.toHsvString();\n\n case 'hex': {\n const rgba = _color.toRgb();\n return rgba.a != 1 ? _color.toHex8String() : _color.toHexString();\n }\n default: {\n if (typeof color == 'string') {\n if (color.toLowerCase().startsWith('#')) return this.toString(color, 'hex');\n else return this.toString(color, 'rgba');\n } else {\n return this.toString(color, 'rgba');\n }\n }\n }\n }\n\n static isValid(color: AXColorFormat): boolean {\n const _color = tinycolor(color);\n return _color.isValid();\n }\n\n static mix(baseColor: AXColorFormat, hex: AXColorFormat, percentage: number): string {\n return tinycolor.mix(baseColor, hex, percentage).toString('rgb');\n }\n\n static multiply(color1: AXColorFormat, color2: AXColorFormat): string {\n const rgb1 = tinycolor(color1).toRgb();\n const rgb2 = tinycolor(color2).toRgb();\n rgb1.b = Math.floor((rgb1.b * rgb2.b) / 255);\n rgb1.g = Math.floor((rgb1.g * rgb2.g) / 255);\n rgb1.r = Math.floor((rgb1.r * rgb2.r) / 255);\n return tinycolor('rgb ' + rgb1.r + ' ' + rgb1.g + ' ' + rgb1.b).toString('rgb');\n }\n\n static contrastToWhite(color: AXColorFormat): number {\n return tinycolor.readability('#fff', color);\n }\n\n static lighten(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).lighten(percentage);\n }\n\n static darken(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).darken(percentage);\n }\n\n static brighten(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).brighten(percentage);\n }\n\n static saturate(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).saturate(percentage);\n }\n\n static desaturate(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).getLuminance();\n }\n\n static equal(color1: AXColorFormat, color2: AXColorFormat): boolean {\n return tinycolor.equals(color1, color2);\n }\n\n static gradient(values: any[] | { color: any; pos: number }[]): Instance {\n return tinygradient([...values]);\n }\n\n static xyToRgb(vX, vY): string {\n vY = vY || 0.00000000001;\n const Y = 1;\n const X = (Y / vY) * vX;\n const Z = (Y / vY) * (1 - vX - vY);\n\n // Convert to RGB using Wide RGB D65 conversion.\n let rgb = [\n X * 1.656492 - Y * 0.354851 - Z * 0.255038,\n -X * 0.707196 + Y * 1.655397 + Z * 0.036152,\n X * 0.051713 - Y * 0.121364 + Z * 1.01153,\n ];\n\n // Apply reverse gamma correction.\n rgb = rgb.map((x) => (x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055));\n\n // Bring all negative components to zero.\n rgb = rgb.map((x) => Math.max(0, x));\n\n // If one component is greater than 1, weight components by that value.\n const max = Math.max(...rgb);\n if (max > 1) {\n rgb = rgb.map((x) => x / max);\n }\n\n rgb = rgb.map((x) => Math.round(x * 255));\n\n return 'rgb(' + rgb.join(',') + ')';\n }\n}\n","export interface AXPoint {\n x: number;\n y: number;\n}\n\nexport interface AXBoundingClientRect {\n left?: number;\n top?: number;\n width?: number;\n height?: number;\n bottom?: number;\n right?: number;\n}\n// @dynamic\nexport class AXDrawingUtil {\n static collision(a: HTMLElement, b: HTMLElement): boolean {\n const ac = a.getBoundingClientRect();\n const bc = b.getBoundingClientRect();\n\n if (\n ac.left < bc.left + bc.width &&\n ac.left + ac.width > bc.left &&\n ac.top < bc.top + bc.height &&\n ac.top + ac.height > bc.top\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n static isInElementBound(pos: AXPoint, element: HTMLElement): boolean {\n const elBound = element.getBoundingClientRect();\n return AXDrawingUtil.isInRecPoint(pos, {\n left: elBound.x,\n width: elBound.width,\n top: elBound.y,\n height: elBound.height,\n });\n }\n\n static isInRecPoint(pos: AXPoint, rec: AXBoundingClientRect | any): boolean {\n return (\n pos.x >= rec.left && pos.x <= rec.left + rec.width && pos.y >= rec.top && pos.y <= rec.top + rec.height\n );\n }\n\n static convertRemToPixels(rem: number): number {\n return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);\n }\n}\n","// @dynamic\nexport class AXHtmlUtil {\n static focusElement(element: HTMLElement): HTMLElement {\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n const focusable = element.querySelector<HTMLElement>(list.join(', '));\n if (focusable) {\n focusable.focus();\n return focusable;\n }\n return null;\n }\n static blurElement(element: HTMLElement): HTMLElement {\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n const focusable = element.querySelector<HTMLElement>(list.join(', '));\n if (focusable) {\n focusable.blur();\n return focusable;\n }\n return null;\n }\n\n static hasFocus(element: HTMLElement) {\n return element.matches(':focus-within') || element.matches(':focus');\n }\n}\n","// @dynamic\nexport class AXStringUtil {\n static getWordBoundsAtPosition(str: string, position: number): { start: number; end: number } {\n const isSpace = (c) => /[^a-zA-Z0-9]+/i.test(c);\n let start = position - 1;\n\n while (start >= 0 && !isSpace(str[start])) {\n start -= 1;\n }\n start = Math.max(0, start + 1);\n const leftSideString: any = str.slice(start).match(/[a-zA-Z0-9]+/i);\n start += leftSideString.index;\n let end = start + leftSideString[0].length;\n return {\n start,\n end,\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AXFileDownloadResult } from "./file-download-result.class";
1
+ import { AXFileDownloadResult } from './file-download-result.class';
2
2
  export declare class AXFileDownloadRef extends Promise<AXFileDownloadResult> {
3
3
  abortMethod: () => void;
4
4
  constructor(executor: (resolve: (value?: PromiseLike<AXFileDownloadResult>) => void, reject: (reason?: any) => void) => void);
@@ -1,6 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class AXImageService {
3
- constructor();
4
3
  resize(options: {
5
4
  maxSize: number;
6
5
  source: HTMLImageElement | File;
@@ -1,3 +1,3 @@
1
- import { AXNumberFormatOptions } from "./number-format-options";
1
+ import { AXNumberFormatOptions } from './number-format-options';
2
2
  export declare const AXDefaultNumberOptions: AXNumberFormatOptions;
3
3
  export declare function parseNumberOptions(input: string): AXNumberFormatOptions;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/core",
3
- "version": "7.5.0",
3
+ "version": "7.5.1",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": ">=16.1.0",
@@ -45,12 +45,6 @@
45
45
  "esm": "./esm2022/file/acorex-core-file.mjs",
46
46
  "default": "./fesm2022/acorex-core-file.mjs"
47
47
  },
48
- "./http": {
49
- "types": "./http/index.d.ts",
50
- "esm2022": "./esm2022/http/acorex-core-http.mjs",
51
- "esm": "./esm2022/http/acorex-core-http.mjs",
52
- "default": "./fesm2022/acorex-core-http.mjs"
53
- },
54
48
  "./image": {
55
49
  "types": "./image/index.d.ts",
56
50
  "esm2022": "./esm2022/image/acorex-core-image.mjs",
@@ -1,5 +1,5 @@
1
1
  import { PipeTransform } from '@angular/core';
2
- import { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';
2
+ import { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class AXSafePipe implements PipeTransform {
5
5
  protected sanitizer: DomSanitizer;
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9odHRwL3NyYy9hY29yZXgtY29yZS1odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,7 +0,0 @@
1
- export * from './lib/http-error.class';
2
- export * from './lib/http-events.interceptor';
3
- export * from './lib/http-request.class';
4
- export * from './lib/http-result.class';
5
- export * from './lib/http.module';
6
- export * from './lib/http.service';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvaHR0cC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9odHRwLWVycm9yLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2h0dHAtZXZlbnRzLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2h0dHAtcmVxdWVzdC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9odHRwLXJlc3VsdC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9odHRwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9odHRwLnNlcnZpY2UnO1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9odHRwL3NyYy9saWIvaHR0cC1lcnJvci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJSHR0cEVycm9yIHtcbiAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgIHN0YXR1cz86IG51bWJlcjtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIGhhbmRsZWQ6IGJvb2xlYW47XG4gICAgZXJyb3I6IGFueSB8IG51bGxcbn0iXX0=
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const AX_HTTP_EVENT_INTERCEPTOR = new InjectionToken('ax.http.events');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1ldmVudHMuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvaHR0cC9zcmMvbGliL2h0dHAtZXZlbnRzLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQXlCLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSHR0cEVycm9yIH0gZnJvbSAnLi9odHRwLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEh0dHBSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IEFYX0hUVFBfRVZFTlRfSU5URVJDRVBUT1IgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhIdHRwRXZlbnRJbnRlcmNlcHRvcj4oJ2F4Lmh0dHAuZXZlbnRzJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhIdHRwRXZlbnRJbnRlcmNlcHRvciB7XG4gICAgYmVnaW4ocmVxdWVzdDogQVhIdHRwUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPEFYSHR0cFJlcXVlc3RPcHRpb25zPjtcbiAgICBzdWNjZXNzKHJlcXVlc3Q6IEFYSHR0cFJlcXVlc3RPcHRpb25zLCByZXN1bHQ6IGFueSk6IFByb21pc2U8YW55PjtcbiAgICBjb21wbGV0ZShyZXF1ZXN0OiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyk7XG4gICAgZXJyb3IocmVxdWVzdDogQVhIdHRwUmVxdWVzdE9wdGlvbnMsIGVycm9yOiBJSHR0cEVycm9yKTtcbn1cblxuXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2h0dHAvc3JjL2xpYi9odHRwLXJlcXVlc3QuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQVhIdHRwUmVxdWVzdE9wdGlvbnMge1xuICAgIHVybD86IGFueSxcbiAgICBwYXJhbXM/OiB7XG4gICAgICAgIFtwYXJhbTogc3RyaW5nXTogYW55O1xuICAgIH0sXG4gICAgYm9keT86IHtcbiAgICAgICAgW3BhcmFtOiBzdHJpbmddOiBhbnk7XG4gICAgfSxcbiAgICBoZWFkZXJzPzoge1xuICAgICAgICBbaGVhZGVyOiBzdHJpbmddOiBhbnk7XG4gICAgfSxcbiAgICBtZXRob2Q/OiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZSc7XG4gICAgcmVzcG9uc2VUeXBlPzogYW55O1xufSJdfQ==
@@ -1,21 +0,0 @@
1
- export class HttpResult {
2
- constructor(executor) {
3
- this._executor = executor;
4
- setTimeout(() => {
5
- this._executor(this.resultAction, this.errorAction, this.completeAction);
6
- }, 50);
7
- }
8
- result(action) {
9
- this.resultAction = action;
10
- return this;
11
- }
12
- error(action) {
13
- this.errorAction = action;
14
- return this;
15
- }
16
- complete(action) {
17
- this.completeAction = action;
18
- return this;
19
- }
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXN1bHQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvaHR0cC9zcmMvbGliL2h0dHAtcmVzdWx0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxVQUFVO0lBRW5CLFlBQ0ksUUFJUztRQUVULElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0UsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQU1ELE1BQU0sQ0FBQyxNQUF1QjtRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQWdDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxRQUFRLENBQUMsTUFBa0I7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUh0dHBFcnJvciB9IGZyb20gJy4vaHR0cC1lcnJvci5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBIdHRwUmVzdWx0PFQ+IHtcbiAgICBwcml2YXRlIF9leGVjdXRvcjogKHJlc3VsdDogKGU/OiBUKSA9PiB2b2lkLCBlcnJvcjogKGU/OiBJSHR0cEVycm9yKSA9PiB2b2lkLCBjb21wbGV0ZTogKCkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZXhlY3V0b3I6IChcbiAgICAgICAgICAgIHJlc3VsdDogKGU/OiBUKSA9PiB2b2lkLFxuICAgICAgICAgICAgZXJyb3I6IChlPzogSUh0dHBFcnJvcikgPT4gdm9pZCxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB2b2lkXG4gICAgICAgICkgPT4gdm9pZFxuICAgICkge1xuICAgICAgICB0aGlzLl9leGVjdXRvciA9IGV4ZWN1dG9yO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2V4ZWN1dG9yKHRoaXMucmVzdWx0QWN0aW9uLCB0aGlzLmVycm9yQWN0aW9uLCB0aGlzLmNvbXBsZXRlQWN0aW9uKTtcbiAgICAgICAgfSwgNTApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzdWx0QWN0aW9uOiAoZT86IFQpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBlcnJvckFjdGlvbjogKGU/OiBJSHR0cEVycm9yKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgY29tcGxldGVBY3Rpb246ICgpID0+IHZvaWQ7XG5cbiAgICByZXN1bHQoYWN0aW9uOiAoZT86IFQpID0+IHZvaWQpOiBIdHRwUmVzdWx0PFQ+IHsgXG4gICAgICAgIHRoaXMucmVzdWx0QWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZXJyb3IoYWN0aW9uOiAoZT86IElIdHRwRXJyb3IpID0+IHZvaWQpOiBIdHRwUmVzdWx0PFQ+IHtcbiAgICAgICAgdGhpcy5lcnJvckFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGNvbXBsZXRlKGFjdGlvbjogKCkgPT4gdm9pZCk6IEh0dHBSZXN1bHQ8VD4ge1xuICAgICAgICB0aGlzLmNvbXBsZXRlQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59Il19
@@ -1,29 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { HttpClientModule } from '@angular/common/http';
4
- import { AXHttpService } from './http.service';
5
- import * as i0 from "@angular/core";
6
- export class AXHttpModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXHttpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXHttpModule, imports: [CommonModule,
9
- HttpClientModule], exports: [HttpClientModule] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXHttpModule, providers: [
11
- AXHttpService
12
- ], imports: [CommonModule,
13
- HttpClientModule, HttpClientModule] }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXHttpModule, decorators: [{
16
- type: NgModule,
17
- args: [{
18
- declarations: [],
19
- imports: [
20
- CommonModule,
21
- HttpClientModule
22
- ],
23
- exports: [HttpClientModule],
24
- providers: [
25
- AXHttpService
26
- ]
27
- }]
28
- }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvaHR0cC9zcmMvbGliL2h0dHAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBYy9DLE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7K0dBQVosWUFBWSxZQVJyQixZQUFZO1lBQ1osZ0JBQWdCLGFBRVIsZ0JBQWdCOytHQUtmLFlBQVksYUFKWjtZQUNULGFBQWE7U0FDZCxZQU5DLFlBQVk7WUFDWixnQkFBZ0IsRUFFUixnQkFBZ0I7OzJGQUtmLFlBQVk7a0JBWHhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLFNBQVMsRUFBRTt3QkFDVCxhQUFhO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVhIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW0h0dHBDbGllbnRNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBBWEh0dHBTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQVhIdHRwTW9kdWxlIHtcbiAgLy8gc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gIC8vICAgcmV0dXJuIHtcbiAgLy8gICAgIG5nTW9kdWxlOiBBWEh0dHBNb2R1bGUsXG4gIC8vICAgICBwcm92aWRlcnM6IFtBWEh0dHBTZXJ2aWNlXVxuICAvLyAgIH07XG4gIC8vIH1cbn0iXX0=
@@ -1,148 +0,0 @@
1
- import { Injectable, Injector } from '@angular/core';
2
- import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
3
- import { HttpResult } from './http-result.class';
4
- import { AX_HTTP_EVENT_INTERCEPTOR } from './http-events.interceptor';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- // import { catchError, retry, retryWhen, mergeMap, delay, switchMap, scan, takeWhile, flatMap } from 'rxjs/operators';
8
- // import { of, concat, throwError } from 'rxjs';
9
- export class AXHttpService {
10
- constructor(http, injector) {
11
- this.http = http;
12
- this.injector = injector;
13
- this.interceptor = this.injector.get(AX_HTTP_EVENT_INTERCEPTOR);
14
- }
15
- get(url, config = {}) {
16
- config.url = url;
17
- config.method = "get";
18
- return this.request(config);
19
- }
20
- post(url, config = {}) {
21
- config.url = url;
22
- config.method = "post";
23
- return this.request(config);
24
- }
25
- delete(url, config = {}) {
26
- config.url = url;
27
- config.method = "delete";
28
- return this.request(config);
29
- }
30
- put(url, config = {}) {
31
- config.url = url;
32
- config.method = "put";
33
- return this.request(config);
34
- }
35
- request(config) {
36
- return new HttpResult((result, error, complete) => {
37
- this.handleBegin(config).then(c => {
38
- this.http
39
- //TODO: check ts error
40
- //@ts-ignore
41
- .request(config.method, config.url, this.mapOptions(config))
42
- //.pipe(this.retry)
43
- .subscribe(data => {
44
- this.handleResult(data, result, complete, config);
45
- }, c => {
46
- this.handleError(c, error, complete, config);
47
- });
48
- });
49
- });
50
- }
51
- handleResult(data, result, complete, config) {
52
- if (this.interceptor) {
53
- this.interceptor.success(config, data).then(c => {
54
- if (result)
55
- result(c);
56
- this.handleComplete(complete, config);
57
- });
58
- }
59
- else {
60
- //
61
- if (result)
62
- result(data);
63
- this.handleComplete(complete, config);
64
- }
65
- }
66
- handleBegin(config) {
67
- return new Promise((resolve) => {
68
- if (!config.headers)
69
- config.headers = {};
70
- if (!config.params)
71
- config.params = {};
72
- //
73
- if (this.interceptor) {
74
- this.interceptor.begin(config).then(c => {
75
- resolve(c);
76
- });
77
- }
78
- else {
79
- resolve(config);
80
- }
81
- });
82
- }
83
- handleComplete(complete, config) {
84
- if (complete)
85
- complete();
86
- if (this.interceptor)
87
- this.interceptor.complete(config);
88
- }
89
- handleError(c, error, complete, config) {
90
- let r = {
91
- message: c.message,
92
- status: c.status,
93
- code: c.status?.toString(),
94
- handled: false,
95
- error: c.error
96
- };
97
- if (error) {
98
- error(r);
99
- }
100
- if (!r.handled) {
101
- if (this.interceptor)
102
- this.interceptor.error(config, r);
103
- }
104
- this.handleComplete(complete, config);
105
- }
106
- mapOptions(options) {
107
- let headers = new HttpHeaders();
108
- for (const key in options.headers) {
109
- if (options.headers.hasOwnProperty(key)) {
110
- const value = options.headers[key];
111
- headers = headers.set(key, value);
112
- }
113
- }
114
- let params = new HttpParams();
115
- for (const key in options.params) {
116
- if (options.params.hasOwnProperty(key)) {
117
- const value = options.params[key];
118
- params = params.set(key, value);
119
- }
120
- }
121
- return {
122
- headers: headers,
123
- params: params,
124
- body: options.body,
125
- responseType: options.responseType || 'json'
126
- };
127
- // if (options.method == "get") {
128
- // return {
129
- // headers: headers,
130
- // params: params
131
- // };
132
- // }
133
- // else {
134
- // return {
135
- // headers: headers,
136
- // params: params,
137
- // body: options.body
138
- // };
139
- // }
140
- }
141
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXHttpService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
142
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXHttpService, providedIn: 'root' }); }
143
- }
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXHttpService, decorators: [{
145
- type: Injectable,
146
- args: [{ providedIn: 'root' }]
147
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }]; } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2h0dHAvc3JjL2xpYi9odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRCxPQUFPLEVBQ0gseUJBQXlCLEVBQzVCLE1BQU0sMkJBQTJCLENBQUM7OztBQUNuQyx1SEFBdUg7QUFDdkgsaURBQWlEO0FBSWpELE1BQU0sT0FBTyxhQUFhO0lBR3RCLFlBQW9CLElBQWdCLEVBQVUsUUFBa0I7UUFBNUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDNUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFHRCxHQUFHLENBQUksR0FBVyxFQUFFLFNBQStCLEVBQUU7UUFDakQsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDakIsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLENBQUksR0FBVyxFQUFFLFNBQStCLEVBQUU7UUFDbEQsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDakIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxN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QUFBO2FBQ3BDO1NBQ0o7UUFDRCxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzlCLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUM5QixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDbkM7U0FDSjtRQUNELE9BQU87WUFDSCxPQUFPLEVBQUUsT0FBTztZQUNoQixNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVksSUFBSSxNQUFNO1NBQy9DLENBQUM7UUFDRixpQ0FBaUM7UUFDakMsZUFBZTtRQUNmLDRCQUE0QjtRQUM1Qix5QkFBeUI7UUFDekIsU0FBUztRQUNULElBQUk7UUFDSixTQUFTO1FBQ1QsZUFBZTtRQUNmLDRCQUE0QjtRQUM1QiwwQkFBMEI7UUFDMUIsNkJBQTZCO1FBQzdCLFNBQVM7UUFDVCxJQUFJO0lBQ1IsQ0FBQzs4R0FqSlEsYUFBYTtrSEFBYixhQUFhLGNBREEsTUFBTTs7MkZBQ25CLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIEluamVjdEZsYWdzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcywgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBIdHRwUmVzdWx0IH0gZnJvbSAnLi9odHRwLXJlc3VsdC5jbGFzcyc7XG5pbXBvcnQgeyBJSHR0cEVycm9yIH0gZnJvbSAnLi9odHRwLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IEFYSHR0cFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi9odHRwLXJlcXVlc3QuY2xhc3MnO1xuaW1wb3J0IHtcbiAgICBBWF9IVFRQX0VWRU5UX0lOVEVSQ0VQVE9SLCBBWEh0dHBFdmVudEludGVyY2VwdG9yXG59IGZyb20gJy4vaHR0cC1ldmVudHMuaW50ZXJjZXB0b3InO1xuLy8gaW1wb3J0IHsgY2F0Y2hFcnJvciwgcmV0cnksIHJldHJ5V2hlbiwgbWVyZ2VNYXAsIGRlbGF5LCBzd2l0Y2hNYXAsIHNjYW4sIHRha2VXaGlsZSwgZmxhdE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbi8vIGltcG9ydCB7IG9mLCBjb25jYXQsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYSHR0cFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBpbnRlcmNlcHRvcjogQVhIdHRwRXZlbnRJbnRlcmNlcHRvcjtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHRoaXMuaW50ZXJjZXB0b3IgPSB0aGlzLmluamVjdG9yLmdldChBWF9IVFRQX0VWRU5UX0lOVEVSQ0VQVE9SKTtcbiAgICB9XG5cblxuICAgIGdldDxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XG4gICAgICAgIGNvbmZpZy51cmwgPSB1cmw7XG4gICAgICAgIGNvbmZpZy5tZXRob2QgPSBcImdldFwiO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgcG9zdDxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XG4gICAgICAgIGNvbmZpZy51cmwgPSB1cmw7XG4gICAgICAgIGNvbmZpZy5tZXRob2QgPSBcInBvc3RcIjtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdChjb25maWcpO1xuICAgIH1cblxuICAgIGRlbGV0ZTxUPih1cmw6IHN0cmluZywgY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cFJlc3VsdDxUPiB7XG4gICAgICAgIGNvbmZpZy51cmwgPSB1cmw7XG4gICAgICAgIGNvbmZpZy5tZXRob2QgPSBcImRlbGV0ZVwiO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHV0PFQ+KHVybDogc3RyaW5nLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zID0ge30pOiBIdHRwUmVzdWx0PFQ+IHtcbiAgICAgICAgY29uZmlnLnVybCA9IHVybDtcbiAgICAgICAgY29uZmlnLm1ldGhvZCA9IFwicHV0XCI7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoY29uZmlnKTtcbiAgICB9XG5cblxuICAgIHJlcXVlc3Q8VD4oY29uZmlnOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucyk6IEh0dHBSZXN1bHQ8VD4ge1xuICAgICAgICByZXR1cm4gbmV3IEh0dHBSZXN1bHQ8VD4oKHJlc3VsdD8sIGVycm9yPywgY29tcGxldGU/KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUJlZ2luKGNvbmZpZykudGhlbihjID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayB0cyBlcnJvclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgLnJlcXVlc3Q8VD4oY29uZmlnLm1ldGhvZCwgY29uZmlnLnVybCwgdGhpcy5tYXBPcHRpb25zKGNvbmZpZykpXG4gICAgICAgICAgICAgICAgICAgIC8vLnBpcGUodGhpcy5yZXRyeSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzdWx0KGRhdGEsIHJlc3VsdCwgY29tcGxldGUsIGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIH0sIGMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihjLCBlcnJvciwgY29tcGxldGUsIGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGhhbmRsZVJlc3VsdChkYXRhLCByZXN1bHQsIGNvbXBsZXRlLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKSB7XG4gICAgICAgIGlmICh0aGlzLmludGVyY2VwdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmludGVyY2VwdG9yLnN1Y2Nlc3MoY29uZmlnLCBkYXRhKS50aGVuKGMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdChjKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlLCBjb25maWcpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgaWYgKHJlc3VsdClcbiAgICAgICAgICAgICAgICByZXN1bHQoZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlLCBjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVCZWdpbihjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTxBWEh0dHBSZXF1ZXN0T3B0aW9ucz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGlmICghY29uZmlnLmhlYWRlcnMpXG4gICAgICAgICAgICAgICAgY29uZmlnLmhlYWRlcnMgPSB7fTtcbiAgICAgICAgICAgIGlmICghY29uZmlnLnBhcmFtcylcbiAgICAgICAgICAgICAgICBjb25maWcucGFyYW1zID0ge307XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgaWYgKHRoaXMuaW50ZXJjZXB0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyY2VwdG9yLmJlZ2luKGNvbmZpZykudGhlbihjID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShjKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoY29uZmlnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ29tcGxldGUoY29tcGxldGU6IEZ1bmN0aW9uLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKSB7XG4gICAgICAgIGlmIChjb21wbGV0ZSlcbiAgICAgICAgICAgIGNvbXBsZXRlKCk7XG4gICAgICAgIGlmICh0aGlzLmludGVyY2VwdG9yKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmNlcHRvci5jb21wbGV0ZShjb25maWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IoYzogSHR0cEVycm9yUmVzcG9uc2UsIGVycm9yOiBGdW5jdGlvbiwgY29tcGxldGU6IEZ1bmN0aW9uLCBjb25maWc6IEFYSHR0cFJlcXVlc3RPcHRpb25zKSB7XG4gICAgICAgIGxldCByOiBJSHR0cEVycm9yID0ge1xuICAgICAgICAgICAgbWVzc2FnZTogYy5tZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBjLnN0YXR1cyxcbiAgICAgICAgICAgIGNvZGU6IGMuc3RhdHVzPy50b1N0cmluZygpLFxuICAgICAgICAgICAgaGFuZGxlZDogZmFsc2UsXG4gICAgICAgICAgICBlcnJvcjogYy5lcnJvclxuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgZXJyb3Iocik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyLmhhbmRsZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmludGVyY2VwdG9yKVxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJjZXB0b3IuZXJyb3IoY29uZmlnLCByKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZUNvbXBsZXRlKGNvbXBsZXRlLCBjb25maWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFwT3B0aW9ucyhvcHRpb25zOiBBWEh0dHBSZXF1ZXN0T3B0aW9ucykge1xuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9wdGlvbnMuaGVhZGVycykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuaGVhZGVycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zLmhlYWRlcnNba2V5XTtcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb3B0aW9ucy5wYXJhbXMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnBhcmFtcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zLnBhcmFtc1trZXldO1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgICAgIGJvZHk6IG9wdGlvbnMuYm9keSxcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogb3B0aW9ucy5yZXNwb25zZVR5cGUgfHwgJ2pzb24nXG4gICAgICAgIH07XG4gICAgICAgIC8vIGlmIChvcHRpb25zLm1ldGhvZCA9PSBcImdldFwiKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4ge1xuICAgICAgICAvLyAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgIC8vICAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgICAgLy8gICAgIH07XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4ge1xuICAgICAgICAvLyAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgIC8vICAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICAgIC8vICAgICAgICAgYm9keTogb3B0aW9ucy5ib2R5XG4gICAgICAgIC8vICAgICB9O1xuICAgICAgICAvLyB9XG4gICAgfVxuXG59Il19