otimus-library 0.2.48 → 0.2.50

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 (201) hide show
  1. package/esm2022/lib/components/oc-accordion/oc-accordion.component.mjs +48 -0
  2. package/esm2022/lib/components/oc-accordion-item/oc-accordion-item.component.mjs +35 -0
  3. package/esm2022/lib/components/oc-autocomplete/oc-autocomplete.component.mjs +275 -0
  4. package/esm2022/lib/components/oc-badge/oc-badge.component.mjs +30 -0
  5. package/esm2022/lib/components/oc-checkbox/oc-checkbox.component.mjs +133 -0
  6. package/esm2022/lib/components/oc-chip/oc-chip.component.mjs +45 -0
  7. package/esm2022/lib/components/oc-filter/oc-filter.component.mjs +39 -0
  8. package/esm2022/lib/components/oc-input/oc-input.component.mjs +97 -0
  9. package/esm2022/lib/components/oc-key-value/oc-key-value.component.mjs +29 -0
  10. package/esm2022/lib/components/oc-log/oc-log.component.mjs +22 -0
  11. package/esm2022/lib/components/oc-menu/oc-menu.component.mjs +81 -0
  12. package/esm2022/lib/components/oc-modal/oc-modal.component.mjs +85 -0
  13. package/esm2022/lib/components/oc-modal-footer/oc-modal-footer.component.mjs +23 -0
  14. package/esm2022/lib/components/oc-not-found/oc-not-found.component.mjs +11 -0
  15. package/esm2022/lib/components/oc-pagination/oc-pagination.component.mjs +49 -0
  16. package/esm2022/lib/components/oc-profile/oc-profile.component.mjs +38 -0
  17. package/esm2022/lib/components/oc-step/oc-step.component.mjs +49 -0
  18. package/esm2022/lib/components/oc-stepper/oc-stepper.component.mjs +90 -0
  19. package/esm2022/lib/components/oc-tab/oc-tab.component.mjs +20 -0
  20. package/esm2022/lib/components/oc-tabs/oc-tabs.component.mjs +42 -0
  21. package/esm2022/lib/components/oc-toast/oc-toast.component.mjs +17 -0
  22. package/esm2022/lib/components/oc-toggle/oc-toggle.component.mjs +34 -0
  23. package/esm2022/lib/directives/oc-tooltip/oc-tooltip.directive.mjs +117 -0
  24. package/esm2022/lib/interfaces/oc-autocomplete.mjs +2 -0
  25. package/esm2022/lib/interfaces/oc-menu.mjs +2 -0
  26. package/esm2022/lib/interfaces/oc-style-theme.mjs +2 -0
  27. package/esm2022/lib/interfaces/oc-toast.mjs +2 -0
  28. package/esm2022/lib/otimus-library.component.mjs +19 -0
  29. package/esm2022/lib/otimus-library.service.mjs +14 -0
  30. package/esm2022/lib/services/internationalization.service.mjs +68 -0
  31. package/esm2022/lib/services/oc-toast.service.mjs +81 -0
  32. package/esm2022/lib/services/style-theme.service.mjs +21 -0
  33. package/esm2022/otimus-library.mjs +5 -0
  34. package/esm2022/public-api.mjs +30 -0
  35. package/fesm2022/otimus-library.mjs +1513 -0
  36. package/fesm2022/otimus-library.mjs.map +1 -0
  37. package/index.d.ts +5 -0
  38. package/lib/components/oc-accordion/oc-accordion.component.d.ts +18 -0
  39. package/lib/components/oc-accordion-item/oc-accordion-item.component.d.ts +12 -0
  40. package/lib/components/oc-autocomplete/oc-autocomplete.component.d.ts +68 -0
  41. package/lib/components/oc-badge/oc-badge.component.d.ts +11 -0
  42. package/lib/components/oc-checkbox/oc-checkbox.component.d.ts +35 -0
  43. package/lib/components/oc-chip/oc-chip.component.d.ts +14 -0
  44. package/lib/components/oc-filter/oc-filter.component.d.ts +17 -0
  45. package/lib/components/oc-input/oc-input.component.d.ts +31 -0
  46. package/lib/components/oc-key-value/oc-key-value.component.d.ts +14 -0
  47. package/lib/components/oc-log/oc-log.component.d.ts +7 -0
  48. package/lib/components/oc-menu/oc-menu.component.d.ts +20 -0
  49. package/lib/components/oc-modal/oc-modal.component.d.ts +30 -0
  50. package/lib/components/oc-modal-footer/oc-modal-footer.component.d.ts +8 -0
  51. package/lib/components/oc-not-found/oc-not-found.component.d.ts +5 -0
  52. package/lib/components/oc-pagination/oc-pagination.component.d.ts +14 -0
  53. package/lib/components/oc-profile/oc-profile.component.d.ts +12 -0
  54. package/lib/components/oc-step/oc-step.component.d.ts +22 -0
  55. package/lib/components/oc-stepper/oc-stepper.component.d.ts +24 -0
  56. package/lib/components/oc-tab/oc-tab.component.d.ts +8 -0
  57. package/lib/components/oc-tabs/oc-tabs.component.d.ts +18 -0
  58. package/lib/components/oc-toast/oc-toast.component.d.ts +8 -0
  59. package/lib/components/oc-toggle/oc-toggle.component.d.ts +12 -0
  60. package/lib/directives/oc-tooltip/oc-tooltip.directive.d.ts +20 -0
  61. package/lib/interfaces/oc-autocomplete.d.ts +5 -0
  62. package/lib/interfaces/oc-menu.d.ts +9 -0
  63. package/lib/interfaces/oc-style-theme.d.ts +2 -0
  64. package/lib/interfaces/oc-toast.d.ts +8 -0
  65. package/lib/otimus-library.component.d.ts +5 -0
  66. package/lib/otimus-library.service.d.ts +6 -0
  67. package/lib/services/internationalization.service.d.ts +17 -0
  68. package/lib/services/oc-toast.service.d.ts +14 -0
  69. package/lib/services/style-theme.service.d.ts +8 -0
  70. package/package.json +13 -4
  71. package/public-api.d.ts +26 -0
  72. package/ng-package.json +0 -12
  73. package/src/assets/images/loading.svg +0 -0
  74. package/src/assets/images/not-found-bg.jpg +0 -0
  75. package/src/lib/components/oc-accordion/oc-accordion.component.html +0 -3
  76. package/src/lib/components/oc-accordion/oc-accordion.component.scss +0 -4
  77. package/src/lib/components/oc-accordion/oc-accordion.component.ts +0 -44
  78. package/src/lib/components/oc-accordion-item/oc-accordion-item.component.html +0 -19
  79. package/src/lib/components/oc-accordion-item/oc-accordion-item.component.scss +0 -86
  80. package/src/lib/components/oc-accordion-item/oc-accordion-item.component.ts +0 -27
  81. package/src/lib/components/oc-accordion-item/styles/oc-accordion-item.shui-component.scss +0 -41
  82. package/src/lib/components/oc-autocomplete/oc-autocomplete.component.html +0 -66
  83. package/src/lib/components/oc-autocomplete/oc-autocomplete.component.scss +0 -157
  84. package/src/lib/components/oc-autocomplete/oc-autocomplete.component.ts +0 -277
  85. package/src/lib/components/oc-badge/oc-badge.component.html +0 -7
  86. package/src/lib/components/oc-badge/oc-badge.component.scss +0 -125
  87. package/src/lib/components/oc-badge/oc-badge.component.ts +0 -22
  88. package/src/lib/components/oc-checkbox/oc-checkbox.component.html +0 -30
  89. package/src/lib/components/oc-checkbox/oc-checkbox.component.scss +0 -103
  90. package/src/lib/components/oc-checkbox/oc-checkbox.component.ts +0 -132
  91. package/src/lib/components/oc-checkbox/styles/oc-checkbox.shui-component.scss +0 -21
  92. package/src/lib/components/oc-chip/oc-chip.component.html +0 -20
  93. package/src/lib/components/oc-chip/oc-chip.component.scss +0 -102
  94. package/src/lib/components/oc-chip/oc-chip.component.ts +0 -32
  95. package/src/lib/components/oc-filter/oc-filter.component.html +0 -22
  96. package/src/lib/components/oc-filter/oc-filter.component.scss +0 -78
  97. package/src/lib/components/oc-filter/oc-filter.component.spec.ts +0 -23
  98. package/src/lib/components/oc-filter/oc-filter.component.ts +0 -30
  99. package/src/lib/components/oc-input/oc-input.component.html +0 -21
  100. package/src/lib/components/oc-input/oc-input.component.scss +0 -3
  101. package/src/lib/components/oc-input/oc-input.component.ts +0 -100
  102. package/src/lib/components/oc-key-value/oc-key-value.component.html +0 -12
  103. package/src/lib/components/oc-key-value/oc-key-value.component.scss +0 -26
  104. package/src/lib/components/oc-key-value/oc-key-value.component.ts +0 -23
  105. package/src/lib/components/oc-key-value/styles/oc-key-value.shui-component.scss +0 -26
  106. package/src/lib/components/oc-log/oc-log.component.html +0 -18
  107. package/src/lib/components/oc-log/oc-log.component.scss +0 -61
  108. package/src/lib/components/oc-log/oc-log.component.ts +0 -15
  109. package/src/lib/components/oc-menu/oc-menu.component.html +0 -31
  110. package/src/lib/components/oc-menu/oc-menu.component.scss +0 -101
  111. package/src/lib/components/oc-menu/oc-menu.component.ts +0 -84
  112. package/src/lib/components/oc-modal/oc-modal.component.html +0 -54
  113. package/src/lib/components/oc-modal/oc-modal.component.scss +0 -204
  114. package/src/lib/components/oc-modal/oc-modal.component.ts +0 -82
  115. package/src/lib/components/oc-modal/styles/oc-modal.shui-component.scss +0 -3
  116. package/src/lib/components/oc-modal-footer/oc-modal-footer.component.html +0 -11
  117. package/src/lib/components/oc-modal-footer/oc-modal-footer.component.scss +0 -27
  118. package/src/lib/components/oc-modal-footer/oc-modal-footer.component.ts +0 -15
  119. package/src/lib/components/oc-not-found/oc-not-found.component.html +0 -14
  120. package/src/lib/components/oc-not-found/oc-not-found.component.scss +0 -153
  121. package/src/lib/components/oc-not-found/oc-not-found.component.spec.ts +0 -23
  122. package/src/lib/components/oc-not-found/oc-not-found.component.ts +0 -12
  123. package/src/lib/components/oc-pagination/oc-pagination.component.html +0 -32
  124. package/src/lib/components/oc-pagination/oc-pagination.component.scss +0 -80
  125. package/src/lib/components/oc-pagination/oc-pagination.component.ts +0 -46
  126. package/src/lib/components/oc-profile/oc-profile.component.html +0 -17
  127. package/src/lib/components/oc-profile/oc-profile.component.scss +0 -80
  128. package/src/lib/components/oc-profile/oc-profile.component.ts +0 -38
  129. package/src/lib/components/oc-step/oc-step.component.html +0 -32
  130. package/src/lib/components/oc-step/oc-step.component.scss +0 -106
  131. package/src/lib/components/oc-step/oc-step.component.ts +0 -39
  132. package/src/lib/components/oc-step/styles/oc-step.shui-component.scss +0 -52
  133. package/src/lib/components/oc-stepper/oc-stepper.component.html +0 -3
  134. package/src/lib/components/oc-stepper/oc-stepper.component.scss +0 -9
  135. package/src/lib/components/oc-stepper/oc-stepper.component.ts +0 -86
  136. package/src/lib/components/oc-tab/oc-tab.component.html +0 -3
  137. package/src/lib/components/oc-tab/oc-tab.component.scss +0 -0
  138. package/src/lib/components/oc-tab/oc-tab.component.ts +0 -15
  139. package/src/lib/components/oc-table/oc-table.component.html +0 -62
  140. package/src/lib/components/oc-table/oc-table.component.scss +0 -2
  141. package/src/lib/components/oc-table/oc-table.component.ts +0 -51
  142. package/src/lib/components/oc-tabs/oc-tabs.component.html +0 -13
  143. package/src/lib/components/oc-tabs/oc-tabs.component.scss +0 -47
  144. package/src/lib/components/oc-tabs/oc-tabs.component.ts +0 -46
  145. package/src/lib/components/oc-tabs/styles/oc-tabs.shui-component.scss +0 -25
  146. package/src/lib/components/oc-toast/oc-toast.component.html +0 -46
  147. package/src/lib/components/oc-toast/oc-toast.component.scss +0 -133
  148. package/src/lib/components/oc-toast/oc-toast.component.ts +0 -15
  149. package/src/lib/components/oc-toggle/oc-toggle.component.html +0 -4
  150. package/src/lib/components/oc-toggle/oc-toggle.component.scss +0 -73
  151. package/src/lib/components/oc-toggle/oc-toggle.component.spec.ts +0 -23
  152. package/src/lib/components/oc-toggle/oc-toggle.component.ts +0 -32
  153. package/src/lib/directives/oc-tooltip/oc-tooltip.directive.ts +0 -108
  154. package/src/lib/interfaces/internal/languages.ts +0 -16
  155. package/src/lib/interfaces/oc-autocomplete.ts +0 -6
  156. package/src/lib/interfaces/oc-menu.ts +0 -10
  157. package/src/lib/interfaces/oc-style-theme.ts +0 -3
  158. package/src/lib/interfaces/oc-table.ts +0 -12
  159. package/src/lib/interfaces/oc-toast.ts +0 -8
  160. package/src/lib/otimus-library.component.ts +0 -16
  161. package/src/lib/otimus-library.service.ts +0 -9
  162. package/src/lib/services/internationalization.service.ts +0 -73
  163. package/src/lib/services/oc-toast.service.ts +0 -107
  164. package/src/lib/services/style-theme.service.ts +0 -19
  165. package/src/public-api.ts +0 -30
  166. package/tsconfig.lib.json +0 -14
  167. package/tsconfig.lib.prod.json +0 -10
  168. package/tsconfig.spec.json +0 -14
  169. /package/{src/assets → assets}/fonts/siemens/SH-Bree-Headline-Oblique.woff +0 -0
  170. /package/{src/assets → assets}/fonts/siemens/SH-Bree-Headline-Oblique.woff2 +0 -0
  171. /package/{src/assets → assets}/fonts/siemens/SH-Bree-Headline-Regular.woff +0 -0
  172. /package/{src/assets → assets}/fonts/siemens/SH-Bree-Headline-Regular.woff2 +0 -0
  173. /package/{src/assets → assets}/fonts/siemens/SiemensSans-Black.woff +0 -0
  174. /package/{src/assets → assets}/fonts/siemens/SiemensSans-Black.woff2 +0 -0
  175. /package/{src/assets → assets}/fonts/siemens/SiemensSans-BlackItalic.woff +0 -0
  176. /package/{src/assets → assets}/fonts/siemens/SiemensSans-BlackItalic.woff2 +0 -0
  177. /package/{src/assets → assets}/fonts/siemens/SiemensSans-Bold.woff +0 -0
  178. /package/{src/assets → assets}/fonts/siemens/SiemensSans-Bold.woff2 +0 -0
  179. /package/{src/assets → assets}/fonts/siemens/SiemensSans-BoldItalic.woff +0 -0
  180. /package/{src/assets → assets}/fonts/siemens/SiemensSans-BoldItalic.woff2 +0 -0
  181. /package/{src/assets → assets}/fonts/siemens/SiemensSans-Italic.woff +0 -0
  182. /package/{src/assets → assets}/fonts/siemens/SiemensSans-Italic.woff2 +0 -0
  183. /package/{src/assets → assets}/fonts/siemens/SiemensSans-Roman.woff +0 -0
  184. /package/{src/assets → assets}/fonts/siemens/SiemensSans-Roman.woff2 +0 -0
  185. /package/{src/styles → styles}/colors.scss +0 -0
  186. /package/{src/styles → styles}/components/buttons/buttons.scss +0 -0
  187. /package/{src/styles → styles}/components/buttons/buttons.shui.scss +0 -0
  188. /package/{src/styles → styles}/components/index.scss +0 -0
  189. /package/{src/styles → styles}/components/inputs/inputs.scss +0 -0
  190. /package/{src/styles → styles}/components/inputs/inputs.shui.scss +0 -0
  191. /package/{src/styles → styles}/components/table/table.scss +0 -0
  192. /package/{src/styles → styles}/components/table/table.shui.scss +0 -0
  193. /package/{src/styles → styles}/components/tooltip.scss +0 -0
  194. /package/{src/styles → styles}/grid.scss +0 -0
  195. /package/{src/styles → styles}/patterns/shui/colors.shui.scss +0 -0
  196. /package/{src/styles → styles}/patterns/shui/fonts.shui.scss +0 -0
  197. /package/{src/styles → styles}/patterns/shui/index.shui.scss +0 -0
  198. /package/{src/styles → styles}/patterns/shui/variables.shui.scss +0 -0
  199. /package/{src/styles → styles}/states.scss +0 -0
  200. /package/{src/styles → styles}/styles.scss +0 -0
  201. /package/{src/styles → styles}/variables.scss +0 -0
