@c80/ui 1.0.42 → 1.0.45

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 (84) hide show
  1. package/c80-ui.d.ts +5 -0
  2. package/esm2022/c80-ui.js +5 -0
  3. package/esm2022/c80-ui.js.map +1 -0
  4. package/esm2022/index.js +6 -0
  5. package/esm2022/index.js.map +1 -0
  6. package/esm2022/lib/card-level/card-level.component.js +56 -0
  7. package/esm2022/lib/card-level/card-level.component.js.map +1 -0
  8. package/esm2022/lib/card-level/card-level.interface.js +2 -0
  9. package/esm2022/lib/card-level/card-level.interface.js.map +1 -0
  10. package/esm2022/lib/card-level/index.js +3 -0
  11. package/esm2022/lib/card-level/index.js.map +1 -0
  12. package/esm2022/lib/icon/icon.component.js +48 -0
  13. package/esm2022/lib/icon/icon.component.js.map +1 -0
  14. package/esm2022/lib/icon/icon.constants.js +237 -0
  15. package/esm2022/lib/icon/icon.constants.js.map +1 -0
  16. package/esm2022/lib/icon/icon.types.js +2 -0
  17. package/esm2022/lib/icon/icon.types.js.map +1 -0
  18. package/esm2022/lib/icon/icon.utils.js +4 -0
  19. package/esm2022/lib/icon/icon.utils.js.map +1 -0
  20. package/esm2022/lib/icon/index.js +4 -0
  21. package/esm2022/lib/icon/index.js.map +1 -0
  22. package/esm2022/lib/modal/index.js +3 -0
  23. package/esm2022/lib/modal/index.js.map +1 -0
  24. package/esm2022/lib/modal/modal.component.js +86 -0
  25. package/esm2022/lib/modal/modal.component.js.map +1 -0
  26. package/esm2022/lib/modal/modal.service.js +83 -0
  27. package/esm2022/lib/modal/modal.service.js.map +1 -0
  28. package/esm2022/lib/stat-card/index.js +2 -0
  29. package/esm2022/lib/stat-card/index.js.map +1 -0
  30. package/esm2022/lib/stat-card/stat-card.component.js +13 -0
  31. package/esm2022/lib/stat-card/stat-card.component.js.map +1 -0
  32. package/esm2022/lib/table/index.js +9 -0
  33. package/esm2022/lib/table/index.js.map +1 -0
  34. package/esm2022/lib/table/table-column-visibility.service.js +105 -0
  35. package/esm2022/lib/table/table-column-visibility.service.js.map +1 -0
  36. package/esm2022/lib/table/table-crud-state.service.js +115 -0
  37. package/esm2022/lib/table/table-crud-state.service.js.map +1 -0
  38. package/esm2022/lib/table/table-data-converter.service.js +145 -0
  39. package/esm2022/lib/table/table-data-converter.service.js.map +1 -0
  40. package/esm2022/lib/table/table-data-utils.service.js +193 -0
  41. package/esm2022/lib/table/table-data-utils.service.js.map +1 -0
  42. package/esm2022/lib/table/table-selection.service.js +121 -0
  43. package/esm2022/lib/table/table-selection.service.js.map +1 -0
  44. package/esm2022/lib/table/table.component.js +413 -0
  45. package/esm2022/lib/table/table.component.js.map +1 -0
  46. package/esm2022/lib/table/table.types.js +5 -0
  47. package/esm2022/lib/table/table.types.js.map +1 -0
  48. package/esm2022/lib/table/table.utils.js +107 -0
  49. package/esm2022/lib/table/table.utils.js.map +1 -0
  50. package/lib/icon/icon.component.d.ts +1 -1
  51. package/lib/modal/index.d.ts +2 -3
  52. package/lib/stat-card/stat-card.component.d.ts +2 -2
  53. package/lib/table/index.d.ts +1 -0
  54. package/lib/table/table-column-visibility.service.d.ts +17 -35
  55. package/lib/table/table-crud-state.service.d.ts +10 -27
  56. package/lib/table/table-data-utils.service.d.ts +15 -5
  57. package/lib/table/table-selection.service.d.ts +19 -18
  58. package/lib/table/table.component.d.ts +123 -98
  59. package/lib/table/table.types.d.ts +25 -2
  60. package/lib/table/table.utils.d.ts +42 -0
  61. package/package.json +7 -9
  62. package/esm2022/c80-ui.mjs +0 -5
  63. package/esm2022/index.mjs +0 -6
  64. package/esm2022/lib/card-level/card-level.component.mjs +0 -57
  65. package/esm2022/lib/card-level/card-level.interface.mjs +0 -2
  66. package/esm2022/lib/card-level/index.mjs +0 -3
  67. package/esm2022/lib/icon/icon.component.mjs +0 -49
  68. package/esm2022/lib/icon/icon.constants.mjs +0 -237
  69. package/esm2022/lib/icon/icon.types.mjs +0 -2
  70. package/esm2022/lib/icon/icon.utils.mjs +0 -4
  71. package/esm2022/lib/icon/index.mjs +0 -4
  72. package/esm2022/lib/modal/index.mjs +0 -3
  73. package/esm2022/lib/modal/modal.component.mjs +0 -86
  74. package/esm2022/lib/modal/modal.service.mjs +0 -83
  75. package/esm2022/lib/stat-card/index.mjs +0 -2
  76. package/esm2022/lib/stat-card/stat-card.component.mjs +0 -16
  77. package/esm2022/lib/table/index.mjs +0 -8
  78. package/esm2022/lib/table/table-column-visibility.service.mjs +0 -156
  79. package/esm2022/lib/table/table-crud-state.service.mjs +0 -186
  80. package/esm2022/lib/table/table-data-converter.service.mjs +0 -145
  81. package/esm2022/lib/table/table-data-utils.service.mjs +0 -166
  82. package/esm2022/lib/table/table-selection.service.mjs +0 -138
  83. package/esm2022/lib/table/table.component.mjs +0 -476
  84. package/esm2022/lib/table/table.types.mjs +0 -5
package/c80-ui.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@c80/ui" />
5
+ export * from './index';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=c80-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c80-ui.js","sourceRoot":"","sources":["../../../libs/ui/src/c80-ui.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
@@ -0,0 +1,6 @@
1
+ export * from './lib/table';
2
+ export * from './lib/icon';
3
+ export * from './lib/stat-card';
4
+ export * from './lib/card-level';
5
+ export * from './lib/modal';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/ui/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC","sourcesContent":["export * from './lib/table';\nexport * from './lib/icon';\nexport * from './lib/stat-card';\nexport * from './lib/card-level';\nexport * from './lib/modal';\n"]}
@@ -0,0 +1,56 @@
1
+ import { Component, input, computed } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CardLevelComponent {
4
+ cardLevelData = input.required(...(ngDevMode ? [{ debugName: "cardLevelData" }] : []));
5
+ size = input(1, ...(ngDevMode ? [{ debugName: "size" }] : [])); // Multiplicador del tamaño base (220px)
6
+ _generatedId;
7
+ get generatedId() {
8
+ if (!this._generatedId) {
9
+ const label = this.cardLevelData().label.toLowerCase().replaceAll(/\s+/g, '-');
10
+ const randomNum = Math.floor(Math.random() * 10000);
11
+ this._generatedId = `${label}-${randomNum}`;
12
+ }
13
+ return this._generatedId;
14
+ }
15
+ get cardWidth() {
16
+ const baseWidth = 140;
17
+ const calculatedWidth = baseWidth * this.size();
18
+ return `${calculatedWidth}px`;
19
+ }
20
+ // Detecta si el rango es bidireccional (min negativo, max positivo)
21
+ isBidirectional = computed(() => {
22
+ const data = this.cardLevelData();
23
+ return data.min < 0 && data.max > 0;
24
+ }, ...(ngDevMode ? [{ debugName: "isBidirectional" }] : []));
25
+ // Calcula el porcentaje de fill para barras bidireccionales
26
+ bidirectionalFillPercent = computed(() => {
27
+ const data = this.cardLevelData();
28
+ const totalRange = data.max - data.min;
29
+ return Math.abs(data.value / totalRange) * 100;
30
+ }, ...(ngDevMode ? [{ debugName: "bidirectionalFillPercent" }] : []));
31
+ // Determina la dirección del fill (left/right)
32
+ fillDirection = computed(() => {
33
+ return this.cardLevelData().value >= 0 ? 'right' : 'left';
34
+ }, ...(ngDevMode ? [{ debugName: "fillDirection" }] : []));
35
+ // Color según el valor y umbrales
36
+ fillColor = computed(() => {
37
+ const data = this.cardLevelData();
38
+ const absValue = Math.abs(data.value);
39
+ const absHigh = Math.abs(data.high);
40
+ const absLow = Math.abs(data.low);
41
+ if (absValue >= absHigh) {
42
+ return 'var(--color-danger)';
43
+ }
44
+ if (absValue >= absLow) {
45
+ return 'var(--color-warning)';
46
+ }
47
+ return 'var(--color-success)';
48
+ }, ...(ngDevMode ? [{ debugName: "fillColor" }] : []));
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CardLevelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: CardLevelComponent, isStandalone: true, selector: "c80-card-level", inputs: { cardLevelData: { classPropertyName: "cardLevelData", publicName: "cardLevelData", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"card-level-container\" [style.width]=\"cardWidth\">\r\n <label [for]=\"generatedId\">\r\n <strong>{{ cardLevelData().label }}</strong>\r\n\r\n <span class=\"value-display\">\r\n @if (isBidirectional()) {\r\n <!-- Barra bidireccional desde el centro -->\r\n <div class=\"bidirectional-meter\">\r\n <div class=\"meter-track\">\r\n <div class=\"center-line\"></div>\r\n <div class=\"meter-fill\" [class.fill-left]=\"fillDirection() === 'left'\" [class.fill-right]=\"fillDirection() === 'right'\" [style.width.%]=\"bidirectionalFillPercent()\" [style.background]=\"fillColor()\">\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <!-- Meter est\u00E1ndar para rangos unidireccionales -->\r\n <meter [id]=\"generatedId\" [optimum]=\"cardLevelData().optimum\" [min]=\"cardLevelData().min\" [max]=\"cardLevelData().max\" [low]=\"cardLevelData().low\" [high]=\"cardLevelData().high\" [value]=\"cardLevelData().value\">\r\n </meter>\r\n }\r\n\r\n {{ cardLevelData().value }}{{ cardLevelData().unit }}\r\n </span>\r\n </label>\r\n</div>", styles: [".card-level-container{background:#fff;border-radius:5px;padding:8px;margin:4px;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;min-width:100px;flex:1}.card-level-container label{display:flex;flex-direction:column;margin:0}.card-level-container label strong{font-size:12px;font-weight:600;color:#2d3748;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.card-level-container label .value-display{font-size:12px;font-weight:600;color:#1a202c;text-align:center;padding:0 5px;background:#4299e11a;border-radius:5px}.card-level-container label .bidirectional-meter{width:100%;margin-bottom:4px}.card-level-container label .bidirectional-meter .meter-track{position:relative;width:100%;height:10px;background:#e2e8f0;border-radius:12px;box-shadow:inset 0 2px 4px #0000001a;overflow:hidden}.card-level-container label .bidirectional-meter .meter-track .center-line{position:absolute;left:50%;top:0;bottom:0;width:4px;background:#4a5568;transform:translate(-50%);z-index:1}.card-level-container label .bidirectional-meter .meter-track .meter-fill{position:absolute;top:0;bottom:0;border-radius:5px}.card-level-container label .bidirectional-meter .meter-track .meter-fill.fill-right{left:50%}.card-level-container label .bidirectional-meter .meter-track .meter-fill.fill-left{right:50%}.card-level-container label meter{width:100%;border-radius:12px;border:none;background:#e2e8f0;margin-bottom:4px}.card-level-container label meter::-webkit-meter-bar{background:#e2e8f0;border-radius:12px;box-shadow:inset 0 2px 4px #0000001a}.card-level-container label meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#48bb78,#38a169);border-radius:12px}.card-level-container label meter::-webkit-meter-suboptimum-value{background:linear-gradient(90deg,#ed8936,#dd6b20);border-radius:12px}.card-level-container label meter::-webkit-meter-even-less-good-value{background:linear-gradient(90deg,#f56565,#e53e3e);border-radius:12px}.card-level-container label meter::-moz-meter-bar{background:linear-gradient(90deg,#48bb78,#38a169);border-radius:12px}:host{--color-success: linear-gradient(90deg, #48bb78, #38a169);--color-warning: linear-gradient(90deg, #ed8936, #dd6b20);--color-danger: linear-gradient(90deg, #f56565, #e53e3e)}\n"] });
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: CardLevelComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'c80-card-level', standalone: true, imports: [], template: "<div class=\"card-level-container\" [style.width]=\"cardWidth\">\r\n <label [for]=\"generatedId\">\r\n <strong>{{ cardLevelData().label }}</strong>\r\n\r\n <span class=\"value-display\">\r\n @if (isBidirectional()) {\r\n <!-- Barra bidireccional desde el centro -->\r\n <div class=\"bidirectional-meter\">\r\n <div class=\"meter-track\">\r\n <div class=\"center-line\"></div>\r\n <div class=\"meter-fill\" [class.fill-left]=\"fillDirection() === 'left'\" [class.fill-right]=\"fillDirection() === 'right'\" [style.width.%]=\"bidirectionalFillPercent()\" [style.background]=\"fillColor()\">\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <!-- Meter est\u00E1ndar para rangos unidireccionales -->\r\n <meter [id]=\"generatedId\" [optimum]=\"cardLevelData().optimum\" [min]=\"cardLevelData().min\" [max]=\"cardLevelData().max\" [low]=\"cardLevelData().low\" [high]=\"cardLevelData().high\" [value]=\"cardLevelData().value\">\r\n </meter>\r\n }\r\n\r\n {{ cardLevelData().value }}{{ cardLevelData().unit }}\r\n </span>\r\n </label>\r\n</div>", styles: [".card-level-container{background:#fff;border-radius:5px;padding:8px;margin:4px;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;min-width:100px;flex:1}.card-level-container label{display:flex;flex-direction:column;margin:0}.card-level-container label strong{font-size:12px;font-weight:600;color:#2d3748;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.card-level-container label .value-display{font-size:12px;font-weight:600;color:#1a202c;text-align:center;padding:0 5px;background:#4299e11a;border-radius:5px}.card-level-container label .bidirectional-meter{width:100%;margin-bottom:4px}.card-level-container label .bidirectional-meter .meter-track{position:relative;width:100%;height:10px;background:#e2e8f0;border-radius:12px;box-shadow:inset 0 2px 4px #0000001a;overflow:hidden}.card-level-container label .bidirectional-meter .meter-track .center-line{position:absolute;left:50%;top:0;bottom:0;width:4px;background:#4a5568;transform:translate(-50%);z-index:1}.card-level-container label .bidirectional-meter .meter-track .meter-fill{position:absolute;top:0;bottom:0;border-radius:5px}.card-level-container label .bidirectional-meter .meter-track .meter-fill.fill-right{left:50%}.card-level-container label .bidirectional-meter .meter-track .meter-fill.fill-left{right:50%}.card-level-container label meter{width:100%;border-radius:12px;border:none;background:#e2e8f0;margin-bottom:4px}.card-level-container label meter::-webkit-meter-bar{background:#e2e8f0;border-radius:12px;box-shadow:inset 0 2px 4px #0000001a}.card-level-container label meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#48bb78,#38a169);border-radius:12px}.card-level-container label meter::-webkit-meter-suboptimum-value{background:linear-gradient(90deg,#ed8936,#dd6b20);border-radius:12px}.card-level-container label meter::-webkit-meter-even-less-good-value{background:linear-gradient(90deg,#f56565,#e53e3e);border-radius:12px}.card-level-container label meter::-moz-meter-bar{background:linear-gradient(90deg,#48bb78,#38a169);border-radius:12px}:host{--color-success: linear-gradient(90deg, #48bb78, #38a169);--color-warning: linear-gradient(90deg, #ed8936, #dd6b20);--color-danger: linear-gradient(90deg, #f56565, #e53e3e)}\n"] }]
55
+ }], propDecorators: { cardLevelData: [{ type: i0.Input, args: [{ isSignal: true, alias: "cardLevelData", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
56
+ //# sourceMappingURL=card-level.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-level.component.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/card-level/card-level.component.ts","../../../../../libs/ui/src/lib/card-level/card-level.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;;AAW3D,MAAM,OAAO,kBAAkB;IAC7B,aAAa,GAAG,KAAK,CAAC,QAAQ,wDAAiB,CAAC;IAChD,IAAI,GAAG,KAAK,CAAS,CAAC,gDAAC,CAAC,CAAC,wCAAwC;IAEzD,YAAY,CAAU;IAE9B,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,YAAY,GAAG,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,MAAM,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChD,OAAO,GAAG,eAAe,IAAI,CAAC;IAChC,CAAC;IAED,oEAAoE;IACpE,eAAe,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC,2DAAC,CAAC;IAEH,4DAA4D;IAC5D,wBAAwB,GAAG,QAAQ,CAAC,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC;IACjD,CAAC,oEAAC,CAAC;IAEH,+CAA+C;IAC/C,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC5B,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,CAAC,yDAAC,CAAC;IAEH,kCAAkC;IAClC,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;YACvB,OAAO,sBAAsB,CAAC;QAChC,CAAC;QACD,OAAO,sBAAsB,CAAC;IAChC,CAAC,qDAAC,CAAC;uGArDQ,kBAAkB;2FAAlB,kBAAkB,0VCX/B,wnCAuBM;;2FDZO,kBAAkB;kBAR9B,SAAS;+BAEE,gBAAgB,cACd,IAAI,WACP,EAAE","sourcesContent":["import { Component, input, computed } from '@angular/core';\nimport { CardLevelData } from './card-level.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'c80-card-level',\n standalone: true,\n imports: [],\n templateUrl: './card-level.component.html',\n styleUrl: './card-level.component.scss'\n})\nexport class CardLevelComponent {\n cardLevelData = input.required<CardLevelData>();\n size = input<number>(1); // Multiplicador del tamaño base (220px)\n\n private _generatedId?: string;\n\n get generatedId(): string {\n if (!this._generatedId) {\n const label = this.cardLevelData().label.toLowerCase().replaceAll(/\\s+/g, '-');\n const randomNum = Math.floor(Math.random() * 10000);\n this._generatedId = `${label}-${randomNum}`;\n }\n return this._generatedId;\n }\n\n get cardWidth(): string {\n const baseWidth = 140;\n const calculatedWidth = baseWidth * this.size();\n return `${calculatedWidth}px`;\n }\n\n // Detecta si el rango es bidireccional (min negativo, max positivo)\n isBidirectional = computed(() => {\n const data = this.cardLevelData();\n return data.min < 0 && data.max > 0;\n });\n\n // Calcula el porcentaje de fill para barras bidireccionales\n bidirectionalFillPercent = computed(() => {\n const data = this.cardLevelData();\n const totalRange = data.max - data.min;\n return Math.abs(data.value / totalRange) * 100;\n });\n\n // Determina la dirección del fill (left/right)\n fillDirection = computed(() => {\n return this.cardLevelData().value >= 0 ? 'right' : 'left';\n });\n\n // Color según el valor y umbrales\n fillColor = computed(() => {\n const data = this.cardLevelData();\n const absValue = Math.abs(data.value);\n const absHigh = Math.abs(data.high);\n const absLow = Math.abs(data.low);\n\n if (absValue >= absHigh) {\n return 'var(--color-danger)';\n }\n if (absValue >= absLow) {\n return 'var(--color-warning)';\n }\n return 'var(--color-success)';\n });\n}\n","<div class=\"card-level-container\" [style.width]=\"cardWidth\">\r\n <label [for]=\"generatedId\">\r\n <strong>{{ cardLevelData().label }}</strong>\r\n\r\n <span class=\"value-display\">\r\n @if (isBidirectional()) {\r\n <!-- Barra bidireccional desde el centro -->\r\n <div class=\"bidirectional-meter\">\r\n <div class=\"meter-track\">\r\n <div class=\"center-line\"></div>\r\n <div class=\"meter-fill\" [class.fill-left]=\"fillDirection() === 'left'\" [class.fill-right]=\"fillDirection() === 'right'\" [style.width.%]=\"bidirectionalFillPercent()\" [style.background]=\"fillColor()\">\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <!-- Meter estándar para rangos unidireccionales -->\r\n <meter [id]=\"generatedId\" [optimum]=\"cardLevelData().optimum\" [min]=\"cardLevelData().min\" [max]=\"cardLevelData().max\" [low]=\"cardLevelData().low\" [high]=\"cardLevelData().high\" [value]=\"cardLevelData().value\">\r\n </meter>\r\n }\r\n\r\n {{ cardLevelData().value }}{{ cardLevelData().unit }}\r\n </span>\r\n </label>\r\n</div>"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=card-level.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-level.interface.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/card-level/card-level.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface CardLevelData {\r\n label: string;\r\n value: number;\r\n min: number;\r\n max: number;\r\n optimum: number;\r\n low: number;\r\n high: number;\r\n unit: string;\r\n}\r\n"]}
@@ -0,0 +1,3 @@
1
+ export * from './card-level.component';
2
+ export * from './card-level.interface';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/card-level/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC","sourcesContent":["export * from './card-level.component';\r\nexport * from './card-level.interface';\r\n"]}
@@ -0,0 +1,48 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { Component, input, output, computed } from '@angular/core';
3
+ import { BASE_ICON_SIZE, BASE_ICON_COLORS, DISABLED_COLOR, DEFAULT_ICON_COLOR, DISABLED_OPACITY, SECONDARY_WARN_OPACITY, DEFAULT_OPACITY, ICON_PATHS, ICON_ADDITIONAL_SHAPES, } from './icon.constants';
4
+ import { transformToBoolean } from './icon.utils';
5
+ import * as i0 from "@angular/core";
6
+ export class C80IconComponent {
7
+ icon = input('check', ...(ngDevMode ? [{ debugName: "icon" }] : [])); // Tipo de icono a mostrar
8
+ color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : [])); // Color del icono (primary, secondary, warn, success)
9
+ customColor = input(undefined, ...(ngDevMode ? [{ debugName: "customColor" }] : [])); // Color personalizado (sobrescribe color)
10
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : [])); // Estado deshabilitado
11
+ size = input(1, ...(ngDevMode ? [{ debugName: "size" }] : [])); // Multiplicador de tamaño (1 = 24px)
12
+ button = input(false, ...(ngDevMode ? [{ debugName: "button", transform: transformToBoolean }] : [{ transform: transformToBoolean }])); // Renderiza como botón clickeable
13
+ border = input(false, ...(ngDevMode ? [{ debugName: "border", transform: transformToBoolean }] : [{ transform: transformToBoolean }])); // Agrega borde al wrapper
14
+ type = input('button', ...(ngDevMode ? [{ debugName: "type" }] : [])); // Tipo de botón (button, submit, reset)
15
+ textLeft = input(undefined, ...(ngDevMode ? [{ debugName: "textLeft" }] : [])); // Texto a la izquierda del icono
16
+ textRight = input(undefined, ...(ngDevMode ? [{ debugName: "textRight" }] : [])); // Texto a la derecha del icono
17
+ iconClick = output(); // Evento emitido al hacer click (solo si button=true)
18
+ iconSize = computed(() => BASE_ICON_SIZE * this.size(), ...(ngDevMode ? [{ debugName: "iconSize" }] : []));
19
+ iconColor = computed(() => {
20
+ if (this.disabled())
21
+ return DISABLED_COLOR;
22
+ const custom = this.customColor();
23
+ if (custom)
24
+ return custom;
25
+ return BASE_ICON_COLORS[this.color()] ?? DEFAULT_ICON_COLOR;
26
+ }, ...(ngDevMode ? [{ debugName: "iconColor" }] : []));
27
+ iconOpacity = computed(() => {
28
+ if (this.disabled())
29
+ return DISABLED_OPACITY;
30
+ const hasCustomColor = this.customColor() !== undefined;
31
+ const isSecondaryOrWarn = ['secondary', 'warn'].includes(this.color());
32
+ return !hasCustomColor && isSecondaryOrWarn ? SECONDARY_WARN_OPACITY : DEFAULT_OPACITY;
33
+ }, ...(ngDevMode ? [{ debugName: "iconOpacity" }] : []));
34
+ iconPath = computed(() => ICON_PATHS[this.icon()] ?? ICON_PATHS['default'], ...(ngDevMode ? [{ debugName: "iconPath" }] : []));
35
+ additionalShapes = computed(() => ICON_ADDITIONAL_SHAPES[this.icon()] ?? [], ...(ngDevMode ? [{ debugName: "additionalShapes" }] : []));
36
+ onButtonClick(event) {
37
+ if (!this.disabled()) {
38
+ this.iconClick.emit(event);
39
+ }
40
+ }
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: C80IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.9", type: C80IconComponent, isStandalone: true, selector: "c80-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customColor: { classPropertyName: "customColor", publicName: "customColor", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, textLeft: { classPropertyName: "textLeft", publicName: "textLeft", isSignal: true, isRequired: false, transformFunction: null }, textRight: { classPropertyName: "textRight", publicName: "textRight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { iconClick: "iconClick" }, ngImport: i0, template: "<ng-template #svgContent>\r\n <svg [attr.width]=\"iconSize()\" [attr.height]=\"iconSize()\" viewBox=\"0 0 24 24\" fill=\"none\" [style.opacity]=\"iconOpacity()\">\r\n @for (shape of additionalShapes(); track $index) {\r\n @if (shape.type === 'circle') {\r\n <circle [attr.cx]=\"shape['cx']\" [attr.cy]=\"shape['cy']\" [attr.r]=\"shape['r']\" [attr.stroke]=\"iconColor()\" stroke-width=\"2\" [attr.fill]=\"shape['fill'] === 'color' ? iconColor() : 'none'\" />\r\n } @else if (shape.type === 'rect') {\r\n <rect [attr.x]=\"shape['x']\" [attr.y]=\"shape['y']\" [attr.width]=\"shape['width']\" [attr.height]=\"shape['height']\" [attr.rx]=\"shape['rx']\" [attr.stroke]=\"iconColor()\" stroke-width=\"2\" fill=\"none\" />\r\n } @else if (shape.type === 'path') {\r\n <path [attr.d]=\"shape['d']\" [attr.stroke]=\"iconColor()\" stroke-width=\"2\" [attr.fill]=\"shape['fill'] === 'color' ? iconColor() : 'none'\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n }\r\n }\r\n <path [attr.d]=\"iconPath()\" [attr.stroke]=\"iconColor()\" [attr.fill]=\"icon() === 'delete' ? iconColor() : 'none'\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #textContent>\r\n @if (textLeft()) {\r\n <span class=\"icon-text\" style=\"margin-left: 12px\">{{ textLeft() }}</span>\r\n }\r\n <span class=\"icon-content\" [style.width.px]=\"iconSize() + 8\" [style.height.px]=\"iconSize() + 8\">\r\n <ng-container *ngTemplateOutlet=\"svgContent\" />\r\n </span>\r\n @if (textRight()) {\r\n <span class=\"icon-text\" style=\"margin-right: 12px\">{{ textRight() }}</span>\r\n }\r\n</ng-template>\r\n\r\n@if (button()) {\r\n<button [type]=\"type()\" [disabled]=\"disabled()\" class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\" (click)=\"onButtonClick($event)\">\r\n <ng-container *ngTemplateOutlet=\"textContent\" />\r\n</button>\r\n} @else {\r\n<span class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\">\r\n <ng-container *ngTemplateOutlet=\"textContent\" />\r\n</span>\r\n}", styles: [":host .icon-wrapper{display:inline-flex;align-items:center;gap:8px;background:transparent;padding:0;border:none;outline:none;cursor:pointer;transition:opacity .2s}:host button.icon-wrapper:focus-visible{outline:2px solid #1976d2;outline-offset:2px;border-radius:4px}:host button.icon-wrapper:disabled{opacity:.5;cursor:default}:host .icon-content{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;min-width:0;min-height:0;padding:4px;margin:0 4px;transition:background .2s;box-sizing:border-box}:host button.icon-wrapper:hover:not(:disabled) .icon-content{background:#1976d214}:host button.icon-wrapper:active:not(:disabled) .icon-content{background:#1976d229}:host .icon-text{font-size:14px;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none}:host .icon-wrapper-border{border:1px solid rgba(0,0,0,.23);border-radius:4px;padding:4px 8px}:host button.icon-wrapper-border:hover:not(:disabled){border-color:#000000de}:host button.icon-wrapper-border:disabled{border-color:#0000001f}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: C80IconComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'c80-icon', standalone: true, imports: [NgTemplateOutlet], template: "<ng-template #svgContent>\r\n <svg [attr.width]=\"iconSize()\" [attr.height]=\"iconSize()\" viewBox=\"0 0 24 24\" fill=\"none\" [style.opacity]=\"iconOpacity()\">\r\n @for (shape of additionalShapes(); track $index) {\r\n @if (shape.type === 'circle') {\r\n <circle [attr.cx]=\"shape['cx']\" [attr.cy]=\"shape['cy']\" [attr.r]=\"shape['r']\" [attr.stroke]=\"iconColor()\" stroke-width=\"2\" [attr.fill]=\"shape['fill'] === 'color' ? iconColor() : 'none'\" />\r\n } @else if (shape.type === 'rect') {\r\n <rect [attr.x]=\"shape['x']\" [attr.y]=\"shape['y']\" [attr.width]=\"shape['width']\" [attr.height]=\"shape['height']\" [attr.rx]=\"shape['rx']\" [attr.stroke]=\"iconColor()\" stroke-width=\"2\" fill=\"none\" />\r\n } @else if (shape.type === 'path') {\r\n <path [attr.d]=\"shape['d']\" [attr.stroke]=\"iconColor()\" stroke-width=\"2\" [attr.fill]=\"shape['fill'] === 'color' ? iconColor() : 'none'\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n }\r\n }\r\n <path [attr.d]=\"iconPath()\" [attr.stroke]=\"iconColor()\" [attr.fill]=\"icon() === 'delete' ? iconColor() : 'none'\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #textContent>\r\n @if (textLeft()) {\r\n <span class=\"icon-text\" style=\"margin-left: 12px\">{{ textLeft() }}</span>\r\n }\r\n <span class=\"icon-content\" [style.width.px]=\"iconSize() + 8\" [style.height.px]=\"iconSize() + 8\">\r\n <ng-container *ngTemplateOutlet=\"svgContent\" />\r\n </span>\r\n @if (textRight()) {\r\n <span class=\"icon-text\" style=\"margin-right: 12px\">{{ textRight() }}</span>\r\n }\r\n</ng-template>\r\n\r\n@if (button()) {\r\n<button [type]=\"type()\" [disabled]=\"disabled()\" class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\" (click)=\"onButtonClick($event)\">\r\n <ng-container *ngTemplateOutlet=\"textContent\" />\r\n</button>\r\n} @else {\r\n<span class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\">\r\n <ng-container *ngTemplateOutlet=\"textContent\" />\r\n</span>\r\n}", styles: [":host .icon-wrapper{display:inline-flex;align-items:center;gap:8px;background:transparent;padding:0;border:none;outline:none;cursor:pointer;transition:opacity .2s}:host button.icon-wrapper:focus-visible{outline:2px solid #1976d2;outline-offset:2px;border-radius:4px}:host button.icon-wrapper:disabled{opacity:.5;cursor:default}:host .icon-content{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;min-width:0;min-height:0;padding:4px;margin:0 4px;transition:background .2s;box-sizing:border-box}:host button.icon-wrapper:hover:not(:disabled) .icon-content{background:#1976d214}:host button.icon-wrapper:active:not(:disabled) .icon-content{background:#1976d229}:host .icon-text{font-size:14px;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none}:host .icon-wrapper-border{border:1px solid rgba(0,0,0,.23);border-radius:4px;padding:4px 8px}:host button.icon-wrapper-border:hover:not(:disabled){border-color:#000000de}:host button.icon-wrapper-border:disabled{border-color:#0000001f}\n"] }]
47
+ }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], customColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "customColor", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], button: [{ type: i0.Input, args: [{ isSignal: true, alias: "button", required: false }] }], border: [{ type: i0.Input, args: [{ isSignal: true, alias: "border", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], textLeft: [{ type: i0.Input, args: [{ isSignal: true, alias: "textLeft", required: false }] }], textRight: [{ type: i0.Input, args: [{ isSignal: true, alias: "textRight", required: false }] }], iconClick: [{ type: i0.Output, args: ["iconClick"] }] } });
48
+ //# sourceMappingURL=icon.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.component.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.component.ts","../../../../../libs/ui/src/lib/icon/icon.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;;AAUlD,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,KAAK,CAAW,OAAO,gDAAC,CAAC,CAAC,0BAA0B;IAC3D,KAAK,GAAG,KAAK,CAAY,SAAS,iDAAC,CAAC,CAAC,sDAAsD;IAC3F,WAAW,GAAG,KAAK,CAAqB,SAAS,uDAAC,CAAC,CAAC,0CAA0C;IAC9F,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC,CAAC,CAAC,uBAAuB;IAChD,IAAI,GAAG,KAAK,CAAC,CAAC,gDAAC,CAAC,CAAC,qCAAqC;IACtD,MAAM,GAAG,KAAK,CAAC,KAAK,0CAAI,SAAS,EAAE,kBAAkB,OAA/B,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAC,CAAC,CAAC,kCAAkC;IAC5F,MAAM,GAAG,KAAK,CAAC,KAAK,0CAAI,SAAS,EAAE,kBAAkB,OAA/B,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAC,CAAC,CAAC,0BAA0B;IACpF,IAAI,GAAG,KAAK,CAAa,QAAQ,gDAAC,CAAC,CAAC,wCAAwC;IAC5E,QAAQ,GAAG,KAAK,CAAqB,SAAS,oDAAC,CAAC,CAAC,iCAAiC;IAClF,SAAS,GAAG,KAAK,CAAqB,SAAS,qDAAC,CAAC,CAAC,+BAA+B;IAEjF,SAAS,GAAG,MAAM,EAAS,CAAC,CAAC,sDAAsD;IAEnF,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,oDAAC,CAAC;IAExD,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE;QACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,cAAc,CAAC;QAE3C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,kBAAkB,CAAC;IAC9D,CAAC,qDAAC,CAAC;IAEM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE;QACnC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,gBAAgB,CAAC;QAE7C,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC;QACxD,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAEvE,OAAO,CAAC,cAAc,IAAI,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC;IACzF,CAAC,uDAAC,CAAC;IAEM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,oDAAC,CAAC;IAC5E,gBAAgB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,4DAAC,CAAC;IAEtF,aAAa,CAAC,KAAY;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;uGAzCU,gBAAgB;2FAAhB,gBAAgB,k1CCxB7B,gjEAmCC,qkCDfW,gBAAgB;;2FAIf,gBAAgB;kBAR5B,SAAS;+BAEE,UAAU,cACR,IAAI,WACP,CAAC,gBAAgB,CAAC","sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { Component, input, output, computed } from '@angular/core';\nimport {\n BASE_ICON_SIZE,\n BASE_ICON_COLORS,\n DISABLED_COLOR,\n DEFAULT_ICON_COLOR,\n DISABLED_OPACITY,\n SECONDARY_WARN_OPACITY,\n DEFAULT_OPACITY,\n ICON_PATHS,\n ICON_ADDITIONAL_SHAPES,\n} from './icon.constants';\nimport type { IconType, ColorType, ButtonType } from './icon.types';\nimport { transformToBoolean } from './icon.utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'c80-icon',\n standalone: true,\n imports: [NgTemplateOutlet],\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n})\nexport class C80IconComponent {\n readonly icon = input<IconType>('check'); // Tipo de icono a mostrar\n readonly color = input<ColorType>('primary'); // Color del icono (primary, secondary, warn, success)\n readonly customColor = input<string | undefined>(undefined); // Color personalizado (sobrescribe color)\n readonly disabled = input(false); // Estado deshabilitado\n readonly size = input(1); // Multiplicador de tamaño (1 = 24px)\n readonly button = input(false, { transform: transformToBoolean }); // Renderiza como botón clickeable\n readonly border = input(false, { transform: transformToBoolean }); // Agrega borde al wrapper\n readonly type = input<ButtonType>('button'); // Tipo de botón (button, submit, reset)\n readonly textLeft = input<string | undefined>(undefined); // Texto a la izquierda del icono\n readonly textRight = input<string | undefined>(undefined); // Texto a la derecha del icono\n\n readonly iconClick = output<Event>(); // Evento emitido al hacer click (solo si button=true)\n\n readonly iconSize = computed(() => BASE_ICON_SIZE * this.size());\n\n readonly iconColor = computed(() => {\n if (this.disabled()) return DISABLED_COLOR;\n\n const custom = this.customColor();\n if (custom) return custom;\n\n return BASE_ICON_COLORS[this.color()] ?? DEFAULT_ICON_COLOR;\n });\n\n readonly iconOpacity = computed(() => {\n if (this.disabled()) return DISABLED_OPACITY;\n\n const hasCustomColor = this.customColor() !== undefined;\n const isSecondaryOrWarn = ['secondary', 'warn'].includes(this.color());\n\n return !hasCustomColor && isSecondaryOrWarn ? SECONDARY_WARN_OPACITY : DEFAULT_OPACITY;\n });\n\n readonly iconPath = computed(() => ICON_PATHS[this.icon()] ?? ICON_PATHS['default']);\n readonly additionalShapes = computed(() => ICON_ADDITIONAL_SHAPES[this.icon()] ?? []);\n\n onButtonClick(event: Event): void {\n if (!this.disabled()) {\n this.iconClick.emit(event);\n }\n }\n}\n","<ng-template #svgContent>\r\n <svg [attr.width]=\"iconSize()\" [attr.height]=\"iconSize()\" viewBox=\"0 0 24 24\" fill=\"none\" [style.opacity]=\"iconOpacity()\">\r\n @for (shape of additionalShapes(); track $index) {\r\n @if (shape.type === 'circle') {\r\n <circle [attr.cx]=\"shape['cx']\" [attr.cy]=\"shape['cy']\" [attr.r]=\"shape['r']\" [attr.stroke]=\"iconColor()\" stroke-width=\"2\" [attr.fill]=\"shape['fill'] === 'color' ? iconColor() : 'none'\" />\r\n } @else if (shape.type === 'rect') {\r\n <rect [attr.x]=\"shape['x']\" [attr.y]=\"shape['y']\" [attr.width]=\"shape['width']\" [attr.height]=\"shape['height']\" [attr.rx]=\"shape['rx']\" [attr.stroke]=\"iconColor()\" stroke-width=\"2\" fill=\"none\" />\r\n } @else if (shape.type === 'path') {\r\n <path [attr.d]=\"shape['d']\" [attr.stroke]=\"iconColor()\" stroke-width=\"2\" [attr.fill]=\"shape['fill'] === 'color' ? iconColor() : 'none'\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n }\r\n }\r\n <path [attr.d]=\"iconPath()\" [attr.stroke]=\"iconColor()\" [attr.fill]=\"icon() === 'delete' ? iconColor() : 'none'\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #textContent>\r\n @if (textLeft()) {\r\n <span class=\"icon-text\" style=\"margin-left: 12px\">{{ textLeft() }}</span>\r\n }\r\n <span class=\"icon-content\" [style.width.px]=\"iconSize() + 8\" [style.height.px]=\"iconSize() + 8\">\r\n <ng-container *ngTemplateOutlet=\"svgContent\" />\r\n </span>\r\n @if (textRight()) {\r\n <span class=\"icon-text\" style=\"margin-right: 12px\">{{ textRight() }}</span>\r\n }\r\n</ng-template>\r\n\r\n@if (button()) {\r\n<button [type]=\"type()\" [disabled]=\"disabled()\" class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\" (click)=\"onButtonClick($event)\">\r\n <ng-container *ngTemplateOutlet=\"textContent\" />\r\n</button>\r\n} @else {\r\n<span class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\">\r\n <ng-container *ngTemplateOutlet=\"textContent\" />\r\n</span>\r\n}"]}
@@ -0,0 +1,237 @@
1
+ export const ICON_NAMES = [
2
+ 'check',
3
+ 'cancel',
4
+ 'edit',
5
+ 'delete',
6
+ 'add',
7
+ 'view',
8
+ 'get',
9
+ 'settings',
10
+ 'schedule',
11
+ 'refresh',
12
+ 'checkCircle',
13
+ 'cancelCircle',
14
+ 'error',
15
+ 'queue',
16
+ 'arrowUp',
17
+ 'arrowDown',
18
+ 'toggleOn',
19
+ 'toggleOff',
20
+ 'search',
21
+ 'upload',
22
+ 'pendingActions',
23
+ 'playCircle',
24
+ 'play',
25
+ 'stop',
26
+ 'tune',
27
+ 'visibility',
28
+ 'visibilityOff',
29
+ 'close',
30
+ 'record',
31
+ 'star',
32
+ 'xCircle',
33
+ 'key',
34
+ 'exclamationTriangle',
35
+ 'clipboard',
36
+ 'download',
37
+ 'shield',
38
+ 'person',
39
+ 'envelope',
40
+ 'infoCircle',
41
+ 'checkSquare',
42
+ 'square',
43
+ 'dashSquare',
44
+ 'people',
45
+ 'boxSeam',
46
+ 'personBadge',
47
+ 'listTask',
48
+ 'shuffle',
49
+ 'cpu',
50
+ 'box',
51
+ 'bell',
52
+ 'message',
53
+ 'send',
54
+ 'file',
55
+ 'folder',
56
+ 'save',
57
+ 'print',
58
+ 'clock',
59
+ 'calendar',
60
+ 'timer',
61
+ 'lock',
62
+ 'unlock',
63
+ 'chart',
64
+ 'table',
65
+ 'database',
66
+ 'home',
67
+ 'menu',
68
+ 'arrowLeft',
69
+ 'arrowRight',
70
+ 'copy',
71
+ 'filter',
72
+ 'sort',
73
+ 'help',
74
+ 'warning',
75
+ 'default',
76
+ ];
77
+ export const BASE_ICON_COLORS = {
78
+ primary: '#003775c8',
79
+ secondary: '#6b7280',
80
+ warn: '#e53935',
81
+ success: '#4caf50',
82
+ };
83
+ export const DISABLED_COLOR = '#bdbdbd';
84
+ export const DEFAULT_ICON_COLOR = '#222';
85
+ export const DISABLED_OPACITY = 0.5;
86
+ export const SECONDARY_WARN_OPACITY = 0.7;
87
+ export const DEFAULT_OPACITY = 1;
88
+ export const BASE_ICON_SIZE = 24;
89
+ export const ICON_PATHS = {
90
+ check: 'M5 13l4 4L19 7',
91
+ cancel: 'M6 6l12 12M6 18L18 6',
92
+ edit: 'M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z',
93
+ delete: 'M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z',
94
+ add: 'M12 5v14M5 12h14',
95
+ view: 'M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6 7 11 7s9.27-3.11 11-7c-1.73-3.89-6-7-11-7z',
96
+ get: 'm8.5 8.5 7 7',
97
+ settings: 'M12 1v6m0 6v10M3.34 7l5.2 3M15.46 14l5.2 3M3.34 17l5.2-3M15.46 10l5.2-3',
98
+ schedule: 'M12 6v6l4 2',
99
+ refresh: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8M21 3v5h-5M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16M3 21v-5h5',
100
+ checkCircle: 'm9 12 2 2 4-4',
101
+ cancelCircle: 'm15 9-6 6m0-6 6 6',
102
+ error: 'M15 9L9 15M9 9l6 6',
103
+ queue: 'M3 12h18m-9-9v18',
104
+ arrowUp: 'm18 15-6-6-6 6',
105
+ arrowDown: 'm6 9 6 6 6-6',
106
+ toggleOn: '',
107
+ toggleOff: '',
108
+ search: 'm21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z',
109
+ upload: 'M12 15V3m0 0l-4 4m4-4l4 4M2 17l.621 2.485A2 2 0 0 0 4.561 21h14.878a2 2 0 0 0 1.94-1.515L22 17',
110
+ pendingActions: 'M12 8v4l3 3m6-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0z',
111
+ playCircle: 'M14.752 11.168l-3.197-2.132A1 1 0 0 0 10 9.87v4.263a1 1 0 0 0 1.555.832l3.197-2.132a1 1 0 0 0 0-1.664z',
112
+ play: 'M8 5v14l11-7z',
113
+ stop: 'M6 6h12v12H6z',
114
+ tune: 'M3 17v-2h6v2zm0-4v-2h10v2zm0-4V7h14v2zM6 21v-4h6v4zm7-8v-4h8v4zm3 8v-8h5v8z',
115
+ visibility: 'M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5z',
116
+ visibilityOff: 'M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7z' +
117
+ 'M2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27z' +
118
+ 'M7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2z' +
119
+ 'm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z',
120
+ close: 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z',
121
+ record: '',
122
+ star: 'M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z',
123
+ xCircle: 'M15 9l-6 6m0-6l6 6',
124
+ key: 'M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4',
125
+ exclamationTriangle: 'M12 9v4m0 4h.01',
126
+ clipboard: 'M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2',
127
+ download: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4m4-5l5 5m0 0l5-5m-5 5V3',
128
+ shield: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',
129
+ person: 'M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2',
130
+ envelope: 'M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z',
131
+ infoCircle: 'M12 16v-4m0-4h.01',
132
+ checkSquare: 'm9 11 3 3L22 4',
133
+ square: '',
134
+ dashSquare: 'M8 12h8',
135
+ people: 'M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2',
136
+ boxSeam: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',
137
+ personBadge: 'M17 21v-2a4 4 0 0 0-3-3.87m-4-5.13a4 4 0 0 0 2 7.75',
138
+ listTask: 'M3 6h18M3 12h18M3 18h18',
139
+ shuffle: 'M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5',
140
+ cpu: 'M4 4h16v16H4z',
141
+ box: 'M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8z',
142
+ bell: 'M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 0 1-3.46 0',
143
+ message: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',
144
+ send: 'M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z',
145
+ file: 'M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z',
146
+ folder: 'M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z',
147
+ save: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z',
148
+ print: 'M6 9V2h12v7M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2',
149
+ clock: 'M12 6v6l4 2',
150
+ calendar: 'M8 2v4m8-4v4M3 10h18',
151
+ timer: 'M12 8v4l2 2',
152
+ lock: 'M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2zM7 11V7a5 5 0 0 1 10 0v4',
153
+ unlock: 'M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2zM7 11V7a5 5 0 0 1 9.9-1',
154
+ chart: 'M3 3v18h18M7 16l4-4 4 4 6-6',
155
+ table: 'M3 3h18v18H3zM3 9h18M3 15h18M9 3v18',
156
+ database: 'M12 8c-4.97 0-9-1.34-9-3s4.03-3 9-3 9 1.34 9 3-4.03 3-9 3zM3 5v5c0 1.66 4.03 3 9 3s9-1.34 9-3V5M3 10v5c0 1.66 4.03 3 9 3s9-1.34 9-3v-5',
157
+ home: 'm3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',
158
+ menu: 'M3 12h18M3 6h18M3 18h18',
159
+ arrowLeft: 'm19 12-7-7m0 0-5 5m5-5v14',
160
+ arrowRight: 'm5 12 7 7m0 0 5-5m-5 5V5',
161
+ copy: 'M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7.242a2 2 0 0 0-.602-1.43L16.083 2.57A2 2 0 0 0 14.685 2H10a2 2 0 0 0-2 2z',
162
+ filter: 'M22 3H2l8 9.46V19l4 2v-8.54L22 3z',
163
+ sort: 'M11 5h10M11 9h7M11 13h4M3 17l3 3m0 0l3-3m-3 3V4',
164
+ help: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01',
165
+ warning: 'M12 9v4',
166
+ default: '',
167
+ };
168
+ export const ICON_ADDITIONAL_SHAPES = {
169
+ view: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],
170
+ get: [
171
+ { type: 'circle', cx: '6', cy: '6', r: '3' },
172
+ { type: 'circle', cx: '18', cy: '18', r: '3' },
173
+ { type: 'path', d: 'm13 11 2 2-2 2' },
174
+ ],
175
+ settings: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],
176
+ schedule: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
177
+ checkCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
178
+ cancelCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
179
+ error: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
180
+ queue: [
181
+ { type: 'rect', x: '2', y: '3', width: '20', height: '6', rx: '1' },
182
+ { type: 'rect', x: '2', y: '15', width: '20', height: '6', rx: '1' },
183
+ ],
184
+ toggleOn: [
185
+ { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },
186
+ { type: 'circle', cx: '18', cy: '12', r: '4', fill: 'color' },
187
+ ],
188
+ toggleOff: [
189
+ { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },
190
+ { type: 'circle', cx: '6', cy: '12', r: '4', fill: 'color' },
191
+ ],
192
+ playCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
193
+ visibility: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],
194
+ record: [{ type: 'circle', cx: '12', cy: '12', r: '5', fill: 'color' }],
195
+ xCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
196
+ exclamationTriangle: [{ type: 'path', d: 'M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z' }],
197
+ person: [{ type: 'circle', cx: '12', cy: '7', r: '4' }],
198
+ envelope: [{ type: 'path', d: 'm22 6-10 7L2 6' }],
199
+ infoCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
200
+ checkSquare: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],
201
+ square: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],
202
+ dashSquare: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],
203
+ people: [{ type: 'circle', cx: '9', cy: '7', r: '4' }, { type: 'path', d: 'M3 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2' }, { type: 'path', d: 'M16 3.13a4 4 0 0 1 0 7.75' }, { type: 'path', d: 'M21 21v-2a4 4 0 0 0-3-3.85' }],
204
+ boxSeam: [{ type: 'path', d: 'M21 8.5v7c0 .6-.2 1.2-.6 1.7l-7 4c-.3.2-.6.3-1 .3-.3 0-.7-.1-1-.3l-7-4c-.4-.5-.6-1.1-.6-1.7v-7c0-.6.2-1.2.6-1.7l7-4c.6-.4 1.4-.4 2 0l7 4c.4.5.6 1.1.6 1.7z' }, { type: 'path', d: 'M3.3 7L12 12l8.7-5M12 22.5V12' }],
205
+ personBadge: [{ type: 'circle', cx: '12', cy: '8', r: '4' }, { type: 'rect', x: '8', y: '14', width: '8', height: '6', rx: '1' }, { type: 'path', d: 'M10 17h4' }],
206
+ listTask: [{ type: 'path', d: 'M9 6h11M9 12h11M9 18h11' }, { type: 'circle', cx: '5', cy: '6', r: '1', fill: 'color' }, { type: 'circle', cx: '5', cy: '12', r: '1', fill: 'color' }, { type: 'circle', cx: '5', cy: '18', r: '1', fill: 'color' }],
207
+ shuffle: [],
208
+ cpu: [{ type: 'rect', x: '6', y: '6', width: '12', height: '12', rx: '1' }, { type: 'rect', x: '9', y: '9', width: '6', height: '6' }, { type: 'path', d: 'M9 2v4M15 2v4M9 18v4M15 18v4M2 9h4M2 15h4M18 9h4M18 15h4' }],
209
+ box: [{ type: 'path', d: 'M12 2.7L3.3 7v9.3l8.7 5 8.7-5V7L12 2.7z' }, { type: 'path', d: 'M12 22V12M3.3 7L12 12l8.7-5' }],
210
+ bell: [],
211
+ message: [],
212
+ send: [],
213
+ file: [{ type: 'path', d: 'M13 2v7h7' }],
214
+ folder: [],
215
+ save: [{ type: 'path', d: 'M15 3v6h4M9 21v-8h6v8' }],
216
+ print: [{ type: 'rect', x: '6', y: '14', width: '12', height: '8', rx: '1' }],
217
+ clock: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
218
+ calendar: [{ type: 'rect', x: '3', y: '4', width: '18', height: '18', rx: '2' }],
219
+ timer: [{ type: 'circle', cx: '12', cy: '13', r: '9' }, { type: 'path', d: 'M9 2h6' }],
220
+ lock: [],
221
+ unlock: [],
222
+ chart: [],
223
+ table: [],
224
+ database: [],
225
+ home: [{ type: 'path', d: 'M9 22V12h6v10' }],
226
+ menu: [],
227
+ arrowLeft: [],
228
+ arrowRight: [],
229
+ copy: [{ type: 'rect', x: '4', y: '8', width: '12', height: '12', rx: '2' }],
230
+ filter: [],
231
+ sort: [],
232
+ help: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
233
+ warning: [{ type: 'circle', cx: '12', cy: '12', r: '10' }, { type: 'circle', cx: '12', cy: '17', r: '0.5', fill: 'color' }],
234
+ default: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
235
+ edit: [{ type: 'rect', x: '5', y: '19', width: '14', height: '2', rx: '1' }],
236
+ };
237
+ //# sourceMappingURL=icon.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.constants.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,UAAU;IACV,UAAU;IACV,SAAS;IACT,aAAa;IACb,cAAc;IACd,OAAO;IACP,OAAO;IACP,SAAS;IACT,WAAW;IACX,UAAU;IACV,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,YAAY;IACZ,MAAM;IACN,MAAM;IACN,MAAM;IACN,YAAY;IACZ,eAAe;IACf,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;IACT,KAAK;IACL,qBAAqB;IACrB,WAAW;IACX,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,aAAa;IACb,UAAU;IACV,SAAS;IACT,KAAK;IACL,KAAK;IACL,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,UAAU;IACV,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,MAAM;IACN,WAAW;IACX,YAAY;IACZ,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAwC;IACnE,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,UAAU,GAAqC;IAC1D,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,sBAAsB;IAC9B,IAAI,EAAE,0DAA0D;IAChE,MAAM,EAAE,8EAA8E;IACtF,GAAG,EAAE,kBAAkB;IACvB,IAAI,EAAE,iFAAiF;IACvF,GAAG,EAAE,cAAc;IACnB,QAAQ,EAAE,yEAAyE;IACnF,QAAQ,EAAE,aAAa;IACvB,OAAO,EAAE,2HAA2H;IACpI,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,mBAAmB;IACjC,KAAK,EAAE,oBAAoB;IAC3B,KAAK,EAAE,kBAAkB;IACzB,OAAO,EAAE,gBAAgB;IACzB,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,+CAA+C;IACvD,MAAM,EAAE,gGAAgG;IACxG,cAAc,EAAE,gDAAgD;IAChE,UAAU,EAAE,wGAAwG;IACpH,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,6EAA6E;IACnF,UAAU,EAAE,+FAA+F;IAC3G,aAAa,EACX,uKAAuK;QACvK,yIAAyI;QACzI,0JAA0J;QAC1J,uDAAuD;IACzD,KAAK,EAAE,uGAAuG;IAC9G,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,8FAA8F;IACpG,OAAO,EAAE,oBAAoB;IAC7B,GAAG,EAAE,yHAAyH;IAC9H,mBAAmB,EAAE,iBAAiB;IACtC,SAAS,EAAE,+IAA+I;IAC1J,QAAQ,EAAE,kEAAkE;IAC5E,MAAM,EAAE,6CAA6C;IACrD,MAAM,EAAE,2CAA2C;IACnD,QAAQ,EAAE,6EAA6E;IACvF,UAAU,EAAE,mBAAmB;IAC/B,WAAW,EAAE,gBAAgB;IAC7B,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,2CAA2C;IACnD,OAAO,EAAE,2HAA2H;IACpI,WAAW,EAAE,qDAAqD;IAClE,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,kDAAkD;IAC3D,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,0HAA0H;IAC/H,IAAI,EAAE,uEAAuE;IAC7E,OAAO,EAAE,+DAA+D;IACxE,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,4DAA4D;IAClE,MAAM,EAAE,6EAA6E;IACrF,IAAI,EAAE,iEAAiE;IACvE,KAAK,EAAE,uFAAuF;IAC9F,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,sBAAsB;IAChC,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,mGAAmG;IACzG,MAAM,EAAE,kGAAkG;IAC1G,KAAK,EAAE,6BAA6B;IACpC,KAAK,EAAE,qCAAqC;IAC5C,QAAQ,EAAE,wIAAwI;IAClJ,IAAI,EAAE,gDAAgD;IACtD,IAAI,EAAE,yBAAyB;IAC/B,SAAS,EAAE,2BAA2B;IACtC,UAAU,EAAE,0BAA0B;IACtC,IAAI,EAAE,kHAAkH;IACxH,MAAM,EAAE,mCAAmC;IAC3C,IAAI,EAAE,iDAAiD;IACvD,IAAI,EAAE,gDAAgD;IACtD,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAgD;IACjF,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACtD,GAAG,EAAE;QACH,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;QAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE;QAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,EAAE;KACtC;IACD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC1D,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3D,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9D,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC/D,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IACxD,KAAK,EAAE;QACL,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;QACnE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;KACrE;IACD,QAAQ,EAAE;QACR,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;QACpE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;KAC9D;IACD,SAAS,EAAE;QACT,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE;QACpE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;KAC7D;IACD,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7D,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC5D,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACvE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,mBAAmB,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,0FAA0F,EAAE,CAAC;IACtI,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACvD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjD,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7D,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IACnF,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IAC9E,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IAClF,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,0CAA0C,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,2BAA2B,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,4BAA4B,EAAE,CAAC;IAC5N,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,4JAA4J,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,+BAA+B,EAAE,CAAC;IAClP,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IAClK,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,yBAAyB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACnP,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,0DAA0D,EAAE,CAAC;IACvN,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,yCAAyC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,6BAA6B,EAAE,CAAC;IACzH,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;IACxC,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACpD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IAC7E,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IACxD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IAChF,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtF,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5C,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IAC5E,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IACvD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3H,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;CAC7E,CAAC","sourcesContent":["import { ColorType, ShapeAttributes } from './icon.types';\n\nexport const ICON_NAMES = [\n 'check',\n 'cancel',\n 'edit',\n 'delete',\n 'add',\n 'view',\n 'get',\n 'settings',\n 'schedule',\n 'refresh',\n 'checkCircle',\n 'cancelCircle',\n 'error',\n 'queue',\n 'arrowUp',\n 'arrowDown',\n 'toggleOn',\n 'toggleOff',\n 'search',\n 'upload',\n 'pendingActions',\n 'playCircle',\n 'play',\n 'stop',\n 'tune',\n 'visibility',\n 'visibilityOff',\n 'close',\n 'record',\n 'star',\n 'xCircle',\n 'key',\n 'exclamationTriangle',\n 'clipboard',\n 'download',\n 'shield',\n 'person',\n 'envelope',\n 'infoCircle',\n 'checkSquare',\n 'square',\n 'dashSquare',\n 'people',\n 'boxSeam',\n 'personBadge',\n 'listTask',\n 'shuffle',\n 'cpu',\n 'box',\n 'bell',\n 'message',\n 'send',\n 'file',\n 'folder',\n 'save',\n 'print',\n 'clock',\n 'calendar',\n 'timer',\n 'lock',\n 'unlock',\n 'chart',\n 'table',\n 'database',\n 'home',\n 'menu',\n 'arrowLeft',\n 'arrowRight',\n 'copy',\n 'filter',\n 'sort',\n 'help',\n 'warning',\n 'default',\n] as const;\n\nexport const BASE_ICON_COLORS: Readonly<Record<ColorType, string>> = {\n primary: '#003775c8',\n secondary: '#6b7280',\n warn: '#e53935',\n success: '#4caf50',\n};\n\nexport const DISABLED_COLOR = '#bdbdbd';\nexport const DEFAULT_ICON_COLOR = '#222';\nexport const DISABLED_OPACITY = 0.5;\nexport const SECONDARY_WARN_OPACITY = 0.7;\nexport const DEFAULT_OPACITY = 1;\nexport const BASE_ICON_SIZE = 24;\n\nexport const ICON_PATHS: Readonly<Record<string, string>> = {\n check: 'M5 13l4 4L19 7',\n cancel: 'M6 6l12 12M6 18L18 6',\n edit: 'M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z',\n delete: 'M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z',\n add: 'M12 5v14M5 12h14',\n view: 'M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6 7 11 7s9.27-3.11 11-7c-1.73-3.89-6-7-11-7z',\n get: 'm8.5 8.5 7 7',\n settings: 'M12 1v6m0 6v10M3.34 7l5.2 3M15.46 14l5.2 3M3.34 17l5.2-3M15.46 10l5.2-3',\n schedule: 'M12 6v6l4 2',\n refresh: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8M21 3v5h-5M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16M3 21v-5h5',\n checkCircle: 'm9 12 2 2 4-4',\n cancelCircle: 'm15 9-6 6m0-6 6 6',\n error: 'M15 9L9 15M9 9l6 6',\n queue: 'M3 12h18m-9-9v18',\n arrowUp: 'm18 15-6-6-6 6',\n arrowDown: 'm6 9 6 6 6-6',\n toggleOn: '',\n toggleOff: '',\n search: 'm21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z',\n upload: 'M12 15V3m0 0l-4 4m4-4l4 4M2 17l.621 2.485A2 2 0 0 0 4.561 21h14.878a2 2 0 0 0 1.94-1.515L22 17',\n pendingActions: 'M12 8v4l3 3m6-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0z',\n playCircle: 'M14.752 11.168l-3.197-2.132A1 1 0 0 0 10 9.87v4.263a1 1 0 0 0 1.555.832l3.197-2.132a1 1 0 0 0 0-1.664z',\n play: 'M8 5v14l11-7z',\n stop: 'M6 6h12v12H6z',\n tune: 'M3 17v-2h6v2zm0-4v-2h10v2zm0-4V7h14v2zM6 21v-4h6v4zm7-8v-4h8v4zm3 8v-8h5v8z',\n visibility: 'M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5z',\n visibilityOff:\n 'M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7z' +\n 'M2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27z' +\n 'M7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2z' +\n 'm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z',\n close: 'M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z',\n record: '',\n star: 'M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z',\n xCircle: 'M15 9l-6 6m0-6l6 6',\n key: 'M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4',\n exclamationTriangle: 'M12 9v4m0 4h.01',\n clipboard: 'M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2',\n download: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4m4-5l5 5m0 0l5-5m-5 5V3',\n shield: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',\n person: 'M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2',\n envelope: 'M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z',\n infoCircle: 'M12 16v-4m0-4h.01',\n checkSquare: 'm9 11 3 3L22 4',\n square: '',\n dashSquare: 'M8 12h8',\n people: 'M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2',\n boxSeam: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',\n personBadge: 'M17 21v-2a4 4 0 0 0-3-3.87m-4-5.13a4 4 0 0 0 2 7.75',\n listTask: 'M3 6h18M3 12h18M3 18h18',\n shuffle: 'M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5',\n cpu: 'M4 4h16v16H4z',\n box: 'M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8z',\n bell: 'M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 0 1-3.46 0',\n message: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',\n send: 'M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z',\n file: 'M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z',\n folder: 'M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z',\n save: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z',\n print: 'M6 9V2h12v7M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2',\n clock: 'M12 6v6l4 2',\n calendar: 'M8 2v4m8-4v4M3 10h18',\n timer: 'M12 8v4l2 2',\n lock: 'M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2zM7 11V7a5 5 0 0 1 10 0v4',\n unlock: 'M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2zM7 11V7a5 5 0 0 1 9.9-1',\n chart: 'M3 3v18h18M7 16l4-4 4 4 6-6',\n table: 'M3 3h18v18H3zM3 9h18M3 15h18M9 3v18',\n database: 'M12 8c-4.97 0-9-1.34-9-3s4.03-3 9-3 9 1.34 9 3-4.03 3-9 3zM3 5v5c0 1.66 4.03 3 9 3s9-1.34 9-3V5M3 10v5c0 1.66 4.03 3 9 3s9-1.34 9-3v-5',\n home: 'm3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n menu: 'M3 12h18M3 6h18M3 18h18',\n arrowLeft: 'm19 12-7-7m0 0-5 5m5-5v14',\n arrowRight: 'm5 12 7 7m0 0 5-5m-5 5V5',\n copy: 'M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7.242a2 2 0 0 0-.602-1.43L16.083 2.57A2 2 0 0 0 14.685 2H10a2 2 0 0 0-2 2z',\n filter: 'M22 3H2l8 9.46V19l4 2v-8.54L22 3z',\n sort: 'M11 5h10M11 9h7M11 13h4M3 17l3 3m0 0l3-3m-3 3V4',\n help: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01',\n warning: 'M12 9v4',\n default: '',\n};\n\nexport const ICON_ADDITIONAL_SHAPES: Readonly<Record<string, ShapeAttributes[]>> = {\n view: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],\n get: [\n { type: 'circle', cx: '6', cy: '6', r: '3' },\n { type: 'circle', cx: '18', cy: '18', r: '3' },\n { type: 'path', d: 'm13 11 2 2-2 2' },\n ],\n settings: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],\n schedule: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n checkCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n cancelCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n error: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n queue: [\n { type: 'rect', x: '2', y: '3', width: '20', height: '6', rx: '1' },\n { type: 'rect', x: '2', y: '15', width: '20', height: '6', rx: '1' },\n ],\n toggleOn: [\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\n { type: 'circle', cx: '18', cy: '12', r: '4', fill: 'color' },\n ],\n toggleOff: [\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\n { type: 'circle', cx: '6', cy: '12', r: '4', fill: 'color' },\n ],\n playCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n visibility: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],\n record: [{ type: 'circle', cx: '12', cy: '12', r: '5', fill: 'color' }],\n xCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n exclamationTriangle: [{ type: 'path', d: 'M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z' }],\n person: [{ type: 'circle', cx: '12', cy: '7', r: '4' }],\n envelope: [{ type: 'path', d: 'm22 6-10 7L2 6' }],\n infoCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n checkSquare: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n square: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n dashSquare: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n people: [{ type: 'circle', cx: '9', cy: '7', r: '4' }, { type: 'path', d: 'M3 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2' }, { type: 'path', d: 'M16 3.13a4 4 0 0 1 0 7.75' }, { type: 'path', d: 'M21 21v-2a4 4 0 0 0-3-3.85' }],\n boxSeam: [{ type: 'path', d: 'M21 8.5v7c0 .6-.2 1.2-.6 1.7l-7 4c-.3.2-.6.3-1 .3-.3 0-.7-.1-1-.3l-7-4c-.4-.5-.6-1.1-.6-1.7v-7c0-.6.2-1.2.6-1.7l7-4c.6-.4 1.4-.4 2 0l7 4c.4.5.6 1.1.6 1.7z' }, { type: 'path', d: 'M3.3 7L12 12l8.7-5M12 22.5V12' }],\n personBadge: [{ type: 'circle', cx: '12', cy: '8', r: '4' }, { type: 'rect', x: '8', y: '14', width: '8', height: '6', rx: '1' }, { type: 'path', d: 'M10 17h4' }],\n listTask: [{ type: 'path', d: 'M9 6h11M9 12h11M9 18h11' }, { type: 'circle', cx: '5', cy: '6', r: '1', fill: 'color' }, { type: 'circle', cx: '5', cy: '12', r: '1', fill: 'color' }, { type: 'circle', cx: '5', cy: '18', r: '1', fill: 'color' }],\n shuffle: [],\n cpu: [{ type: 'rect', x: '6', y: '6', width: '12', height: '12', rx: '1' }, { type: 'rect', x: '9', y: '9', width: '6', height: '6' }, { type: 'path', d: 'M9 2v4M15 2v4M9 18v4M15 18v4M2 9h4M2 15h4M18 9h4M18 15h4' }],\n box: [{ type: 'path', d: 'M12 2.7L3.3 7v9.3l8.7 5 8.7-5V7L12 2.7z' }, { type: 'path', d: 'M12 22V12M3.3 7L12 12l8.7-5' }],\n bell: [],\n message: [],\n send: [],\n file: [{ type: 'path', d: 'M13 2v7h7' }],\n folder: [],\n save: [{ type: 'path', d: 'M15 3v6h4M9 21v-8h6v8' }],\n print: [{ type: 'rect', x: '6', y: '14', width: '12', height: '8', rx: '1' }],\n clock: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n calendar: [{ type: 'rect', x: '3', y: '4', width: '18', height: '18', rx: '2' }],\n timer: [{ type: 'circle', cx: '12', cy: '13', r: '9' }, { type: 'path', d: 'M9 2h6' }],\n lock: [],\n unlock: [],\n chart: [],\n table: [],\n database: [],\n home: [{ type: 'path', d: 'M9 22V12h6v10' }],\n menu: [],\n arrowLeft: [],\n arrowRight: [],\n copy: [{ type: 'rect', x: '4', y: '8', width: '12', height: '12', rx: '2' }],\n filter: [],\n sort: [],\n help: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n warning: [{ type: 'circle', cx: '12', cy: '12', r: '10' }, { type: 'circle', cx: '12', cy: '17', r: '0.5', fill: 'color' }],\n default: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n edit: [{ type: 'rect', x: '5', y: '19', width: '14', height: '2', rx: '1' }],\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=icon.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.types.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.types.ts"],"names":[],"mappings":"","sourcesContent":["import { ICON_NAMES } from './icon.constants';\n\nexport type IconType = (typeof ICON_NAMES)[number];\nexport type ColorType = 'primary' | 'secondary' | 'warn' | 'success';\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\nexport interface ShapeAttributes {\n type: 'circle' | 'rect' | 'path';\n [key: string]: string | number;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export function transformToBoolean(val) {
2
+ return val !== null && val !== undefined && val !== false && val !== 'false';
3
+ }
4
+ //# sourceMappingURL=icon.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.utils.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,GAAwC;IACzE,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC;AAC/E,CAAC","sourcesContent":["export function transformToBoolean(val: boolean | string | null | undefined): boolean {\n return val !== null && val !== undefined && val !== false && val !== 'false';\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export * from './icon.component';
2
+ export * from './icon.types';
3
+ export * from './icon.constants';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './icon.component';\nexport * from './icon.types';\nexport * from './icon.constants';\n"]}
@@ -0,0 +1,3 @@
1
+ export * from './modal.component';
2
+ export * from './modal.service';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/modal/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './modal.component';\r\nexport * from './modal.service';\r\n"]}