@@ -0,0 +1,133 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, } from '@angular/core';
3
+ import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/style-theme.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
8
+ export class OcCheckboxComponent {
9
+ constructor(styleThemeService, cdr) {
10
+ this.styleThemeService = styleThemeService;
11
+ this.cdr = cdr;
12
+ this.checkBoxId = `oc-${Math.random()}`;
13
+ this.ocChange = new EventEmitter();
14
+ this.ocChecked = false;
15
+ this.ocSize = 'small';
16
+ this.ocLabel = '';
17
+ this.ocName = '';
18
+ this.ocColor = 'green';
19
+ this.ocBorderColor = 'white';
20
+ this.ocStyle = 'otimus';
21
+ this.ocDoubleClick = new EventEmitter();
22
+ this.disableDoubleClickCheck = true;
23
+ this.onTouched = () => { };
24
+ this.doubleClickCounter = 0;
25
+ this.timeoutId = null;
26
+ }
27
+ ngAfterViewInit() {
28
+ this.ocStyle = this.styleThemeService.getStyleTheme() || this.ocStyle;
29
+ this.cdr.markForCheck();
30
+ this.cdr.detectChanges();
31
+ }
32
+ writeValue(value) {
33
+ this.ocChecked = value;
34
+ this.cdr.markForCheck();
35
+ this.cdr.detectChanges();
36
+ }
37
+ registerOnChange(fn) {
38
+ this.onChange = fn;
39
+ this.cdr.markForCheck();
40
+ this.cdr.detectChanges();
41
+ }
42
+ registerOnTouched(fn) {
43
+ this.onTouched = fn;
44
+ this.cdr.markForCheck();
45
+ this.cdr.detectChanges();
46
+ }
47
+ onDoubleClick() {
48
+ if (this.disableDoubleClickCheck) {
49
+ return;
50
+ }
51
+ if (this.timeoutId) {
52
+ clearTimeout(this.timeoutId);
53
+ this.timeoutId = null;
54
+ }
55
+ if (this.doubleClickCounter === 0) {
56
+ this.doubleClickCounter = 1;
57
+ this.timeoutId = setTimeout(() => {
58
+ this.doubleClickCounter = 0;
59
+ this.cdr.markForCheck();
60
+ setInterval(() => this.cdr.detectChanges(), 100);
61
+ }, 500);
62
+ }
63
+ else {
64
+ this.doubleClickCounter = 0;
65
+ if (this.ocDoubleClick && this.ocChecked) {
66
+ this.ocDoubleClick.emit(this.ocChecked);
67
+ }
68
+ }
69
+ this.cdr.markForCheck();
70
+ this.cdr.detectChanges();
71
+ }
72
+ toggleChecked() {
73
+ if (this.doubleClickCounter === 1) {
74
+ this.cdr.markForCheck();
75
+ this.cdr.detectChanges();
76
+ return;
77
+ }
78
+ this.ocChecked = !this.ocChecked;
79
+ if (this.onChange) {
80
+ this.onChange(this.ocChecked);
81
+ }
82
+ this.onTouched();
83
+ this.ocChange.emit(this.ocChecked);
84
+ if (this.formControl) {
85
+ this.formControl.setValue(this.ocChecked);
86
+ }
87
+ this.cdr.markForCheck();
88
+ this.cdr.detectChanges();
89
+ }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcCheckboxComponent, deps: [{ token: i1.StyleThemeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
91
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: OcCheckboxComponent, isStandalone: true, selector: "oc-checkbox", inputs: { ocChecked: "ocChecked", ocSize: "ocSize", ocLabel: "ocLabel", ocName: "ocName", ocColor: "ocColor", ocBorderColor: "ocBorderColor", ocStyle: "ocStyle", formControl: "formControl", ocTabIndex: "ocTabIndex", disableDoubleClickCheck: "disableDoubleClickCheck" }, outputs: { ocChange: "ocChange", ocDoubleClick: "ocDoubleClick" }, providers: [
92
+ {
93
+ provide: NG_VALUE_ACCESSOR,
94
+ useExisting: forwardRef(() => OcCheckboxComponent),
95
+ multi: true,
96
+ },
97
+ ], ngImport: i0, template: "<button class=\"oc-checkbox-content cbx\" type=\"button\" (click)=\"toggleChecked();\nonDoubleClick()\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n}\" [tabIndex]=\"ocTabIndex\">\n\n <div class=\"oc-checkbox cbx\" [ngClass]=\"{\n 'checked': ocChecked,\n 'tiny': ocSize === 'tiny',\n purple: ocColor === 'purple',\n 'gray-border': ocBorderColor === 'gray'\n }\">\n\n <span class=\"check-icon material-symbols-outlined\">check_small</span>\n </div>\n\n @if(ocLabel) {\n <span class=\"oc-checkbox-label cbx\">\n {{ocLabel}}\n </span>\n }\n\n <ng-content>\n </ng-content>\n\n @if(formControl) {\n <input [formControl]=\"formControl\" [name]=\"ocName\" [checked]=\"ocChecked\" type=\"checkbox\" hidden>\n } @else {\n <input [name]=\"ocName\" [checked]=\"ocChecked\" type=\"checkbox\" hidden>\n }\n</button>", styles: [".oc-checkbox-content{display:flex;align-items:center;padding:0;margin:0;border:none;background-color:transparent;gap:.3rem}.oc-checkbox-content .oc-checkbox-label{background-color:transparent;border:none;color:#8f9596;font-weight:500;text-align:left}.oc-checkbox{min-width:1rem;width:1.2rem;height:1.2rem;border-radius:.3rem;background-color:#f7f7f7;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center;transition:.15s ease;cursor:pointer;overflow:hidden}.oc-checkbox:hover{filter:brightness(.95)}.oc-checkbox .check-icon{font-weight:700;color:#f8f9ff;opacity:0;pointer-events:none;margin:0;font-size:1.15rem;transition:.2s ease;transform:translateY(15px) scale(.5)}.oc-checkbox.gray-border{border:2px solid #d1d5db}.oc-checkbox.tiny{width:1rem;height:1rem;border:1px solid #ffffff}.oc-checkbox.tiny.gray{border:1px solid #d1d5db}.checked{background-color:#00dda3;box-shadow:0 2px 10px #00dda32b;border:none!important}.checked .check-icon{transform:translateY(0) scale(1);opacity:1;color:#f8f9ff}.checked.purple{background-color:#5505a2;box-shadow:0 2px 10px #5505a233}.label{width:18.4px!important;height:18.4px!important}.oc-checkbox-content.shui .oc-checkbox,.oc-checkbox-content.shui .purple{border-radius:.15rem;background-color:#f5f5f5}.oc-checkbox-content.shui .oc-checkbox.gray-border,.oc-checkbox-content.shui .purple.gray-border{border:2px solid #009999;background-color:transparent}.oc-checkbox-content.shui .oc-checkbox.checked,.oc-checkbox-content.shui .purple.checked{background-color:#099}.oc-checkbox-content.shui span.cbx{color:#000000bf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcCheckboxComponent, decorators: [{
100
+ type: Component,
101
+ args: [{ selector: 'oc-checkbox', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule], providers: [
102
+ {
103
+ provide: NG_VALUE_ACCESSOR,
104
+ useExisting: forwardRef(() => OcCheckboxComponent),
105
+ multi: true,
106
+ },
107
+ ], changeDetection: ChangeDetectionStrategy.Default, template: "<button class=\"oc-checkbox-content cbx\" type=\"button\" (click)=\"toggleChecked();\nonDoubleClick()\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n}\" [tabIndex]=\"ocTabIndex\">\n\n <div class=\"oc-checkbox cbx\" [ngClass]=\"{\n 'checked': ocChecked,\n 'tiny': ocSize === 'tiny',\n purple: ocColor === 'purple',\n 'gray-border': ocBorderColor === 'gray'\n }\">\n\n <span class=\"check-icon material-symbols-outlined\">check_small</span>\n </div>\n\n @if(ocLabel) {\n <span class=\"oc-checkbox-label cbx\">\n {{ocLabel}}\n </span>\n }\n\n <ng-content>\n </ng-content>\n\n @if(formControl) {\n <input [formControl]=\"formControl\" [name]=\"ocName\" [checked]=\"ocChecked\" type=\"checkbox\" hidden>\n } @else {\n <input [name]=\"ocName\" [checked]=\"ocChecked\" type=\"checkbox\" hidden>\n }\n</button>", styles: [".oc-checkbox-content{display:flex;align-items:center;padding:0;margin:0;border:none;background-color:transparent;gap:.3rem}.oc-checkbox-content .oc-checkbox-label{background-color:transparent;border:none;color:#8f9596;font-weight:500;text-align:left}.oc-checkbox{min-width:1rem;width:1.2rem;height:1.2rem;border-radius:.3rem;background-color:#f7f7f7;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center;transition:.15s ease;cursor:pointer;overflow:hidden}.oc-checkbox:hover{filter:brightness(.95)}.oc-checkbox .check-icon{font-weight:700;color:#f8f9ff;opacity:0;pointer-events:none;margin:0;font-size:1.15rem;transition:.2s ease;transform:translateY(15px) scale(.5)}.oc-checkbox.gray-border{border:2px solid #d1d5db}.oc-checkbox.tiny{width:1rem;height:1rem;border:1px solid #ffffff}.oc-checkbox.tiny.gray{border:1px solid #d1d5db}.checked{background-color:#00dda3;box-shadow:0 2px 10px #00dda32b;border:none!important}.checked .check-icon{transform:translateY(0) scale(1);opacity:1;color:#f8f9ff}.checked.purple{background-color:#5505a2;box-shadow:0 2px 10px #5505a233}.label{width:18.4px!important;height:18.4px!important}.oc-checkbox-content.shui .oc-checkbox,.oc-checkbox-content.shui .purple{border-radius:.15rem;background-color:#f5f5f5}.oc-checkbox-content.shui .oc-checkbox.gray-border,.oc-checkbox-content.shui .purple.gray-border{border:2px solid #009999;background-color:transparent}.oc-checkbox-content.shui .oc-checkbox.checked,.oc-checkbox-content.shui .purple.checked{background-color:#099}.oc-checkbox-content.shui span.cbx{color:#000000bf}\n"] }]
108
+ }], ctorParameters: () => [{ type: i1.StyleThemeService }, { type: i0.ChangeDetectorRef }], propDecorators: { ocChange: [{
109
+ type: Output
110
+ }], ocChecked: [{
111
+ type: Input
112
+ }], ocSize: [{
113
+ type: Input
114
+ }], ocLabel: [{
115
+ type: Input
116
+ }], ocName: [{
117
+ type: Input
118
+ }], ocColor: [{
119
+ type: Input
120
+ }], ocBorderColor: [{
121
+ type: Input
122
+ }], ocStyle: [{
123
+ type: Input
124
+ }], ocDoubleClick: [{
125
+ type: Output
126
+ }], formControl: [{
127
+ type: Input
128
+ }], ocTabIndex: [{
129
+ type: Input
130
+ }], disableDoubleClickCheck: [{
131
+ type: Input
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3RpbXVzLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL29jLWNoZWNrYm94L29jLWNoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1jaGVja2JveC9vYy1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFHTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFBOzs7OztBQW1CdkIsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUNVLGlCQUFvQyxFQUNwQyxHQUFzQjtRQUR0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBSmhDLGVBQVUsR0FBVyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFBO1FBT2hDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO1FBRXZDLGNBQVMsR0FBWSxLQUFLLENBQUE7UUFDMUIsV0FBTSxHQUFxQixPQUFPLENBQUE7UUFDbEMsWUFBTyxHQUFZLEVBQUUsQ0FBQTtRQUNyQixXQUFNLEdBQVksRUFBRSxDQUFBO1FBQ3BCLFlBQU8sR0FBdUIsT0FBTyxDQUFBO1FBQ3JDLGtCQUFhLEdBQXFCLE9BQU8sQ0FBQTtRQUN6QyxZQUFPLEdBQXFCLFFBQVEsQ0FBQTtRQUNuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUE7UUFHNUMsNEJBQXVCLEdBQUcsSUFBSSxDQUFBO1FBRy9CLGNBQVMsR0FBRyxHQUFTLEVBQUUsR0FBRSxDQUFDLENBQUE7UUEwQjFCLHVCQUFrQixHQUFHLENBQUMsQ0FBQTtRQUN0QixjQUFTLEdBQXlDLElBQUksQ0FBQTtJQTVDM0QsQ0FBQztJQW1CSixlQUFlO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQTtRQUNyRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBNEI7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFBO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBSVMsYUFBYTtRQUNyQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtRQUN2QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQTtZQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUE7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUE7Z0JBQ3ZCLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ2xELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNULENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQTtZQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDekMsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFBO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDeEIsT0FBTTtRQUNSLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQTtRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUMvQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVsQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDM0MsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDOytHQTlGVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwyWUFUbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDakNILDQwQkE2QlMseW1ERExHLFlBQVksNEhBQUUsV0FBVyx1VEFBRSxtQkFBbUI7OzRGQVk3QyxtQkFBbUI7a0JBZi9CLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUMsYUFHOUM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxPQUFPO3NIQVV0QyxRQUFRO3NCQUFqQixNQUFNO2dCQUVFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBTdHlsZVRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0eWxlLXRoZW1lLnNlcnZpY2UnXG5pbXBvcnQgeyBPY1N0eWxlVGhlbWVUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vYy1zdHlsZS10aGVtZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtY2hlY2tib3gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy1jaGVja2JveC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT2NDaGVja2JveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG59KVxuZXhwb3J0IGNsYXNzIE9jQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIGNoZWNrQm94SWQ6IHN0cmluZyA9IGBvYy0ke01hdGgucmFuZG9tKCl9YFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3R5bGVUaGVtZVNlcnZpY2U6IFN0eWxlVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgQE91dHB1dCgpIG9jQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgQElucHV0KCkgb2NDaGVja2VkOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgb2NTaXplOiAndGlueScgfCAnc21hbGwnID0gJ3NtYWxsJ1xuICBASW5wdXQoKSBvY0xhYmVsPzogc3RyaW5nID0gJydcbiAgQElucHV0KCkgb2NOYW1lPzogc3RyaW5nID0gJydcbiAgQElucHV0KCkgb2NDb2xvcjogJ3B1cnBsZScgfCAnZ3JlZW4nID0gJ2dyZWVuJ1xuICBASW5wdXQoKSBvY0JvcmRlckNvbG9yOiAnd2hpdGUnIHwgJ2dyYXknID0gJ3doaXRlJ1xuICBASW5wdXQoKSBvY1N0eWxlOiBPY1N0eWxlVGhlbWVUeXBlID0gJ290aW11cydcbiAgQE91dHB1dCgpIG9jRG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgQElucHV0KCkgZm9ybUNvbnRyb2w/OiBGb3JtQ29udHJvbFxuICBASW5wdXQoKSBvY1RhYkluZGV4PzogbnVtYmVyXG4gIEBJbnB1dCgpIGRpc2FibGVEb3VibGVDbGlja0NoZWNrID0gdHJ1ZVxuXG4gIHByaXZhdGUgb25DaGFuZ2U/OiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWRcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9jU3R5bGUgPSB0aGlzLnN0eWxlVGhlbWVTZXJ2aWNlLmdldFN0eWxlVGhlbWUoKSB8fCB0aGlzLm9jU3R5bGVcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMub2NDaGVja2VkID0gdmFsdWVcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBwcml2YXRlIGRvdWJsZUNsaWNrQ291bnRlciA9IDBcbiAgcHJpdmF0ZSB0aW1lb3V0SWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGxcbiAgcHJvdGVjdGVkIG9uRG91YmxlQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZURvdWJsZUNsaWNrQ2hlY2spIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy50aW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZClcbiAgICAgIHRoaXMudGltZW91dElkID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0aGlzLmRvdWJsZUNsaWNrQ291bnRlciA9PT0gMCkge1xuICAgICAgdGhpcy5kb3VibGVDbGlja0NvdW50ZXIgPSAxXG4gICAgICB0aGlzLnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvdWJsZUNsaWNrQ291bnRlciA9IDBcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpLCAxMDApXG4gICAgICB9LCA1MDApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG91YmxlQ2xpY2tDb3VudGVyID0gMFxuICAgICAgaWYgKHRoaXMub2NEb3VibGVDbGljayAmJiB0aGlzLm9jQ2hlY2tlZCkge1xuICAgICAgICB0aGlzLm9jRG91YmxlQ2xpY2suZW1pdCh0aGlzLm9jQ2hlY2tlZClcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICB0b2dnbGVDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRvdWJsZUNsaWNrQ291bnRlciA9PT0gMSkge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMub2NDaGVja2VkID0gIXRoaXMub2NDaGVja2VkXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5vY0NoZWNrZWQpXG4gICAgfVxuICAgIHRoaXMub25Ub3VjaGVkKClcbiAgICB0aGlzLm9jQ2hhbmdlLmVtaXQodGhpcy5vY0NoZWNrZWQpXG5cbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9jQ2hlY2tlZClcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxufVxuIiwiPGJ1dHRvbiBjbGFzcz1cIm9jLWNoZWNrYm94LWNvbnRlbnQgY2J4XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJ0b2dnbGVDaGVja2VkKCk7XG5vbkRvdWJsZUNsaWNrKClcIiBbbmdDbGFzc109XCJ7XG4gIHNodWk6IG9jU3R5bGUgPT09ICdzaHVpJ1xufVwiIFt0YWJJbmRleF09XCJvY1RhYkluZGV4XCI+XG5cbiAgPGRpdiBjbGFzcz1cIm9jLWNoZWNrYm94IGNieFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICdjaGVja2VkJzogb2NDaGVja2VkLFxuICAgICAgJ3RpbnknOiBvY1NpemUgPT09ICd0aW55JyxcbiAgICAgIHB1cnBsZTogb2NDb2xvciA9PT0gJ3B1cnBsZScsXG4gICAgICAnZ3JheS1ib3JkZXInOiBvY0JvcmRlckNvbG9yID09PSAnZ3JheSdcbiAgICB9XCI+XG5cbiAgICA8c3BhbiBjbGFzcz1cImNoZWNrLWljb24gbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmNoZWNrX3NtYWxsPC9zcGFuPlxuICA8L2Rpdj5cblxuICBAaWYob2NMYWJlbCkge1xuICA8c3BhbiBjbGFzcz1cIm9jLWNoZWNrYm94LWxhYmVsIGNieFwiPlxuICAgIHt7b2NMYWJlbH19XG4gIDwvc3Bhbj5cbiAgfVxuXG4gIDxuZy1jb250ZW50PlxuICA8L25nLWNvbnRlbnQ+XG5cbiAgQGlmKGZvcm1Db250cm9sKSB7XG4gIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbbmFtZV09XCJvY05hbWVcIiBbY2hlY2tlZF09XCJvY0NoZWNrZWRcIiB0eXBlPVwiY2hlY2tib3hcIiBoaWRkZW4+XG4gIH0gQGVsc2Uge1xuICA8aW5wdXQgW25hbWVdPVwib2NOYW1lXCIgW2NoZWNrZWRdPVwib2NDaGVja2VkXCIgdHlwZT1cImNoZWNrYm94XCIgaGlkZGVuPlxuICB9XG48L2J1dHRvbj4iXX0=
@@ -0,0 +1,45 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class OcChipComponent {
6
+ constructor() {
7
+ this.ocSelected = false;
8
+ this.ocType = 'select';
9
+ this.ocBg = 'green';
10
+ this.ocText = '';
11
+ this.ocClick = new EventEmitter;
12
+ this.ocRemove = new EventEmitter;
13
+ }
14
+ ocEvent(event) {
15
+ event.stopPropagation();
16
+ this.ocClick.emit();
17
+ }
18
+ ocRemoveEvent(event) {
19
+ event.stopPropagation();
20
+ if (!this.ocRemove.observed) {
21
+ this.ocClick.emit();
22
+ return;
23
+ }
24
+ this.ocRemove.emit();
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: OcChipComponent, isStandalone: true, selector: "oc-chip", inputs: { ocSelected: "ocSelected", ocType: "ocType", ocBg: "ocBg", ocText: "ocText" }, outputs: { ocClick: "ocClick", ocRemove: "ocRemove" }, ngImport: i0, template: "<button\n [ngClass]=\"{\n 'oc-chip': true,\n selected: ocSelected,\n 'not-selectable': ocType !== 'select' && ocType !== 'select_remove',\n 'tag': ocType === 'tag',\n 'remove': ocType === 'remove' || ocType==='select_remove',\n 'green-bg': ocBg === 'green',\n 'red-bg': ocBg === 'red',\n 'yellow-bg': ocBg === 'yellow'\n }\"\n type=\"button\"\n [title]=\"ocText\"\n (click)=\"ocType.includes('select') ? ocEvent($event) : null\"\n>\n <ng-content></ng-content>\n @if (ocType.includes('remove')) {\n <span class=\"material-symbols-outlined\" (click)=\"ocRemoveEvent($event)\">close</span>\n }\n</button>\n", styles: [".oc-chip{background-color:#f7f7f7;color:#8f9596;border:2px solid #d1d5db;border-radius:16px;font-size:1rem;font-weight:500;padding:3px 18px;transition:.3s ease!important;cursor:pointer}.oc-chip:hover{filter:brightness(.95)}.oc-chip:active{filter:brightness(.85)}.selected{background-color:#ccfbe6dc;border:2px solid #00dda3;color:#00dda3}.selected.red-bg{color:#ed3a3a;border-color:#ed3a3a;background-color:#ffcaca}.selected.green-bg{color:#00dda3;border-color:#00dda3;background-color:#ccfbe6dc}.selected.yellow-bg{color:#ebbc2e;border-color:#ebbc2e;background-color:#fffaea}.not-selectable{border:none;background-color:#f7f7f7;color:#8f9596;cursor:default}.not-selectable:active{cursor:not-allowed}.material-symbols-outlined{font-size:.9rem;width:10px;height:10px}.remove{display:flex;align-items:center;gap:.5rem;padding-right:.5rem}.remove:hover{filter:brightness(1)}.remove span{display:flex;align-items:center;justify-content:center;padding:5px;cursor:pointer;border-radius:50%;transition:.1s ease}.remove span:hover{background-color:#d1d5db}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcChipComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'oc-chip', standalone: true, imports: [CommonModule], template: "<button\n [ngClass]=\"{\n 'oc-chip': true,\n selected: ocSelected,\n 'not-selectable': ocType !== 'select' && ocType !== 'select_remove',\n 'tag': ocType === 'tag',\n 'remove': ocType === 'remove' || ocType==='select_remove',\n 'green-bg': ocBg === 'green',\n 'red-bg': ocBg === 'red',\n 'yellow-bg': ocBg === 'yellow'\n }\"\n type=\"button\"\n [title]=\"ocText\"\n (click)=\"ocType.includes('select') ? ocEvent($event) : null\"\n>\n <ng-content></ng-content>\n @if (ocType.includes('remove')) {\n <span class=\"material-symbols-outlined\" (click)=\"ocRemoveEvent($event)\">close</span>\n }\n</button>\n", styles: [".oc-chip{background-color:#f7f7f7;color:#8f9596;border:2px solid #d1d5db;border-radius:16px;font-size:1rem;font-weight:500;padding:3px 18px;transition:.3s ease!important;cursor:pointer}.oc-chip:hover{filter:brightness(.95)}.oc-chip:active{filter:brightness(.85)}.selected{background-color:#ccfbe6dc;border:2px solid #00dda3;color:#00dda3}.selected.red-bg{color:#ed3a3a;border-color:#ed3a3a;background-color:#ffcaca}.selected.green-bg{color:#00dda3;border-color:#00dda3;background-color:#ccfbe6dc}.selected.yellow-bg{color:#ebbc2e;border-color:#ebbc2e;background-color:#fffaea}.not-selectable{border:none;background-color:#f7f7f7;color:#8f9596;cursor:default}.not-selectable:active{cursor:not-allowed}.material-symbols-outlined{font-size:.9rem;width:10px;height:10px}.remove{display:flex;align-items:center;gap:.5rem;padding-right:.5rem}.remove:hover{filter:brightness(1)}.remove span{display:flex;align-items:center;justify-content:center;padding:5px;cursor:pointer;border-radius:50%;transition:.1s ease}.remove span:hover{background-color:#d1d5db}\n"] }]
32
+ }], propDecorators: { ocSelected: [{
33
+ type: Input
34
+ }], ocType: [{
35
+ type: Input
36
+ }], ocBg: [{
37
+ type: Input
38
+ }], ocText: [{
39
+ type: Input
40
+ }], ocClick: [{
41
+ type: Output
42
+ }], ocRemove: [{
43
+ type: Output
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdGltdXMtbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvb2MtY2hpcC9vYy1jaGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1jaGlwL29jLWNoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFnQixLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTckYsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRVyxlQUFVLEdBQVksS0FBSyxDQUFBO1FBQzNCLFdBQU0sR0FBa0QsUUFBUSxDQUFBO1FBQ2hFLFNBQUksR0FBMkMsT0FBTyxDQUFBO1FBQ3RELFdBQU0sR0FBVyxFQUFFLENBQUE7UUFDbEIsWUFBTyxHQUFzQixJQUFJLFlBQWlCLENBQUE7UUFDbEQsYUFBUSxHQUFzQixJQUFJLFlBQWlCLENBQUE7S0FlOUQ7SUFiQyxPQUFPLENBQUMsS0FBUztRQUNmLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxhQUFhLENBQUUsS0FBVTtRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdkIsSUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUNuQixPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdEIsQ0FBQzsrR0FwQlUsZUFBZTttR0FBZixlQUFlLGtOQ1Y1Qixnb0JBb0JBLG1sQ0RkWSxZQUFZOzs0RkFJWCxlQUFlO2tCQVAzQixTQUFTOytCQUNFLFNBQVMsY0FDUCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBS2QsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvYy1jaGlwJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29jLWNoaXAuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIE9jQ2hpcENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG9jU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBvY1R5cGU6ICdzZWxlY3QnIHwgJ3JlbW92ZScgfCAndGFnJyB8ICdzZWxlY3RfcmVtb3ZlJyA9ICdzZWxlY3QnXG4gIEBJbnB1dCgpIG9jQmc6ICdncmVlbicgfCAncmVkJyB8ICd5ZWxsb3cnIHwgJ2RlZmF1bHQnID0gJ2dyZWVuJ1xuICBASW5wdXQoKSBvY1RleHQ6IHN0cmluZyA9ICcnXG4gIEBPdXRwdXQoKSBvY0NsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PlxuICBAT3V0cHV0KCkgb2NSZW1vdmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+XG5cbiAgb2NFdmVudChldmVudDphbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHRoaXMub2NDbGljay5lbWl0KClcbiAgfVxuICBcbiAgb2NSZW1vdmVFdmVudCAoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYoIXRoaXMub2NSZW1vdmUub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMub2NDbGljay5lbWl0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLm9jUmVtb3ZlLmVtaXQoKVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnb2MtY2hpcCc6IHRydWUsXG4gICAgc2VsZWN0ZWQ6IG9jU2VsZWN0ZWQsXG4gICAgJ25vdC1zZWxlY3RhYmxlJzogb2NUeXBlICE9PSAnc2VsZWN0JyAmJiBvY1R5cGUgIT09ICdzZWxlY3RfcmVtb3ZlJyxcbiAgICAndGFnJzogb2NUeXBlID09PSAndGFnJyxcbiAgICAncmVtb3ZlJzogb2NUeXBlID09PSAncmVtb3ZlJyB8fCBvY1R5cGU9PT0nc2VsZWN0X3JlbW92ZScsXG4gICAgJ2dyZWVuLWJnJzogb2NCZyA9PT0gJ2dyZWVuJyxcbiAgICAncmVkLWJnJzogb2NCZyA9PT0gJ3JlZCcsXG4gICAgJ3llbGxvdy1iZyc6IG9jQmcgPT09ICd5ZWxsb3cnXG4gIH1cIlxuICB0eXBlPVwiYnV0dG9uXCJcbiAgW3RpdGxlXT1cIm9jVGV4dFwiXG4gIChjbGljayk9XCJvY1R5cGUuaW5jbHVkZXMoJ3NlbGVjdCcpID8gb2NFdmVudCgkZXZlbnQpIDogbnVsbFwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgQGlmIChvY1R5cGUuaW5jbHVkZXMoJ3JlbW92ZScpKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCIgKGNsaWNrKT1cIm9jUmVtb3ZlRXZlbnQoJGV2ZW50KVwiPmNsb3NlPC9zcGFuPlxuICB9XG48L2J1dHRvbj5cbiJdfQ==
@@ -0,0 +1,39 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input } from '@angular/core';
3
+ import { OcBadgeComponent } from '../oc-badge/oc-badge.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/style-theme.service";
6
+ import * as i2 from "@angular/common";
7
+ export class OcFilterComponent {
8
+ constructor(styleThemeService) {
9
+ this.styleThemeService = styleThemeService;
10
+ this.isOpen = false;
11
+ this.ocText = 'Filtros';
12
+ this.ocActive = 0;
13
+ this.ocSide = 'left';
14
+ this.ocStyle = 'otimus';
15
+ }
16
+ ngAfterViewInit() {
17
+ this.ocStyle = this.styleThemeService.getStyleTheme() || this.ocStyle;
18
+ }
19
+ toggleOpen() {
20
+ this.isOpen = !this.isOpen;
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcFilterComponent, deps: [{ token: i1.StyleThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: OcFilterComponent, isStandalone: true, selector: "oc-filter", inputs: { isOpen: "isOpen", ocText: "ocText", ocActive: "ocActive", ocSide: "ocSide", ocStyle: "ocStyle" }, ngImport: i0, template: "<div class=\"oc-filter-row\" [ngClass]=\"{\n reverse: ocSide === 'right'\n}\">\n <button class=\"oc-filter-btn\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n }\" (click)=\"toggleOpen()\">\n <span class=\"material-symbols-outlined\">filter_list</span>\n {{ocText}}\n <div class=\"badge\">\n <oc-badge *ngIf=\"ocActive > 0\" ocSize=\"small\" ocColor=\"success\" [ocWaved]=\"true\">{{ocActive}}</oc-badge>\n </div>\n </button>\n\n <div class=\"filter-row-content\">\n <ng-content select=\"[row]\"></ng-content>\n </div>\n\n</div>\n<div *ngIf=\"isOpen\" class=\"oc-filter-content\">\n <ng-content select=\"[body]\">\n </ng-content>\n</div>", styles: [".oc-filter-row{display:flex;align-items:center;gap:1rem}.oc-filter-row .filter-row-content{width:100%}.reverse{flex-direction:row-reverse}.oc-filter-btn{background-color:#5505a2;color:#f8f9ff;border:none;border-radius:.5rem;padding:.4rem .8rem;font-weight:600;display:flex;align-items:center;gap:.2rem;transition:.2s ease;position:relative;cursor:pointer}.oc-filter-btn:hover{filter:brightness(.9)}.oc-filter-btn .material-symbols-outlined{font-size:1rem;color:#f7f7f7}.oc-filter-btn img{width:15px;filter:brightness(0) invert(1)}.oc-filter-btn .badge{position:absolute;top:-8px;right:-12px}.oc-filter-btn.shui{background-color:#099!important;border-radius:50px!important}.oc-filter-content{width:100%;animation:showing-up .15s ease;margin-top:1rem}@keyframes showing-up{0%{height:0px;opacity:0}to{height:100%;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OcBadgeComponent, selector: "oc-badge", inputs: ["ocSize", "ocColor", "ocWaved"] }] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcFilterComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'oc-filter', standalone: true, imports: [CommonModule, OcBadgeComponent], template: "<div class=\"oc-filter-row\" [ngClass]=\"{\n reverse: ocSide === 'right'\n}\">\n <button class=\"oc-filter-btn\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n }\" (click)=\"toggleOpen()\">\n <span class=\"material-symbols-outlined\">filter_list</span>\n {{ocText}}\n <div class=\"badge\">\n <oc-badge *ngIf=\"ocActive > 0\" ocSize=\"small\" ocColor=\"success\" [ocWaved]=\"true\">{{ocActive}}</oc-badge>\n </div>\n </button>\n\n <div class=\"filter-row-content\">\n <ng-content select=\"[row]\"></ng-content>\n </div>\n\n</div>\n<div *ngIf=\"isOpen\" class=\"oc-filter-content\">\n <ng-content select=\"[body]\">\n </ng-content>\n</div>", styles: [".oc-filter-row{display:flex;align-items:center;gap:1rem}.oc-filter-row .filter-row-content{width:100%}.reverse{flex-direction:row-reverse}.oc-filter-btn{background-color:#5505a2;color:#f8f9ff;border:none;border-radius:.5rem;padding:.4rem .8rem;font-weight:600;display:flex;align-items:center;gap:.2rem;transition:.2s ease;position:relative;cursor:pointer}.oc-filter-btn:hover{filter:brightness(.9)}.oc-filter-btn .material-symbols-outlined{font-size:1rem;color:#f7f7f7}.oc-filter-btn img{width:15px;filter:brightness(0) invert(1)}.oc-filter-btn .badge{position:absolute;top:-8px;right:-12px}.oc-filter-btn.shui{background-color:#099!important;border-radius:50px!important}.oc-filter-content{width:100%;animation:showing-up .15s ease;margin-top:1rem}@keyframes showing-up{0%{height:0px;opacity:0}to{height:100%;opacity:1}}\n"] }]
28
+ }], ctorParameters: () => [{ type: i1.StyleThemeService }], propDecorators: { isOpen: [{
29
+ type: Input
30
+ }], ocText: [{
31
+ type: Input
32
+ }], ocActive: [{
33
+ type: Input
34
+ }], ocSide: [{
35
+ type: Input
36
+ }], ocStyle: [{
37
+ type: Input
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1maWx0ZXIvb2MtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1maWx0ZXIvb2MtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7Ozs7QUFXakUsTUFBTSxPQUFPLGlCQUFpQjtJQU81QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQU4vQyxXQUFNLEdBQVksS0FBSyxDQUFBO1FBQ3ZCLFdBQU0sR0FBVyxTQUFTLENBQUE7UUFDMUIsYUFBUSxHQUFXLENBQUMsQ0FBQTtRQUNwQixXQUFNLEdBQXFCLE1BQU0sQ0FBQTtRQUNqQyxZQUFPLEdBQXFCLFFBQVEsQ0FBQTtJQUVjLENBQUM7SUFFNUQsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDdkUsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUM1QixDQUFDOytHQWZVLGlCQUFpQjttR0FBakIsaUJBQWlCLGlMQ2I5QiwwcEJBcUJNLGczQkRaTSxZQUFZLGlPQUFFLGdCQUFnQjs7NEZBSTdCLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO3NGQUtoQyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2NCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4uL29jLWJhZGdlL29jLWJhZGdlLmNvbXBvbmVudCdcbmltcG9ydCB7IE9jU3R5bGVUaGVtZVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL29jLXN0eWxlLXRoZW1lJ1xuaW1wb3J0IHsgU3R5bGVUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdHlsZS10aGVtZS5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvYy1maWx0ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPY0JhZGdlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL29jLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy1maWx0ZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPY0ZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBpc09wZW46IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBvY1RleHQ6IHN0cmluZyA9ICdGaWx0cm9zJ1xuICBASW5wdXQoKSBvY0FjdGl2ZTogbnVtYmVyID0gMFxuICBASW5wdXQoKSBvY1NpZGU6ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCdcbiAgQElucHV0KCkgb2NTdHlsZTogT2NTdHlsZVRoZW1lVHlwZSA9ICdvdGltdXMnXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdHlsZVRoZW1lU2VydmljZTogU3R5bGVUaGVtZVNlcnZpY2UpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub2NTdHlsZSA9IHRoaXMuc3R5bGVUaGVtZVNlcnZpY2UuZ2V0U3R5bGVUaGVtZSgpIHx8IHRoaXMub2NTdHlsZVxuICB9XG5cbiAgdG9nZ2xlT3BlbigpIHtcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlblxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2MtZmlsdGVyLXJvd1wiIFtuZ0NsYXNzXT1cIntcbiAgcmV2ZXJzZTogb2NTaWRlID09PSAncmlnaHQnXG59XCI+XG4gIDxidXR0b24gY2xhc3M9XCJvYy1maWx0ZXItYnRuXCIgW25nQ2xhc3NdPVwie1xuICAgIHNodWk6IG9jU3R5bGUgPT09ICdzaHVpJ1xuICB9XCIgKGNsaWNrKT1cInRvZ2dsZU9wZW4oKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmZpbHRlcl9saXN0PC9zcGFuPlxuICAgIHt7b2NUZXh0fX1cbiAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj5cbiAgICAgIDxvYy1iYWRnZSAqbmdJZj1cIm9jQWN0aXZlID4gMFwiIG9jU2l6ZT1cInNtYWxsXCIgb2NDb2xvcj1cInN1Y2Nlc3NcIiBbb2NXYXZlZF09XCJ0cnVlXCI+e3tvY0FjdGl2ZX19PC9vYy1iYWRnZT5cbiAgICA8L2Rpdj5cbiAgPC9idXR0b24+XG5cbiAgPGRpdiBjbGFzcz1cImZpbHRlci1yb3ctY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyb3ddXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiaXNPcGVuXCIgY2xhc3M9XCJvYy1maWx0ZXItY29udGVudFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbYm9keV1cIj5cbiAgPC9uZy1jb250ZW50PlxuPC9kaXY+Il19
@@ -0,0 +1,97 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, ContentChild, HostBinding, Input, ViewEncapsulation, } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/style-theme.service";
5
+ import * as i2 from "@angular/common";
6
+ export class OcInputComponent {
7
+ get computedWidth() {
8
+ return this.ocWidth ? this.ocWidth : null;
9
+ }
10
+ get computedMinWidth() {
11
+ return this.ocMinWidth || '0';
12
+ }
13
+ get computedMaxWidth() {
14
+ return this.ocMaxWidth || '100%';
15
+ }
16
+ constructor(el, renderer, styleThemeService) {
17
+ this.el = el;
18
+ this.renderer = renderer;
19
+ this.styleThemeService = styleThemeService;
20
+ this.ocSize = 'medium';
21
+ this.ocPlaceholder = '';
22
+ this.ocRequired = false;
23
+ this.ocStyle = 'otimus';
24
+ this.inputId = `oc-${Math.random()}`;
25
+ this.hasSuffix = false;
26
+ this.hasPrefix = false;
27
+ }
28
+ ngOnChanges(changes) {
29
+ if (this.ocPrefix) {
30
+ this.hasPrefix = true;
31
+ }
32
+ if (this.ocSuffix) {
33
+ this.hasSuffix = true;
34
+ }
35
+ }
36
+ ngAfterViewInit() {
37
+ this.ocStyle = this.styleThemeService.getStyleTheme() || this.ocStyle;
38
+ const inputBox = this.el.nativeElement;
39
+ if (inputBox) {
40
+ const inputElement = inputBox.querySelector('input');
41
+ if (inputElement) {
42
+ this.renderer.setAttribute(inputElement, 'placeholder', '');
43
+ this.renderer.setAttribute(inputElement, 'required', this.ocRequired.toString());
44
+ }
45
+ }
46
+ }
47
+ ngAfterContentChecked() {
48
+ if (this.ocPrefix) {
49
+ this.hasPrefix = true;
50
+ }
51
+ if (this.ocSuffix) {
52
+ this.hasSuffix = true;
53
+ }
54
+ }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.StyleThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: OcInputComponent, isStandalone: true, selector: "oc-input", inputs: { ocError: "ocError", ocSize: "ocSize", ocPlaceholder: "ocPlaceholder", ocWidth: "ocWidth", ocMinWidth: "ocMinWidth", ocMaxWidth: "ocMaxWidth", ocRequired: "ocRequired", ocStyle: "ocStyle" }, host: { properties: { "style.width": "this.computedWidth", "style.min-width": "this.computedMinWidth", "style.max-width": "this.computedMaxWidth" } }, queries: [{ propertyName: "ocPrefix", first: true, predicate: ["ocPrefix"], descendants: true }, { propertyName: "ocSuffix", first: true, predicate: ["ocSuffix"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"{\n 'oc-input-box': !ocStyle || ocStyle === 'otimus',\n small: ocSize === 'small',\n large: ocSize === 'large',\n error: !!ocError,\n prefix: hasPrefix,\n suffix: hasSuffix,\n 'shui': ocStyle === 'shui',\n 'shui-input-box': ocStyle === 'shui'\n}\" [id]=\"inputId\">\n <ng-content></ng-content>\n <ng-content select=\"ocPrefix\"></ng-content>\n <ng-content select=\"ocSuffix\"></ng-content>\n <label>\n <span [innerHTML]=\"ocPlaceholder\"></span>\n @if(ocRequired) {\n <span class=\"oc color error\">*</span>\n }\n </label>\n <small *ngIf=\"ocError\" class=\"error-msg\">{{ocError}}</small>\n</div>", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box.suffix .material-symbols-outlined,.oc-input-box.suffix .oc.suffix{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box{position:relative;margin-top:.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box label .oc.color.error{font-weight:700;margin-left:.2rem}.oc-input-box.prefix .material-symbols-outlined,.oc-input-box.prefix .oc.suffix{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:1.75rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined,.oc-input-box.suffix .oc.suffix{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:1.75rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.oc-input-box.small input,.oc-input-box.small textarea,.oc-input-box.small select{padding:.3rem .7rem;border-radius:.5rem}.oc-input-box.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}.oc-input-box.small.prefix label{padding:.45rem 2.5rem}.oc-input-box.small.suffix .material-symbols-outlined{padding:.35rem .7rem}.oc-input-box.small.suffix label{padding:.45rem .7rem}.oc-input-box.small label{padding:.5rem .7rem}.oc-input-box.small input:focus~label,.oc-input-box.small input:not(:placeholder-shown)~label,.oc-input-box.small textarea:focus~label,.oc-input-box.small textarea:not(:placeholder-shown)~label,.oc-input-box.small select:focus~label,.oc-input-box.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box.large input,.oc-input-box.large textarea,.oc-input-box.large select{padding:1rem;border-radius:1rem}.oc-input-box.large label,.oc-input-box.large.prefix .material-symbols-outlined{padding:1rem .7rem}.oc-input-box.large.prefix input{padding-left:2.5rem}.oc-input-box.large.prefix label{padding:1.1rem 2.5rem}.oc-input-box.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.oc-input-box.large.suffix input{padding-right:2.5rem}.oc-input-box.large.suffix label{padding:1.1rem .7rem}.oc-input-box.large input:focus~label,.oc-input-box.large input:not(:placeholder-shown)~label,.oc-input-box.large textarea:focus~label,.oc-input-box.large textarea:not(:placeholder-shown)~label,.oc-input-box.large select:focus~label,.oc-input-box.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.semantic-input{display:inline-block;width:100%;padding:10px 12px;font-size:14px;line-height:1.5;color:#333;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 2px #22242626;transition:border-color .2s ease,box-shadow .2s ease}.semantic-input:hover{border-color:#b3b3b3}.semantic-input:focus{border-color:#85b7d9;box-shadow:0 0 0 2px #22242626;outline:none}.semantic-input:disabled{background-color:#f9f9f9;color:#b3b3b3;border-color:#ddd;cursor:not-allowed}.shui-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.shui-input-box.suffix .material-symbols-outlined,.shui-input-box.suffix .oc.suffix{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.shui-input-box{position:relative;margin-top:.5rem}.shui-input-box select *{background-color:#ebebeb}.shui-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#000;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.shui-input-box.prefix{z-index:5}.shui-input-box.prefix .material-symbols-outlined,.shui-input-box.prefix .oc.suffix{padding:.5rem .7rem}.shui-input-box.prefix input{padding-left:1.75rem}.shui-input-box.prefix label{padding:.7rem 2.5rem}.shui-input-box.suffix{z-index:5}.shui-input-box.suffix .material-symbols-outlined,.shui-input-box.suffix .oc.suffix{padding:.5rem .7rem}.shui-input-box.suffix input{padding-right:1.75rem}.shui-input-box.suffix label{padding:.7rem}.shui-input-box input,.shui-input-box textarea,.shui-input-box select{font-size:1rem;background-color:#ebebeb;border:none;outline:none;padding:1rem .9rem .2rem;width:100%;transition:.3s ease;color:#000;font-weight:400;height:41px;min-width:100%}.shui-input-box textarea{height:inherit;padding-top:20px}.shui-input-box input:not(:placeholder-shown)~label,.shui-input-box input:focus~label,.shui-input-box textarea:not(:placeholder-shown)~label,.shui-input-box textarea:focus~label,.shui-input-box select:valid~label,.shui-input-box select:focus~label{transform:translate(.45rem);background-color:#ebebeb;width:95%;padding:1px 7px 0;font-size:.7rem;font-weight:500}.shui-input-box input:focus~label,.shui-input-box textarea:focus~label,.shui-input-box select:valid~label,.shui-input-box select:focus~label{color:#0169b2}.shui-input-box:before{display:block;content:\"\";position:absolute;bottom:0;height:1px;width:100%;background-color:#7d7d7d;transition:.4s ease;width:0;background-color:#0169b2}.shui-input-box:focus-within:before{width:100%}.error input,.error textarea,.error select{border:1px solid #e7001d;box-shadow:0 4px 6.1px #a1000014}.error:before{width:0!important}.error small,.error label{color:#ed3a3a!important;font-weight:600}.shui-input-box.small input,.shui-input-box.small textarea,.shui-input-box.small select{max-height:36px;padding-top:1rem}.shui-input-box.small.prefix{z-index:5}.shui-input-box.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem;color:#0169b2}.shui-input-box.small.prefix label{padding:.45rem 2.5rem}.shui-input-box.small.suffix{z-index:5}.shui-input-box.small.suffix .material-symbols-outlined{padding:.35rem .7rem;color:#0169b2}.shui-input-box.small.suffix label{padding:.45rem .7rem}.shui-input-box.large input,.shui-input-box.large textarea,.shui-input-box.large select{height:46px}.shui-input-box.large label{padding:1rem .7rem}.shui-input-box.large.prefix{z-index:5}.shui-input-box.large.prefix .material-symbols-outlined{padding:1rem .7rem}.shui-input-box.large.prefix input{padding-left:2.5rem}.shui-input-box.large.prefix label{padding:1.1rem 2.5rem}.shui-input-box.large.suffix{z-index:5}.shui-input-box.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.shui-input-box.large.suffix input{padding-right:2.5rem}.shui-input-box.large.suffix label{padding:1.1rem .7rem}.oc.suffix,.oc.prefix,.material-symbols-outlined{z-index:5!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcInputComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'oc-input', host: {
61
+ '[style.width]': 'computedWidth',
62
+ '[style.min-width]': 'computedMinWidth',
63
+ '[style.max-width]': 'computedMaxWidth',
64
+ }, standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div [ngClass]=\"{\n 'oc-input-box': !ocStyle || ocStyle === 'otimus',\n small: ocSize === 'small',\n large: ocSize === 'large',\n error: !!ocError,\n prefix: hasPrefix,\n suffix: hasSuffix,\n 'shui': ocStyle === 'shui',\n 'shui-input-box': ocStyle === 'shui'\n}\" [id]=\"inputId\">\n <ng-content></ng-content>\n <ng-content select=\"ocPrefix\"></ng-content>\n <ng-content select=\"ocSuffix\"></ng-content>\n <label>\n <span [innerHTML]=\"ocPlaceholder\"></span>\n @if(ocRequired) {\n <span class=\"oc color error\">*</span>\n }\n </label>\n <small *ngIf=\"ocError\" class=\"error-msg\">{{ocError}}</small>\n</div>", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box.suffix .material-symbols-outlined,.oc-input-box.suffix .oc.suffix{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box{position:relative;margin-top:.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box label .oc.color.error{font-weight:700;margin-left:.2rem}.oc-input-box.prefix .material-symbols-outlined,.oc-input-box.prefix .oc.suffix{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:1.75rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined,.oc-input-box.suffix .oc.suffix{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:1.75rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.oc-input-box.small input,.oc-input-box.small textarea,.oc-input-box.small select{padding:.3rem .7rem;border-radius:.5rem}.oc-input-box.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}.oc-input-box.small.prefix label{padding:.45rem 2.5rem}.oc-input-box.small.suffix .material-symbols-outlined{padding:.35rem .7rem}.oc-input-box.small.suffix label{padding:.45rem .7rem}.oc-input-box.small label{padding:.5rem .7rem}.oc-input-box.small input:focus~label,.oc-input-box.small input:not(:placeholder-shown)~label,.oc-input-box.small textarea:focus~label,.oc-input-box.small textarea:not(:placeholder-shown)~label,.oc-input-box.small select:focus~label,.oc-input-box.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box.large input,.oc-input-box.large textarea,.oc-input-box.large select{padding:1rem;border-radius:1rem}.oc-input-box.large label,.oc-input-box.large.prefix .material-symbols-outlined{padding:1rem .7rem}.oc-input-box.large.prefix input{padding-left:2.5rem}.oc-input-box.large.prefix label{padding:1.1rem 2.5rem}.oc-input-box.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.oc-input-box.large.suffix input{padding-right:2.5rem}.oc-input-box.large.suffix label{padding:1.1rem .7rem}.oc-input-box.large input:focus~label,.oc-input-box.large input:not(:placeholder-shown)~label,.oc-input-box.large textarea:focus~label,.oc-input-box.large textarea:not(:placeholder-shown)~label,.oc-input-box.large select:focus~label,.oc-input-box.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.semantic-input{display:inline-block;width:100%;padding:10px 12px;font-size:14px;line-height:1.5;color:#333;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 2px #22242626;transition:border-color .2s ease,box-shadow .2s ease}.semantic-input:hover{border-color:#b3b3b3}.semantic-input:focus{border-color:#85b7d9;box-shadow:0 0 0 2px #22242626;outline:none}.semantic-input:disabled{background-color:#f9f9f9;color:#b3b3b3;border-color:#ddd;cursor:not-allowed}.shui-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.shui-input-box.suffix .material-symbols-outlined,.shui-input-box.suffix .oc.suffix{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.shui-input-box{position:relative;margin-top:.5rem}.shui-input-box select *{background-color:#ebebeb}.shui-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#000;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.shui-input-box.prefix{z-index:5}.shui-input-box.prefix .material-symbols-outlined,.shui-input-box.prefix .oc.suffix{padding:.5rem .7rem}.shui-input-box.prefix input{padding-left:1.75rem}.shui-input-box.prefix label{padding:.7rem 2.5rem}.shui-input-box.suffix{z-index:5}.shui-input-box.suffix .material-symbols-outlined,.shui-input-box.suffix .oc.suffix{padding:.5rem .7rem}.shui-input-box.suffix input{padding-right:1.75rem}.shui-input-box.suffix label{padding:.7rem}.shui-input-box input,.shui-input-box textarea,.shui-input-box select{font-size:1rem;background-color:#ebebeb;border:none;outline:none;padding:1rem .9rem .2rem;width:100%;transition:.3s ease;color:#000;font-weight:400;height:41px;min-width:100%}.shui-input-box textarea{height:inherit;padding-top:20px}.shui-input-box input:not(:placeholder-shown)~label,.shui-input-box input:focus~label,.shui-input-box textarea:not(:placeholder-shown)~label,.shui-input-box textarea:focus~label,.shui-input-box select:valid~label,.shui-input-box select:focus~label{transform:translate(.45rem);background-color:#ebebeb;width:95%;padding:1px 7px 0;font-size:.7rem;font-weight:500}.shui-input-box input:focus~label,.shui-input-box textarea:focus~label,.shui-input-box select:valid~label,.shui-input-box select:focus~label{color:#0169b2}.shui-input-box:before{display:block;content:\"\";position:absolute;bottom:0;height:1px;width:100%;background-color:#7d7d7d;transition:.4s ease;width:0;background-color:#0169b2}.shui-input-box:focus-within:before{width:100%}.error input,.error textarea,.error select{border:1px solid #e7001d;box-shadow:0 4px 6.1px #a1000014}.error:before{width:0!important}.error small,.error label{color:#ed3a3a!important;font-weight:600}.shui-input-box.small input,.shui-input-box.small textarea,.shui-input-box.small select{max-height:36px;padding-top:1rem}.shui-input-box.small.prefix{z-index:5}.shui-input-box.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem;color:#0169b2}.shui-input-box.small.prefix label{padding:.45rem 2.5rem}.shui-input-box.small.suffix{z-index:5}.shui-input-box.small.suffix .material-symbols-outlined{padding:.35rem .7rem;color:#0169b2}.shui-input-box.small.suffix label{padding:.45rem .7rem}.shui-input-box.large input,.shui-input-box.large textarea,.shui-input-box.large select{height:46px}.shui-input-box.large label{padding:1rem .7rem}.shui-input-box.large.prefix{z-index:5}.shui-input-box.large.prefix .material-symbols-outlined{padding:1rem .7rem}.shui-input-box.large.prefix input{padding-left:2.5rem}.shui-input-box.large.prefix label{padding:1.1rem 2.5rem}.shui-input-box.large.suffix{z-index:5}.shui-input-box.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.shui-input-box.large.suffix input{padding-right:2.5rem}.shui-input-box.large.suffix label{padding:1.1rem .7rem}.oc.suffix,.oc.prefix,.material-symbols-outlined{z-index:5!important}\n"] }]
65
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.StyleThemeService }], propDecorators: { ocPrefix: [{
66
+ type: ContentChild,
67
+ args: ['ocPrefix']
68
+ }], ocSuffix: [{
69
+ type: ContentChild,
70
+ args: ['ocSuffix']
71
+ }], ocError: [{
72
+ type: Input
73
+ }], ocSize: [{
74
+ type: Input
75
+ }], ocPlaceholder: [{
76
+ type: Input
77
+ }], ocWidth: [{
78
+ type: Input
79
+ }], ocMinWidth: [{
80
+ type: Input
81
+ }], ocMaxWidth: [{
82
+ type: Input
83
+ }], ocRequired: [{
84
+ type: Input
85
+ }], ocStyle: [{
86
+ type: Input
87
+ }], computedWidth: [{
88
+ type: HostBinding,
89
+ args: ['style.width']
90
+ }], computedMinWidth: [{
91
+ type: HostBinding,
92
+ args: ['style.min-width']
93
+ }], computedMaxWidth: [{
94
+ type: HostBinding,
95
+ args: ['style.max-width']
96
+ }] } });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3RpbXVzLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL29jLWlucHV0L29jLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1pbnB1dC9vYy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBRVosV0FBVyxFQUNYLEtBQUssRUFJTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUE7Ozs7QUFpQnRCLE1BQU0sT0FBTyxnQkFBZ0I7SUFpQjNCLElBQ0ksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQzNDLENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFBO0lBQy9CLENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFBO0lBQ2xDLENBQUM7SUFFRCxZQUNVLEVBQWMsRUFDZCxRQUFtQixFQUNuQixpQkFBb0M7UUFGcEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTlCckMsV0FBTSxHQUFrQyxRQUFRLENBQUE7UUFDaEQsa0JBQWEsR0FBVyxFQUFFLENBQUE7UUFJMUIsZUFBVSxHQUFZLEtBQUssQ0FBQTtRQUMzQixZQUFPLEdBQXFCLFFBQVEsQ0FBQTtRQUU3QyxZQUFPLEdBQVcsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQTtRQUN2QyxjQUFTLEdBQVksS0FBSyxDQUFBO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUE7SUFxQnZCLENBQUM7SUFFSixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7UUFDdkIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUE7UUFDckUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUE7UUFFdEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUE7WUFFcEQsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQTtnQkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDbEYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtRQUN2QixDQUFDO0lBQ0gsQ0FBQzsrR0FwRVUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsaW5CQzlCN0IsbW9CQW9CTSwwN09ES00sWUFBWTs7NEZBS1gsZ0JBQWdCO2tCQWI1QixTQUFTOytCQUNFLFVBQVUsUUFDZDt3QkFDSixlQUFlLEVBQUUsZUFBZTt3QkFDaEMsbUJBQW1CLEVBQUUsa0JBQWtCO3dCQUN2QyxtQkFBbUIsRUFBRSxrQkFBa0I7cUJBQ3hDLGNBQ1csSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7dUlBR1gsUUFBUTtzQkFBakMsWUFBWTt1QkFBQyxVQUFVO2dCQUNFLFFBQVE7c0JBQWpDLFlBQVk7dUJBQUMsVUFBVTtnQkFFZixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFPRixhQUFhO3NCQURoQixXQUFXO3VCQUFDLGFBQWE7Z0JBTXRCLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTTFCLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPY1N0eWxlVGhlbWVUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vYy1zdHlsZS10aGVtZSdcbmltcG9ydCB7IFN0eWxlVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3R5bGUtdGhlbWUuc2VydmljZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtaW5wdXQnLFxuICBob3N0OiB7XG4gICAgJ1tzdHlsZS53aWR0aF0nOiAnY29tcHV0ZWRXaWR0aCcsXG4gICAgJ1tzdHlsZS5taW4td2lkdGhdJzogJ2NvbXB1dGVkTWluV2lkdGgnLFxuICAgICdbc3R5bGUubWF4LXdpZHRoXSc6ICdjb21wdXRlZE1heFdpZHRoJyxcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29jLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE9jSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudENoZWNrZWQge1xuICBAQ29udGVudENoaWxkKCdvY1ByZWZpeCcpIG9jUHJlZml4OiBhbnlcbiAgQENvbnRlbnRDaGlsZCgnb2NTdWZmaXgnKSBvY1N1ZmZpeDogYW55XG5cbiAgQElucHV0KCkgb2NFcnJvcj86IHN0cmluZ1xuICBASW5wdXQoKSBvY1NpemU/OiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnID0gJ21lZGl1bSdcbiAgQElucHV0KCkgb2NQbGFjZWhvbGRlcjogc3RyaW5nID0gJydcbiAgQElucHV0KCkgb2NXaWR0aD86IHN0cmluZ1xuICBASW5wdXQoKSBvY01pbldpZHRoPzogc3RyaW5nXG4gIEBJbnB1dCgpIG9jTWF4V2lkdGg/OiBzdHJpbmdcbiAgQElucHV0KCkgb2NSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlXG4gIEBJbnB1dCgpIG9jU3R5bGU6IE9jU3R5bGVUaGVtZVR5cGUgPSAnb3RpbXVzJ1xuXG4gIGlucHV0SWQ6IHN0cmluZyA9IGBvYy0ke01hdGgucmFuZG9tKCl9YFxuICBoYXNTdWZmaXg6IGJvb2xlYW4gPSBmYWxzZVxuICBoYXNQcmVmaXg6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKVxuICBnZXQgY29tcHV0ZWRXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5vY1dpZHRoID8gdGhpcy5vY1dpZHRoIDogbnVsbFxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgnKVxuICBnZXQgY29tcHV0ZWRNaW5XaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5vY01pbldpZHRoIHx8ICcwJ1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtd2lkdGgnKVxuICBnZXQgY29tcHV0ZWRNYXhXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5vY01heFdpZHRoIHx8ICcxMDAlJ1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBzdHlsZVRoZW1lU2VydmljZTogU3R5bGVUaGVtZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vY1ByZWZpeCkge1xuICAgICAgdGhpcy5oYXNQcmVmaXggPSB0cnVlXG4gICAgfVxuICAgIGlmICh0aGlzLm9jU3VmZml4KSB7XG4gICAgICB0aGlzLmhhc1N1ZmZpeCA9IHRydWVcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vY1N0eWxlID0gdGhpcy5zdHlsZVRoZW1lU2VydmljZS5nZXRTdHlsZVRoZW1lKCkgfHwgdGhpcy5vY1N0eWxlXG4gICAgY29uc3QgaW5wdXRCb3ggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcblxuICAgIGlmIChpbnB1dEJveCkge1xuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXRCb3gucXVlcnlTZWxlY3RvcignaW5wdXQnKVxuXG4gICAgICBpZiAoaW5wdXRFbGVtZW50KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGlucHV0RWxlbWVudCwgJ3BsYWNlaG9sZGVyJywgJycpXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGlucHV0RWxlbWVudCwgJ3JlcXVpcmVkJywgdGhpcy5vY1JlcXVpcmVkLnRvU3RyaW5nKCkpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9jUHJlZml4KSB7XG4gICAgICB0aGlzLmhhc1ByZWZpeCA9IHRydWVcbiAgICB9XG4gICAgaWYgKHRoaXMub2NTdWZmaXgpIHtcbiAgICAgIHRoaXMuaGFzU3VmZml4ID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJ7XG4gICdvYy1pbnB1dC1ib3gnOiAgIW9jU3R5bGUgfHwgb2NTdHlsZSA9PT0gJ290aW11cycsXG4gIHNtYWxsOiBvY1NpemUgPT09ICdzbWFsbCcsXG4gIGxhcmdlOiBvY1NpemUgPT09ICdsYXJnZScsXG4gIGVycm9yOiAhIW9jRXJyb3IsXG4gIHByZWZpeDogaGFzUHJlZml4LFxuICBzdWZmaXg6IGhhc1N1ZmZpeCxcbiAgJ3NodWknOiBvY1N0eWxlID09PSAnc2h1aScsXG4gICdzaHVpLWlucHV0LWJveCc6IG9jU3R5bGUgPT09ICdzaHVpJ1xufVwiIFtpZF09XCJpbnB1dElkXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwib2NQcmVmaXhcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm9jU3VmZml4XCI+PC9uZy1jb250ZW50PlxuICA8bGFiZWw+XG4gICAgPHNwYW4gW2lubmVySFRNTF09XCJvY1BsYWNlaG9sZGVyXCI+PC9zcGFuPlxuICAgIEBpZihvY1JlcXVpcmVkKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJvYyBjb2xvciBlcnJvclwiPio8L3NwYW4+XG4gICAgfVxuICA8L2xhYmVsPlxuICA8c21hbGwgKm5nSWY9XCJvY0Vycm9yXCIgY2xhc3M9XCJlcnJvci1tc2dcIj57e29jRXJyb3J9fTwvc21hbGw+XG48L2Rpdj4iXX0=
@@ -0,0 +1,29 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/style-theme.service";
5
+ import * as i2 from "@angular/common";
6
+ export class OcKeyValueComponent {
7
+ constructor(styleThemeService) {
8
+ this.styleThemeService = styleThemeService;
9
+ this.ocKey = '';
10
+ this.ocValue = '';
11
+ this.ocStyle = 'otimus';
12
+ }
13
+ ngAfterViewInit() {
14
+ this.ocStyle = this.styleThemeService.getStyleTheme() || this.ocStyle;
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcKeyValueComponent, deps: [{ token: i1.StyleThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: OcKeyValueComponent, isStandalone: true, selector: "oc-key-value", inputs: { ocKey: "ocKey", ocValue: "ocValue", ocStyle: "ocStyle" }, ngImport: i0, template: "<div class=\"oc-key-value\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n}\">\n <!-- \u00CDcone -->\n <ng-content></ng-content>\n <p>\n @if (ocKey) {\n <span [innerHTML]=\"ocKey + ':'\"></span>\n }\n {{ocValue}}\n </p>\n</div>", styles: [".oc-key-value{display:flex;align-items:center;gap:.1rem;font-size:1rem}.oc-key-value p{color:#7e8485;font-weight:500}.oc-key-value span{color:#5505a2;font-weight:500}.oc-key-value .material-symbols-outlined{color:#5505a2;font-size:.95rem}.shui.oc-key-value{display:flex;align-items:center;gap:.1rem;font-size:1rem}.shui.oc-key-value p{color:#7d7d7d;font-weight:500}.shui.oc-key-value span{color:#0169b2;font-weight:500}.shui.oc-key-value .material-symbols-outlined{color:#0169b2;font-size:.95rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcKeyValueComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'oc-key-value', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"oc-key-value\" [ngClass]=\"{\n shui: ocStyle === 'shui'\n}\">\n <!-- \u00CDcone -->\n <ng-content></ng-content>\n <p>\n @if (ocKey) {\n <span [innerHTML]=\"ocKey + ':'\"></span>\n }\n {{ocValue}}\n </p>\n</div>", styles: [".oc-key-value{display:flex;align-items:center;gap:.1rem;font-size:1rem}.oc-key-value p{color:#7e8485;font-weight:500}.oc-key-value span{color:#5505a2;font-weight:500}.oc-key-value .material-symbols-outlined{color:#5505a2;font-size:.95rem}.shui.oc-key-value{display:flex;align-items:center;gap:.1rem;font-size:1rem}.shui.oc-key-value p{color:#7d7d7d;font-weight:500}.shui.oc-key-value span{color:#0169b2;font-weight:500}.shui.oc-key-value .material-symbols-outlined{color:#0169b2;font-size:.95rem}\n"] }]
22
+ }], ctorParameters: () => [{ type: i1.StyleThemeService }], propDecorators: { ocKey: [{
23
+ type: Input
24
+ }], ocValue: [{
25
+ type: Input
26
+ }], ocStyle: [{
27
+ type: Input
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2Mta2V5LXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1rZXktdmFsdWUvb2Mta2V5LXZhbHVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1rZXktdmFsdWUvb2Mta2V5LXZhbHVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUE7Ozs7QUFZbEYsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUMvQyxVQUFLLEdBQVcsRUFBRSxDQUFBO1FBQ2xCLFlBQU8sR0FBVyxFQUFFLENBQUE7UUFDcEIsWUFBTyxHQUFxQixRQUFRLENBQUE7SUFIYyxDQUFDO0lBSzVELGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3ZFLENBQUM7K0dBUlUsbUJBQW1CO21HQUFuQixtQkFBbUIsNElDYmhDLGtQQVdNLDJpQkRITSxZQUFZOzs0RkFLWCxtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxpQkFHUixpQkFBaUIsQ0FBQyxJQUFJO3NGQUk1QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9jU3R5bGVUaGVtZVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL29jLXN0eWxlLXRoZW1lJ1xuaW1wb3J0IHsgU3R5bGVUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdHlsZS10aGVtZS5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvYy1rZXktdmFsdWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29jLWtleS12YWx1ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy1rZXktdmFsdWUuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBPY0tleVZhbHVlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3R5bGVUaGVtZVNlcnZpY2U6IFN0eWxlVGhlbWVTZXJ2aWNlKSB7fVxuICBASW5wdXQoKSBvY0tleTogc3RyaW5nID0gJydcbiAgQElucHV0KCkgb2NWYWx1ZTogc3RyaW5nID0gJydcbiAgQElucHV0KCkgb2NTdHlsZTogT2NTdHlsZVRoZW1lVHlwZSA9ICdvdGltdXMnXG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub2NTdHlsZSA9IHRoaXMuc3R5bGVUaGVtZVNlcnZpY2UuZ2V0U3R5bGVUaGVtZSgpIHx8IHRoaXMub2NTdHlsZVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2Mta2V5LXZhbHVlXCIgW25nQ2xhc3NdPVwie1xuICBzaHVpOiBvY1N0eWxlID09PSAnc2h1aSdcbn1cIj5cbiAgPCEtLSDDjWNvbmUgLS0+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPHA+XG4gICAgQGlmIChvY0tleSkge1xuICAgIDxzcGFuIFtpbm5lckhUTUxdPVwib2NLZXkgKyAnOidcIj48L3NwYW4+XG4gICAgfVxuICAgIHt7b2NWYWx1ZX19XG4gIDwvcD5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { OcProfileComponent } from '../oc-profile/oc-profile.component';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class OcLogComponent {
7
+ constructor() {
8
+ this.ocProfilePic = '';
9
+ this.ocUserName = '';
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcLogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: OcLogComponent, isStandalone: true, selector: "oc-log", inputs: { ocProfilePic: "ocProfilePic", ocUserName: "ocUserName" }, ngImport: i0, template: "<div class=\"oc-log\">\n <div class=\"left-side\" [ngClass]=\"{\n 'has-profile': ocProfilePic || ocUserName\n }\">\n @if(ocProfilePic || ocUserName) {\n <oc-profile [ocProfilePic]=\"ocProfilePic\" [ocUserName]=\"ocUserName\">\n </oc-profile>\n } @else {\n <div class=\"dot\"></div>\n }\n </div>\n\n <div class=\"content\" [ngClass]=\"{\n 'has-profile-content': ocProfilePic || ocUserName\n }\" selector=\"[content]\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".oc-log{width:100%;margin:0;border-left:3px solid #d1d5db;position:relative;padding:4rem 0;padding-top:0;border-radius:1rem;border-bottom-left-radius:0;border-top-left-radius:0;transition:.2s ease}.oc-log:hover{background-color:#f7f7f7}.oc-log .has-profile{left:-2.1rem!important}.oc-log .left-side{position:absolute;z-index:8;left:-.6rem;top:0;height:100%;display:flex;align-items:flex-start}.oc-log .left-side .dot{width:1rem;height:1rem;border-radius:.2rem;transform:rotate(45deg);background-color:#5505a2}.content{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;padding-left:2rem;padding-top:1.5rem}.has-profile-content{padding-left:3rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: OcProfileComponent, selector: "oc-profile", inputs: ["ocUserName", "ocProfilePic", "ocSize"] }] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcLogComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'oc-log', standalone: true, imports: [CommonModule, OcProfileComponent], template: "<div class=\"oc-log\">\n <div class=\"left-side\" [ngClass]=\"{\n 'has-profile': ocProfilePic || ocUserName\n }\">\n @if(ocProfilePic || ocUserName) {\n <oc-profile [ocProfilePic]=\"ocProfilePic\" [ocUserName]=\"ocUserName\">\n </oc-profile>\n } @else {\n <div class=\"dot\"></div>\n }\n </div>\n\n <div class=\"content\" [ngClass]=\"{\n 'has-profile-content': ocProfilePic || ocUserName\n }\" selector=\"[content]\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [".oc-log{width:100%;margin:0;border-left:3px solid #d1d5db;position:relative;padding:4rem 0;padding-top:0;border-radius:1rem;border-bottom-left-radius:0;border-top-left-radius:0;transition:.2s ease}.oc-log:hover{background-color:#f7f7f7}.oc-log .has-profile{left:-2.1rem!important}.oc-log .left-side{position:absolute;z-index:8;left:-.6rem;top:0;height:100%;display:flex;align-items:flex-start}.oc-log .left-side .dot{width:1rem;height:1rem;border-radius:.2rem;transform:rotate(45deg);background-color:#5505a2}.content{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;padding-left:2rem;padding-top:1.5rem}.has-profile-content{padding-left:3rem}\n"] }]
17
+ }], propDecorators: { ocProfilePic: [{
18
+ type: Input
19
+ }], ocUserName: [{
20
+ type: Input
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1sb2cvb2MtbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1sb2cvb2MtbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxjQUFjO0lBUDNCO1FBUVcsaUJBQVksR0FBWSxFQUFFLENBQUE7UUFDMUIsZUFBVSxHQUFZLEVBQUUsQ0FBQTtLQUNsQzsrR0FIWSxjQUFjO21HQUFkLGNBQWMsc0lDWDNCLHVmQWlCTSxrdUJEVk0sWUFBWSw2SEFBRSxrQkFBa0I7OzRGQUkvQixjQUFjO2tCQVAxQixTQUFTOytCQUNFLFFBQVEsY0FDTixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUM7OEJBS2xDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9jUHJvZmlsZUNvbXBvbmVudCB9IGZyb20gJy4uL29jLXByb2ZpbGUvb2MtcHJvZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtbG9nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgT2NQcm9maWxlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL29jLWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYy1sb2cuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIE9jTG9nQ29tcG9uZW50IHtcbiAgQElucHV0KCkgb2NQcm9maWxlUGljPzogc3RyaW5nID0gJydcbiAgQElucHV0KCkgb2NVc2VyTmFtZT86IHN0cmluZyA9ICcnXG59XG4iLCI8ZGl2IGNsYXNzPVwib2MtbG9nXCI+XG4gIDxkaXYgY2xhc3M9XCJsZWZ0LXNpZGVcIiBbbmdDbGFzc109XCJ7XG4gICAgJ2hhcy1wcm9maWxlJzogb2NQcm9maWxlUGljIHx8IG9jVXNlck5hbWVcbiAgfVwiPlxuICAgIEBpZihvY1Byb2ZpbGVQaWMgfHwgb2NVc2VyTmFtZSkge1xuICAgICAgPG9jLXByb2ZpbGUgW29jUHJvZmlsZVBpY109XCJvY1Byb2ZpbGVQaWNcIiBbb2NVc2VyTmFtZV09XCJvY1VzZXJOYW1lXCI+XG4gICAgICA8L29jLXByb2ZpbGU+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZG90XCI+PC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiIFtuZ0NsYXNzXT1cIntcbiAgICAnaGFzLXByb2ZpbGUtY29udGVudCc6IG9jUHJvZmlsZVBpYyB8fCBvY1VzZXJOYW1lXG4gIH1cIiBzZWxlY3Rvcj1cIltjb250ZW50XVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,81 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { CdkMenuModule } from '@angular/cdk/menu';
3
+ import { CommonModule } from '@angular/common';
4
+ import { OcCheckboxComponent } from '../oc-checkbox/oc-checkbox.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/cdk/menu";
8
+ export class OcMenuComponent {
9
+ constructor(renderer) {
10
+ this.renderer = renderer;
11
+ this.ocChange = new EventEmitter();
12
+ this.ocMenu = [];
13
+ this.isMenuShown = false;
14
+ }
15
+ open() {
16
+ this.isMenuShown = true;
17
+ setTimeout(() => {
18
+ if (this.menu) {
19
+ const parentButton = this.findParentButton(this.menu.nativeElement);
20
+ if (parentButton) {
21
+ this.buttonId = `oc-${Math.random()}`;
22
+ this.renderer.setAttribute(parentButton, 'id', this.buttonId);
23
+ }
24
+ }
25
+ }, 100);
26
+ }
27
+ ngOnInit() {
28
+ this.closeOnClickOut();
29
+ }
30
+ findParentButton(element) {
31
+ let parent = element.parentElement;
32
+ while (parent) {
33
+ if (parent.tagName.toLowerCase() === 'button') {
34
+ return parent;
35
+ }
36
+ parent = parent.parentElement;
37
+ }
38
+ return null;
39
+ }
40
+ closeOnClickOut() {
41
+ this.renderer.listen('window', 'click', (e) => {
42
+ const isCheckbox = Array.from(e.target.classList).includes('cbx');
43
+ if (isCheckbox)
44
+ return;
45
+ else if (!this.menu)
46
+ return;
47
+ if (this.buttonId && e.target.id !== this.buttonId) {
48
+ this.isMenuShown = false;
49
+ return;
50
+ }
51
+ });
52
+ }
53
+ changeCheckbox(name, checked) {
54
+ let foundItem;
55
+ this.ocMenu.forEach(item => {
56
+ if (item.name === name && typeof checked === 'boolean') {
57
+ item.checked = checked;
58
+ foundItem = item;
59
+ }
60
+ });
61
+ this.ocChange.emit(foundItem);
62
+ return foundItem;
63
+ }
64
+ typeof(key) {
65
+ return typeof key;
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcMenuComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: OcMenuComponent, isStandalone: true, selector: "oc-menu", inputs: { ocMenu: "ocMenu" }, outputs: { ocChange: "ocChange" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["ocMenuEl"], descendants: true }], ngImport: i0, template: "<div class=\"oc-menu\" *ngIf=\"isMenuShown\" cdkMenu #ocMenuEl>\n <ul>\n @for(option of ocMenu; track $index) {\n <li\n [ngClass]=\"{\n 'checkbox-option cbx': typeof(option.checked) === 'boolean'\n }\"\n >\n @if(typeof(option.checked) === 'boolean'){\n <div class=\"checkbox-opt cbx\">\n <oc-checkbox (ocChange)=\"changeCheckbox(option.name, $event)\" [ocChecked]=\"option.checked!\" class=\"cbx\" ocSize=\"tiny\" [ocLabel]=\"option.name\" ocBorderColor=\"gray\"/>\n </div>\n }\n @if(option.icon) {\n <span class=\"material-symbols-outlined\">\n {{option.icon}}\n </span>\n } \n @if(option.callback){\n <button (click)=\"option.callback()\">{{option.name}}</button>\n }\n @if(option.url){\n <a [href]=\"option.url\" [target]=\"option.targetBlank ? '_blank' : ''\">{{option.name}}</a>\n }\n @if (!option.callback && !option.url && typeof(option.checked) !== 'boolean') {\n <span>{{option.name}}</span>\n }\n </li>\n }\n </ul>\n</div>\n", styles: ["*{box-sizing:border-box}.oc-menu{display:flex;flex-direction:column;border-radius:0 8px 8px;background-color:#f8f9ff;border:2px solid #ffffff;position:absolute;z-index:1000;max-height:800px;box-shadow:0 4px 8.7px #00000021;animation:showUp .15s ease}.oc-menu ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;width:100%}.oc-menu ul li{text-align:left;text-decoration:none;width:100%;max-height:30px;display:flex;align-items:center;gap:.2rem;white-space:nowrap}.oc-menu ul li .checkbox-opt{min-width:1.3rem}.oc-menu ul li a,.oc-menu ul li button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-menu ul li a,.oc-menu ul li button,.oc-menu ul li span,.oc-menu ul li .checkbox-opt{color:#8f9596;text-decoration:none;font-size:1rem;font-weight:400;text-align:left;padding:0;margin:0;border:none;padding:.6rem;background-color:transparent;width:100%;height:100%;cursor:pointer}.oc-menu ul li .material-symbols-outlined{width:.3rem;font-size:1.1rem;pointer-events:none}.oc-menu ul li:hover{background-color:#fff}@keyframes showUp{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: CdkMenuModule }, { kind: "directive", type: i2.CdkMenu, selector: "[cdkMenu]", outputs: ["closed"], exportAs: ["cdkMenu"] }, { kind: "component", type: OcCheckboxComponent, selector: "oc-checkbox", inputs: ["ocChecked", "ocSize", "ocLabel", "ocName", "ocColor", "ocBorderColor", "ocStyle", "formControl", "ocTabIndex", "disableDoubleClickCheck"], outputs: ["ocChange", "ocDoubleClick"] }] }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OcMenuComponent, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'oc-menu', standalone: true, imports: [CommonModule, CdkMenuModule, OcCheckboxComponent], template: "<div class=\"oc-menu\" *ngIf=\"isMenuShown\" cdkMenu #ocMenuEl>\n <ul>\n @for(option of ocMenu; track $index) {\n <li\n [ngClass]=\"{\n 'checkbox-option cbx': typeof(option.checked) === 'boolean'\n }\"\n >\n @if(typeof(option.checked) === 'boolean'){\n <div class=\"checkbox-opt cbx\">\n <oc-checkbox (ocChange)=\"changeCheckbox(option.name, $event)\" [ocChecked]=\"option.checked!\" class=\"cbx\" ocSize=\"tiny\" [ocLabel]=\"option.name\" ocBorderColor=\"gray\"/>\n </div>\n }\n @if(option.icon) {\n <span class=\"material-symbols-outlined\">\n {{option.icon}}\n </span>\n } \n @if(option.callback){\n <button (click)=\"option.callback()\">{{option.name}}</button>\n }\n @if(option.url){\n <a [href]=\"option.url\" [target]=\"option.targetBlank ? '_blank' : ''\">{{option.name}}</a>\n }\n @if (!option.callback && !option.url && typeof(option.checked) !== 'boolean') {\n <span>{{option.name}}</span>\n }\n </li>\n }\n </ul>\n</div>\n", styles: ["*{box-sizing:border-box}.oc-menu{display:flex;flex-direction:column;border-radius:0 8px 8px;background-color:#f8f9ff;border:2px solid #ffffff;position:absolute;z-index:1000;max-height:800px;box-shadow:0 4px 8.7px #00000021;animation:showUp .15s ease}.oc-menu ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;width:100%}.oc-menu ul li{text-align:left;text-decoration:none;width:100%;max-height:30px;display:flex;align-items:center;gap:.2rem;white-space:nowrap}.oc-menu ul li .checkbox-opt{min-width:1.3rem}.oc-menu ul li a,.oc-menu ul li button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-menu ul li a,.oc-menu ul li button,.oc-menu ul li span,.oc-menu ul li .checkbox-opt{color:#8f9596;text-decoration:none;font-size:1rem;font-weight:400;text-align:left;padding:0;margin:0;border:none;padding:.6rem;background-color:transparent;width:100%;height:100%;cursor:pointer}.oc-menu ul li .material-symbols-outlined{width:.3rem;font-size:1.1rem;pointer-events:none}.oc-menu ul li:hover{background-color:#fff}@keyframes showUp{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}\n"] }]
73
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { menu: [{
74
+ type: ViewChild,
75
+ args: ['ocMenuEl']
76
+ }], ocChange: [{
77
+ type: Output
78
+ }], ocMenu: [{
79
+ type: Input
80
+ }] } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdGltdXMtbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvb2MtbWVudS9vYy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1tZW51L29jLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFHLFNBQVMsRUFBWSxZQUFZLEVBQUMsS0FBSyxFQUFVLE1BQU0sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFHLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVMzRSxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRzdCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQzlCLFdBQU0sR0FBaUIsRUFBRSxDQUFBO1FBQ2xDLGdCQUFXLEdBQVksS0FBSyxDQUFBO0lBTGMsQ0FBQztJQVEzQyxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFFdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUcsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDO2dCQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUE7b0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoRSxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNULENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFvQjtRQUNuQyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ25DLE9BQU8sTUFBTSxFQUFFLENBQUM7WUFDZCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sTUFBMkIsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBSyxFQUFDLEVBQUU7WUFFOUMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUVqRSxJQUFHLFVBQVU7Z0JBQUUsT0FBTTtpQkFDaEIsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU07WUFFMUIsSUFBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7Z0JBQ3hCLE9BQU07WUFDUixDQUFDO1FBRUgsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVksRUFBRSxPQUFnQjtRQUMzQyxJQUFJLFNBQVMsQ0FBQTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO2dCQUV0QixTQUFTLEdBQUcsSUFBSSxDQUFBO1lBQ2xCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzdCLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBUTtRQUNiLE9BQU8sT0FBTyxHQUFHLENBQUE7SUFDbkIsQ0FBQzsrR0FyRVUsZUFBZTttR0FBZixlQUFlLHNPQ2I1Qiw4bUNBK0JBLGlxQ0R0QlksWUFBWSxnT0FBRSxhQUFhLDJJQUFFLG1CQUFtQjs7NEZBSS9DLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsU0FBUyxjQUNQLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsbUJBQW1CLENBQUM7OEVBT3BDLElBQUk7c0JBQTFCLFNBQVM7dUJBQUMsVUFBVTtnQkFDWCxRQUFRO3NCQUFqQixNQUFNO2dCQUNFLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ICBDb21wb25lbnQsRWxlbWVudFJlZixFdmVudEVtaXR0ZXIsSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgIENka01lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbWVudSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2NNZW51VHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb2MtbWVudSc7XG5pbXBvcnQgeyBPY0NoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vb2MtY2hlY2tib3gvb2MtY2hlY2tib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2MtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENka01lbnVNb2R1bGUsIE9jQ2hlY2tib3hDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2MtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29jLW1lbnUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPY01lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgQFZpZXdDaGlsZCgnb2NNZW51RWwnKSBtZW51ITogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIG9jQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBJbnB1dCgpIG9jTWVudTogT2NNZW51VHlwZVtdID0gW11cbiAgaXNNZW51U2hvd246IGJvb2xlYW4gPSBmYWxzZVxuICBidXR0b25JZD86c3RyaW5nXG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLmlzTWVudVNob3duID0gdHJ1ZVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZih0aGlzLm1lbnUpe1xuICAgICAgICBjb25zdCBwYXJlbnRCdXR0b24gPSB0aGlzLmZpbmRQYXJlbnRCdXR0b24odGhpcy5tZW51Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBpZiAocGFyZW50QnV0dG9uKSB7XG4gICAgICAgICAgdGhpcy5idXR0b25JZCA9IGBvYy0ke01hdGgucmFuZG9tKCl9YFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHBhcmVudEJ1dHRvbiwgJ2lkJywgdGhpcy5idXR0b25JZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAxMDApXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNsb3NlT25DbGlja091dCgpXG4gIH1cblxuICBmaW5kUGFyZW50QnV0dG9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsIHtcbiAgICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgIGlmIChwYXJlbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnV0dG9uJykge1xuICAgICAgICByZXR1cm4gcGFyZW50IGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgfVxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIFxuICBjbG9zZU9uQ2xpY2tPdXQoKSB7XG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsKGU6YW55KT0+e1xuXG4gICAgICBjb25zdCBpc0NoZWNrYm94ID0gQXJyYXkuZnJvbShlLnRhcmdldC5jbGFzc0xpc3QpLmluY2x1ZGVzKCdjYngnKVxuXG4gICAgICBpZihpc0NoZWNrYm94KSByZXR1cm5cbiAgICAgIGVsc2UgaWYoIXRoaXMubWVudSkgcmV0dXJuXG5cbiAgICAgIGlmKHRoaXMuYnV0dG9uSWQgJiYgZS50YXJnZXQuaWQgIT09IHRoaXMuYnV0dG9uSWQpIHtcbiAgICAgICAgdGhpcy5pc01lbnVTaG93biA9IGZhbHNlXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgXG4gICAgfSlcbiAgfVxuXG4gIGNoYW5nZUNoZWNrYm94KG5hbWU6IHN0cmluZywgY2hlY2tlZDogYm9vbGVhbikge1xuICAgIGxldCBmb3VuZEl0ZW1cbiAgICB0aGlzLm9jTWVudS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYoaXRlbS5uYW1lID09PSBuYW1lICYmIHR5cGVvZiBjaGVja2VkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgaXRlbS5jaGVja2VkID0gY2hlY2tlZFxuXG4gICAgICAgIGZvdW5kSXRlbSA9IGl0ZW1cbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMub2NDaGFuZ2UuZW1pdChmb3VuZEl0ZW0pXG4gICAgcmV0dXJuIGZvdW5kSXRlbVxuICB9XG5cbiAgdHlwZW9mKGtleTogYW55KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBrZXlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm9jLW1lbnVcIiAqbmdJZj1cImlzTWVudVNob3duXCIgY2RrTWVudSAjb2NNZW51RWw+XG4gIDx1bD5cbiAgICBAZm9yKG9wdGlvbiBvZiBvY01lbnU7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGxpXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnY2hlY2tib3gtb3B0aW9uIGNieCc6IHR5cGVvZihvcHRpb24uY2hlY2tlZCkgPT09ICdib29sZWFuJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgQGlmKHR5cGVvZihvcHRpb24uY2hlY2tlZCkgPT09ICdib29sZWFuJyl7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LW9wdCBjYnhcIj5cbiAgICAgICAgICAgIDxvYy1jaGVja2JveCAob2NDaGFuZ2UpPVwiY2hhbmdlQ2hlY2tib3gob3B0aW9uLm5hbWUsICRldmVudClcIiBbb2NDaGVja2VkXT1cIm9wdGlvbi5jaGVja2VkIVwiIGNsYXNzPVwiY2J4XCIgb2NTaXplPVwidGlueVwiIFtvY0xhYmVsXT1cIm9wdGlvbi5uYW1lXCIgb2NCb3JkZXJDb2xvcj1cImdyYXlcIi8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmKG9wdGlvbi5pY29uKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+XG4gICAgICAgICAgICB7e29wdGlvbi5pY29ufX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH0gIFxuICAgICAgICBAaWYob3B0aW9uLmNhbGxiYWNrKXtcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvcHRpb24uY2FsbGJhY2soKVwiPnt7b3B0aW9uLm5hbWV9fTwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZihvcHRpb24udXJsKXtcbiAgICAgICAgICA8YSBbaHJlZl09XCJvcHRpb24udXJsXCIgW3RhcmdldF09XCJvcHRpb24udGFyZ2V0QmxhbmsgPyAnX2JsYW5rJyA6ICcnXCI+e3tvcHRpb24ubmFtZX19PC9hPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoIW9wdGlvbi5jYWxsYmFjayAmJiAhb3B0aW9uLnVybCAmJiB0eXBlb2Yob3B0aW9uLmNoZWNrZWQpICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICA8c3Bhbj57e29wdGlvbi5uYW1lfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICA8L2xpPlxuICB9XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==