@koobiq/components 16.0.0-beta.11 → 16.0.0-beta.13

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 (61) hide show
  1. package/button/_button-theme.scss +8 -20
  2. package/checkbox/checkbox.scss +6 -8
  3. package/code-block/_code-block-theme.scss +10 -10
  4. package/code-block/code-block.scss +1 -1
  5. package/core/locales/index.d.ts +0 -2
  6. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +4 -15
  7. package/core/styles/common/_select.scss +2 -1
  8. package/core/styles/theming/_components-theming.scss +4 -12
  9. package/core/styles/typography/_typography.scss +4 -0
  10. package/esm2022/button/button.component.mjs +6 -3
  11. package/esm2022/checkbox/checkbox.mjs +2 -2
  12. package/esm2022/code-block/code-block.component.mjs +2 -2
  13. package/esm2022/core/formatters/index.mjs +4 -3
  14. package/esm2022/core/locales/index.mjs +1 -3
  15. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +2 -2
  16. package/esm2022/core/version.mjs +2 -2
  17. package/esm2022/form-field/form-field.mjs +2 -2
  18. package/esm2022/form-field/hint.mjs +17 -5
  19. package/esm2022/form-field/password-hint.mjs +22 -19
  20. package/esm2022/form-field/validate.directive.mjs +4 -5
  21. package/esm2022/input/input-number.mjs +4 -3
  22. package/esm2022/navbar/navbar-item.component.mjs +7 -7
  23. package/esm2022/select/select.component.mjs +5 -4
  24. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  25. package/esm2022/tree-select/tree-select.component.mjs +15 -7
  26. package/esm2022/tree-select/tree-select.module.mjs +6 -6
  27. package/fesm2022/koobiq-components-button.mjs +5 -2
  28. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  29. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  30. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  31. package/fesm2022/koobiq-components-code-block.mjs +2 -2
  32. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  33. package/fesm2022/koobiq-components-core.mjs +8 -10
  34. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  35. package/fesm2022/koobiq-components-form-field.mjs +40 -27
  36. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  37. package/fesm2022/koobiq-components-input.mjs +3 -2
  38. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-navbar.mjs +6 -6
  40. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-select.mjs +4 -3
  42. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-timezone.mjs +2 -2
  44. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-tree-select.mjs +19 -11
  46. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  47. package/file-upload/_file-upload-theme.scss +3 -1
  48. package/form-field/_form-field-theme.scss +3 -8
  49. package/form-field/form-field.scss +12 -1
  50. package/form-field/hint.scss +1 -1
  51. package/form-field/password-hint.d.ts +7 -5
  52. package/link/_link-theme.scss +1 -0
  53. package/navbar/_navbar-theme.scss +5 -3
  54. package/navbar/navbar-item.component.d.ts +1 -1
  55. package/package.json +10 -10
  56. package/prebuilt-themes/dark-theme.css +1 -1
  57. package/prebuilt-themes/light-theme.css +1 -1
  58. package/select/select.scss +7 -0
  59. package/tree-select/tree-select.component.d.ts +8 -4
  60. package/tree-select/tree-select.module.d.ts +1 -1
  61. package/form-field/password-hint.scss +0 -17
@@ -6,17 +6,17 @@ import { KbqIconModule } from '@koobiq/components/icon';
6
6
  import { KbqSelectModule } from '@koobiq/components/select';
7
7
  import { KbqTagsModule } from '@koobiq/components/tags';
8
8
  import { KbqTreeModule } from '@koobiq/components/tree';
9
- import { KbqTreeSelect, KbqTreeSelectFooter, KbqTreeSelectTrigger } from './tree-select.component';
9
+ import { KbqTreeSelect, KbqTreeSelectFooter, KbqTreeSelectMatcher, KbqTreeSelectTrigger } from './tree-select.component';
10
10
  import * as i0 from "@angular/core";
11
11
  export class KbqTreeSelectModule {
12
12
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqTreeSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: KbqTreeSelectModule, declarations: [KbqTreeSelect, KbqTreeSelectTrigger, KbqTreeSelectFooter], imports: [CommonModule,
13
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: KbqTreeSelectModule, declarations: [KbqTreeSelect, KbqTreeSelectTrigger, KbqTreeSelectMatcher, KbqTreeSelectFooter], imports: [CommonModule,
14
14
  OverlayModule,
15
15
  KbqTreeModule,
16
16
  KbqIconModule,
17
17
  KbqTagsModule,
18
18
  KbqPseudoCheckboxModule,
19
- KbqSelectModule], exports: [KbqTreeSelect, KbqTreeSelectTrigger, KbqTreeSelectFooter, CommonModule] }); }
19
+ KbqSelectModule], exports: [KbqTreeSelect, KbqTreeSelectTrigger, KbqTreeSelectMatcher, KbqTreeSelectFooter, CommonModule] }); }
20
20
  /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqTreeSelectModule, providers: [KBQ_SELECT_SCROLL_STRATEGY_PROVIDER], imports: [CommonModule,
21
21
  OverlayModule,
22
22
  KbqTreeModule,
@@ -37,9 +37,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
37
37
  KbqPseudoCheckboxModule,
38
38
  KbqSelectModule
39
39
  ],
40
- exports: [KbqTreeSelect, KbqTreeSelectTrigger, KbqTreeSelectFooter, CommonModule],
41
- declarations: [KbqTreeSelect, KbqTreeSelectTrigger, KbqTreeSelectFooter],
40
+ exports: [KbqTreeSelect, KbqTreeSelectTrigger, KbqTreeSelectMatcher, KbqTreeSelectFooter, CommonModule],
41
+ declarations: [KbqTreeSelect, KbqTreeSelectTrigger, KbqTreeSelectMatcher, KbqTreeSelectFooter],
42
42
  providers: [KBQ_SELECT_SCROLL_STRATEGY_PROVIDER]
43
43
  }]
44
44
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBaUJuRyxNQUFNLE9BQU8sbUJBQW1CO2lJQUFuQixtQkFBbUI7a0lBQW5CLG1CQUFtQixpQkFIYixhQUFhLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLGFBVG5FLFlBQVk7WUFDWixhQUFhO1lBQ2IsYUFBYTtZQUNiLGFBQWE7WUFDYixhQUFhO1lBQ2IsdUJBQXVCO1lBQ3ZCLGVBQWUsYUFFVCxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsWUFBWTtrSUFJdkUsbUJBQW1CLGFBRmpCLENBQUMsbUNBQW1DLENBQUMsWUFWNUMsWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsYUFBYTtZQUNiLGFBQWE7WUFDYix1QkFBdUI7WUFDdkIsZUFBZSxFQUVpRCxZQUFZOzsyRkFJdkUsbUJBQW1CO2tCQWQvQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixlQUFlO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDO29CQUNqRixZQUFZLEVBQUUsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3hFLFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtCUV9TRUxFQ1RfU0NST0xMX1NUUkFURUdZX1BST1ZJREVSLCBLYnFQc2V1ZG9DaGVja2JveE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFTZWxlY3RNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvc2VsZWN0JztcbmltcG9ydCB7IEticVRhZ3NNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGFncyc7XG5pbXBvcnQgeyBLYnFUcmVlTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RyZWUnO1xuXG5pbXBvcnQgeyBLYnFUcmVlU2VsZWN0LCBLYnFUcmVlU2VsZWN0Rm9vdGVyLCBLYnFUcmVlU2VsZWN0VHJpZ2dlciB9IGZyb20gJy4vdHJlZS1zZWxlY3QuY29tcG9uZW50JztcblxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBPdmVybGF5TW9kdWxlLFxuICAgICAgICBLYnFUcmVlTW9kdWxlLFxuICAgICAgICBLYnFJY29uTW9kdWxlLFxuICAgICAgICBLYnFUYWdzTW9kdWxlLFxuICAgICAgICBLYnFQc2V1ZG9DaGVja2JveE1vZHVsZSxcbiAgICAgICAgS2JxU2VsZWN0TW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbS2JxVHJlZVNlbGVjdCwgS2JxVHJlZVNlbGVjdFRyaWdnZXIsIEticVRyZWVTZWxlY3RGb290ZXIsIENvbW1vbk1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbS2JxVHJlZVNlbGVjdCwgS2JxVHJlZVNlbGVjdFRyaWdnZXIsIEticVRyZWVTZWxlY3RGb290ZXJdLFxuICAgIHByb3ZpZGVyczogW0tCUV9TRUxFQ1RfU0NST0xMX1NUUkFURUdZX1BST1ZJREVSXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUcmVlU2VsZWN0TW9kdWxlIHt9XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3ZCLE1BQU0seUJBQXlCLENBQUM7O0FBaUJqQyxNQUFNLE9BQU8sbUJBQW1CO2lJQUFuQixtQkFBbUI7a0lBQW5CLG1CQUFtQixpQkFIYixhQUFhLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLGFBVHpGLFlBQVk7WUFDWixhQUFhO1lBQ2IsYUFBYTtZQUNiLGFBQWE7WUFDYixhQUFhO1lBQ2IsdUJBQXVCO1lBQ3ZCLGVBQWUsYUFFVCxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsWUFBWTtrSUFJN0YsbUJBQW1CLGFBRmpCLENBQUMsbUNBQW1DLENBQUMsWUFWNUMsWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsYUFBYTtZQUNiLGFBQWE7WUFDYix1QkFBdUI7WUFDdkIsZUFBZSxFQUV1RSxZQUFZOzsyRkFJN0YsbUJBQW1CO2tCQWQvQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixlQUFlO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDO29CQUN2RyxZQUFZLEVBQUUsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUM7b0JBQzlGLFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtCUV9TRUxFQ1RfU0NST0xMX1NUUkFURUdZX1BST1ZJREVSLCBLYnFQc2V1ZG9DaGVja2JveE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFTZWxlY3RNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvc2VsZWN0JztcbmltcG9ydCB7IEticVRhZ3NNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGFncyc7XG5pbXBvcnQgeyBLYnFUcmVlTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RyZWUnO1xuXG5pbXBvcnQge1xuICAgIEticVRyZWVTZWxlY3QsXG4gICAgS2JxVHJlZVNlbGVjdEZvb3RlcixcbiAgICBLYnFUcmVlU2VsZWN0TWF0Y2hlcixcbiAgICBLYnFUcmVlU2VsZWN0VHJpZ2dlclxufSBmcm9tICcuL3RyZWUtc2VsZWN0LmNvbXBvbmVudCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgT3ZlcmxheU1vZHVsZSxcbiAgICAgICAgS2JxVHJlZU1vZHVsZSxcbiAgICAgICAgS2JxSWNvbk1vZHVsZSxcbiAgICAgICAgS2JxVGFnc01vZHVsZSxcbiAgICAgICAgS2JxUHNldWRvQ2hlY2tib3hNb2R1bGUsXG4gICAgICAgIEticVNlbGVjdE1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW0ticVRyZWVTZWxlY3QsIEticVRyZWVTZWxlY3RUcmlnZ2VyLCBLYnFUcmVlU2VsZWN0TWF0Y2hlciwgS2JxVHJlZVNlbGVjdEZvb3RlciwgQ29tbW9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtLYnFUcmVlU2VsZWN0LCBLYnFUcmVlU2VsZWN0VHJpZ2dlciwgS2JxVHJlZVNlbGVjdE1hdGNoZXIsIEticVRyZWVTZWxlY3RGb290ZXJdLFxuICAgIHByb3ZpZGVyczogW0tCUV9TRUxFQ1RfU0NST0xMX1NUUkFURUdZX1BST1ZJREVSXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFUcmVlU2VsZWN0TW9kdWxlIHt9XG4iXX0=
@@ -37,6 +37,11 @@ class KbqButtonCssStyler {
37
37
  updateClassModifierForIcons() {
38
38
  this.renderer.removeClass(this.nativeElement, buttonLeftIconClassName);
39
39
  this.renderer.removeClass(this.nativeElement, buttonRightIconClassName);
40
+ this.icons.map((item) => item.getHostElement())
41
+ .forEach((iconHostElement) => {
42
+ this.renderer.removeClass(iconHostElement, leftIconClassName);
43
+ this.renderer.removeClass(iconHostElement, rightIconClassName);
44
+ });
40
45
  const twoIcons = 2;
41
46
  const filteredNodesWithoutComments = getNodesWithoutComments(this.nativeElement.querySelector('.kbq-button-wrapper').childNodes);
42
47
  const currentIsIconButtonValue = !!this.icons.length &&
@@ -48,8 +53,6 @@ class KbqButtonCssStyler {
48
53
  if (this.icons.length && filteredNodesWithoutComments.length > 1) {
49
54
  this.icons.map((item) => item.getHostElement())
50
55
  .forEach((iconHostElement) => {
51
- this.renderer.removeClass(iconHostElement, leftIconClassName);
52
- this.renderer.removeClass(iconHostElement, rightIconClassName);
53
56
  const iconIndex = filteredNodesWithoutComments.findIndex((node) => node === iconHostElement);
54
57
  if (iconIndex === 0) {
55
58
  this.renderer.addClass(iconHostElement, leftIconClassName);
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-button.mjs","sources":["../../../packages/components/button/button.component.ts","../../../packages/components/button/button.component.html","../../../packages/components/button/button.module.ts","../../../packages/components/button/koobiq-components-button.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n Renderer2,\n QueryList,\n ContentChildren,\n AfterContentInit,\n SkipSelf,\n Input,\n forwardRef\n} from '@angular/core';\nimport {\n mixinColor,\n mixinTabIndex,\n CanColor,\n CanDisable,\n CanColorCtor,\n HasTabIndexCtor,\n KbqComponentColors\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\n\nexport enum KbqButtonStyles {\n Filled = 'filled',\n Outline = 'outline',\n Transparent = 'transparent'\n}\n\n\nexport const leftIconClassName = 'kbq-icon_left';\nexport const rightIconClassName = 'kbq-icon_right';\n\nexport const buttonLeftIconClassName = 'kbq-button-icon_left';\nexport const buttonRightIconClassName = 'kbq-button-icon_right';\n\nexport const getNodesWithoutComments = (nodes: NodeList): Node[] => {\n const COMMENT_NODE = 8;\n\n return Array.from(nodes).filter((node) => node.nodeType !== COMMENT_NODE);\n};\n\n@Directive({\n selector: '[kbq-button]',\n host: {\n '[class.kbq-button]': '!isIconButton',\n '[class.kbq-button-icon]': 'isIconButton'\n }\n})\nexport class KbqButtonCssStyler implements AfterContentInit {\n @ContentChildren((forwardRef(() => KbqIcon))) icons: QueryList<KbqIcon>;\n\n nativeElement: HTMLElement;\n\n isIconButton: boolean = false;\n\n constructor(elementRef: ElementRef, private renderer: Renderer2, @SkipSelf() private cdr: ChangeDetectorRef) {\n this.nativeElement = elementRef.nativeElement;\n }\n\n ngAfterContentInit() {\n this.updateClassModifierForIcons();\n }\n\n updateClassModifierForIcons() {\n this.renderer.removeClass(this.nativeElement, buttonLeftIconClassName);\n this.renderer.removeClass(this.nativeElement, buttonRightIconClassName);\n\n const twoIcons = 2;\n const filteredNodesWithoutComments = getNodesWithoutComments(\n this.nativeElement.querySelector('.kbq-button-wrapper')!.childNodes as NodeList\n );\n\n const currentIsIconButtonValue = !!this.icons.length &&\n this.icons.length === filteredNodesWithoutComments.length && this.icons.length <= twoIcons;\n\n if (currentIsIconButtonValue !== this.isIconButton) {\n this.isIconButton = currentIsIconButtonValue;\n this.cdr.detectChanges();\n }\n\n if (this.icons.length && filteredNodesWithoutComments.length > 1) {\n this.icons.map((item) => item.getHostElement())\n .forEach((iconHostElement) => {\n this.renderer.removeClass(iconHostElement, leftIconClassName);\n this.renderer.removeClass(iconHostElement, rightIconClassName);\n\n const iconIndex = filteredNodesWithoutComments.findIndex(\n (node) => node === iconHostElement\n );\n\n if (iconIndex === 0) {\n this.renderer.addClass(iconHostElement, leftIconClassName);\n this.renderer.addClass(this.nativeElement, buttonLeftIconClassName);\n }\n\n if (iconIndex === filteredNodesWithoutComments.length - 1) {\n this.renderer.addClass(iconHostElement, rightIconClassName);\n this.renderer.addClass(this.nativeElement, buttonRightIconClassName);\n }\n });\n }\n\n }\n}\n\n/** @docs-private */\nexport class KbqButtonBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqButtonMixinBase: HasTabIndexCtor & CanColorCtor &\n typeof KbqButtonBase = mixinTabIndex(mixinColor(KbqButtonBase, KbqComponentColors.ContrastFade));\n\n\n@Component({\n selector: '[kbq-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['color', 'tabIndex'],\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.kbq-disabled]': 'disabled',\n '[attr.tabIndex]': 'tabIndex',\n '[class]': 'kbqStyle',\n\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur()'\n }\n})\nexport class KbqButton extends KbqButtonMixinBase implements OnDestroy, CanDisable, CanColor {\n hasFocus: boolean = false;\n\n @Input()\n get kbqStyle(): string {\n return `kbq-button_${this._kbqStyle}`;\n }\n\n set kbqStyle(value: string | KbqButtonStyles) {\n this._kbqStyle = value || KbqButtonStyles.Filled;\n }\n\n private _kbqStyle: string | KbqButtonStyles = KbqButtonStyles.Filled;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n\n this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();\n }\n\n private _disabled: boolean = false;\n\n constructor(elementRef: ElementRef, private focusMonitor: FocusMonitor, private styler: KbqButtonCssStyler) {\n super(elementRef);\n\n this.runFocusMonitor();\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n }\n\n onFocus($event) {\n $event.stopPropagation();\n\n this.hasFocus = true;\n }\n\n onBlur() {\n this.hasFocus = false;\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n focus(): void {\n this.hasFocus = true;\n\n this.getHostElement().focus();\n }\n\n focusViaKeyboard(): void {\n this.hasFocus = true;\n\n this.focusMonitor.focusVia(this.getHostElement(), 'keyboard');\n }\n\n haltDisabledEvents(event: Event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n }\n }\n\n projectContentChanged() {\n this.styler.updateClassModifierForIcons();\n }\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n\n","<div class=\"kbq-button-wrapper\" (cdkObserveContent)=\"projectContentChanged()\">\n <ng-content></ng-content>\n</div>\n<div class=\"kbq-button-overlay\" (click)=\"haltDisabledEvents($event)\"></div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n KbqButton,\n KbqButtonCssStyler\n} from './button.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n ObserversModule\n ],\n exports: [\n KbqButton,\n KbqButtonCssStyler\n ],\n declarations: [\n KbqButton,\n KbqButtonCssStyler\n ]\n})\nexport class KbqButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-button.mjs","sources":["../../../packages/components/button/button.component.ts","../../../packages/components/button/button.component.html","../../../packages/components/button/button.module.ts","../../../packages/components/button/koobiq-components-button.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n Renderer2,\n QueryList,\n ContentChildren,\n AfterContentInit,\n SkipSelf,\n Input,\n forwardRef\n} from '@angular/core';\nimport {\n mixinColor,\n mixinTabIndex,\n CanColor,\n CanDisable,\n CanColorCtor,\n HasTabIndexCtor,\n KbqComponentColors\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\n\nexport enum KbqButtonStyles {\n Filled = 'filled',\n Outline = 'outline',\n Transparent = 'transparent'\n}\n\n\nexport const leftIconClassName = 'kbq-icon_left';\nexport const rightIconClassName = 'kbq-icon_right';\n\nexport const buttonLeftIconClassName = 'kbq-button-icon_left';\nexport const buttonRightIconClassName = 'kbq-button-icon_right';\n\nexport const getNodesWithoutComments = (nodes: NodeList): Node[] => {\n const COMMENT_NODE = 8;\n\n return Array.from(nodes).filter((node) => node.nodeType !== COMMENT_NODE);\n};\n\n@Directive({\n selector: '[kbq-button]',\n host: {\n '[class.kbq-button]': '!isIconButton',\n '[class.kbq-button-icon]': 'isIconButton'\n }\n})\nexport class KbqButtonCssStyler implements AfterContentInit {\n @ContentChildren((forwardRef(() => KbqIcon))) icons: QueryList<KbqIcon>;\n\n nativeElement: HTMLElement;\n\n isIconButton: boolean = false;\n\n constructor(elementRef: ElementRef, private renderer: Renderer2, @SkipSelf() private cdr: ChangeDetectorRef) {\n this.nativeElement = elementRef.nativeElement;\n }\n\n ngAfterContentInit() {\n this.updateClassModifierForIcons();\n }\n\n updateClassModifierForIcons() {\n this.renderer.removeClass(this.nativeElement, buttonLeftIconClassName);\n this.renderer.removeClass(this.nativeElement, buttonRightIconClassName);\n this.icons.map((item) => item.getHostElement())\n .forEach((iconHostElement) => {\n this.renderer.removeClass(iconHostElement, leftIconClassName);\n this.renderer.removeClass(iconHostElement, rightIconClassName);\n });\n\n const twoIcons = 2;\n const filteredNodesWithoutComments = getNodesWithoutComments(\n this.nativeElement.querySelector('.kbq-button-wrapper')!.childNodes as NodeList\n );\n\n const currentIsIconButtonValue = !!this.icons.length &&\n this.icons.length === filteredNodesWithoutComments.length && this.icons.length <= twoIcons;\n\n if (currentIsIconButtonValue !== this.isIconButton) {\n this.isIconButton = currentIsIconButtonValue;\n this.cdr.detectChanges();\n }\n\n if (this.icons.length && filteredNodesWithoutComments.length > 1) {\n this.icons.map((item) => item.getHostElement())\n .forEach((iconHostElement) => {\n const iconIndex = filteredNodesWithoutComments.findIndex(\n (node) => node === iconHostElement\n );\n\n if (iconIndex === 0) {\n this.renderer.addClass(iconHostElement, leftIconClassName);\n this.renderer.addClass(this.nativeElement, buttonLeftIconClassName);\n }\n\n if (iconIndex === filteredNodesWithoutComments.length - 1) {\n this.renderer.addClass(iconHostElement, rightIconClassName);\n this.renderer.addClass(this.nativeElement, buttonRightIconClassName);\n }\n });\n }\n }\n}\n\n/** @docs-private */\nexport class KbqButtonBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqButtonMixinBase: HasTabIndexCtor & CanColorCtor &\n typeof KbqButtonBase = mixinTabIndex(mixinColor(KbqButtonBase, KbqComponentColors.ContrastFade));\n\n\n@Component({\n selector: '[kbq-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['color', 'tabIndex'],\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.kbq-disabled]': 'disabled',\n '[attr.tabIndex]': 'tabIndex',\n '[class]': 'kbqStyle',\n\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur()'\n }\n})\nexport class KbqButton extends KbqButtonMixinBase implements OnDestroy, CanDisable, CanColor {\n hasFocus: boolean = false;\n\n @Input()\n get kbqStyle(): string {\n return `kbq-button_${this._kbqStyle}`;\n }\n\n set kbqStyle(value: string | KbqButtonStyles) {\n this._kbqStyle = value || KbqButtonStyles.Filled;\n }\n\n private _kbqStyle: string | KbqButtonStyles = KbqButtonStyles.Filled;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n\n this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();\n }\n\n private _disabled: boolean = false;\n\n constructor(elementRef: ElementRef, private focusMonitor: FocusMonitor, private styler: KbqButtonCssStyler) {\n super(elementRef);\n\n this.runFocusMonitor();\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n }\n\n onFocus($event) {\n $event.stopPropagation();\n\n this.hasFocus = true;\n }\n\n onBlur() {\n this.hasFocus = false;\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n focus(): void {\n this.hasFocus = true;\n\n this.getHostElement().focus();\n }\n\n focusViaKeyboard(): void {\n this.hasFocus = true;\n\n this.focusMonitor.focusVia(this.getHostElement(), 'keyboard');\n }\n\n haltDisabledEvents(event: Event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n }\n }\n\n projectContentChanged() {\n this.styler.updateClassModifierForIcons();\n }\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n\n","<div class=\"kbq-button-wrapper\" (cdkObserveContent)=\"projectContentChanged()\">\n <ng-content></ng-content>\n</div>\n<div class=\"kbq-button-overlay\" (click)=\"haltDisabledEvents($event)\"></div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n KbqButton,\n KbqButtonCssStyler\n} from './button.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n ObserversModule\n ],\n exports: [\n KbqButton,\n KbqButtonCssStyler\n ],\n declarations: [\n KbqButton,\n KbqButtonCssStyler\n ]\n})\nexport class KbqButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -260,7 +260,7 @@ class KbqCheckbox extends KbqCheckboxMixinBase {
260
260
  }
261
261
  }
262
262
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCheckbox, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: KBQ_CHECKBOX_CLICK_ACTION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
263
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqCheckbox, selector: "kbq-checkbox", inputs: { color: "color", tabIndex: "tabIndex", big: "big", id: "id", labelPosition: "labelPosition", name: "name", value: "value", required: "required", checked: "checked", disabled: "disabled", indeterminate: "indeterminate" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "id": "id", "attr.id": "id", "attr.disabled": "disabled", "class.kbq-checkbox_big": "big", "class.kbq-indeterminate": "indeterminate", "class.kbq-checked": "checked", "class.kbq-disabled": "disabled", "class.kbq-checkbox_label-before": "labelPosition == \"before\"" }, classAttribute: "kbq-checkbox" }, providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], exportAs: ["kbqCheckbox"], usesInheritance: true, ngImport: i0, template: "<label [attr.for]=\"inputId\" class=\"kbq-checkbox__layout\" #label>\n <div class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"kbq-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span class=\"kbq-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"kbq-hint\"></ng-content>\n </div>\n</label>\n", styles: [".kbq-checkbox-checkmark,.kbq-checkbox-mixedmark{display:none;position:absolute;inset:-1px 0 0 -1px}.kbq-checkbox__frame{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;background-color:transparent;border-radius:var(--kbq-checkbox-size-normal-border-radius, 4px);border-width:var(--kbq-checkbox-size-normal-border-width, 1px);border-style:solid}.kbq-checkbox__layout{position:relative;display:inline-flex;cursor:inherit;padding-left:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px));vertical-align:top}.kbq-checkbox__inner-container{display:inline-block;position:absolute;top:0;left:0;height:var(--kbq-checkbox-size-normal-width, 16px);width:var(--kbq-checkbox-size-normal-width, 16px)}.kbq-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent}.kbq-checkbox.kbq-checked .kbq-checkbox-checkmark{display:block}.kbq-checkbox.kbq-checked .kbq-checkbox-mixedmark,.kbq-checkbox.kbq-indeterminate .kbq-checkbox-checkmark{display:none}.kbq-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:block}.kbq-checkbox.kbq-disabled{cursor:default}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{box-shadow:none}.kbq-checkbox .kbq-hint{margin-top:var(--kbq-checkbox-size-normal-vertical-content-padding, 2px)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__layout{padding-left:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px))}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__inner-container{top:2px;height:var(--kbq-checkbox-size-big-width, 16px);width:var(--kbq-checkbox-size-big-width, 16px)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__frame{border-radius:var(--kbq-checkbox-size-big-border-radius, 4px);border-width:var(--kbq-checkbox-size-big-border-width, 1px);border-style:solid}.kbq-checkbox.kbq-checkbox_big .kbq-hint{margin-top:var(--kbq-checkbox-size-big-vertical-content-padding, 2px)}.kbq-checkbox__text-container{display:flex;flex-direction:column}.kbq-checkbox__inner-container_no-side-margin{margin-left:0;margin-right:0}.kbq-checkbox_label-before .kbq-checkbox__layout{padding-left:0;padding-right:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px))}.kbq-checkbox_label-before .kbq-checkbox__inner-container{right:0;left:unset}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
263
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqCheckbox, selector: "kbq-checkbox", inputs: { color: "color", tabIndex: "tabIndex", big: "big", id: "id", labelPosition: "labelPosition", name: "name", value: "value", required: "required", checked: "checked", disabled: "disabled", indeterminate: "indeterminate" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "id": "id", "attr.id": "id", "attr.disabled": "disabled", "class.kbq-checkbox_big": "big", "class.kbq-indeterminate": "indeterminate", "class.kbq-checked": "checked", "class.kbq-disabled": "disabled", "class.kbq-checkbox_label-before": "labelPosition == \"before\"" }, classAttribute: "kbq-checkbox" }, providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], exportAs: ["kbqCheckbox"], usesInheritance: true, ngImport: i0, template: "<label [attr.for]=\"inputId\" class=\"kbq-checkbox__layout\" #label>\n <div class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"kbq-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span class=\"kbq-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"kbq-hint\"></ng-content>\n </div>\n</label>\n", styles: [".kbq-checkbox-checkmark,.kbq-checkbox-mixedmark{display:none}.kbq-checkbox__frame{display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;background-color:transparent;border-radius:var(--kbq-checkbox-size-normal-border-radius, 4px);border-width:var(--kbq-checkbox-size-normal-border-width, 1px);border-style:solid;height:var(--kbq-checkbox-size-normal-width, 16px);width:var(--kbq-checkbox-size-normal-width, 16px)}.kbq-checkbox__layout{position:relative;display:inline-flex;cursor:inherit;padding-left:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px));vertical-align:top}.kbq-checkbox__inner-container{display:inline-block;position:absolute;top:0;left:0;height:var(--kbq-checkbox-size-normal-width, 16px);width:var(--kbq-checkbox-size-normal-width, 16px)}.kbq-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent}.kbq-checkbox.kbq-checked .kbq-checkbox-checkmark{display:block}.kbq-checkbox.kbq-checked .kbq-checkbox-mixedmark,.kbq-checkbox.kbq-indeterminate .kbq-checkbox-checkmark{display:none}.kbq-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:block}.kbq-checkbox.kbq-disabled{cursor:default}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{box-shadow:none}.kbq-checkbox .kbq-hint{margin-top:var(--kbq-checkbox-size-normal-vertical-content-padding, 2px)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__layout{padding-left:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px))}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__inner-container{top:2px;height:var(--kbq-checkbox-size-big-width, 16px);width:var(--kbq-checkbox-size-big-width, 16px)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__frame{border-radius:var(--kbq-checkbox-size-big-border-radius, 4px);border-width:var(--kbq-checkbox-size-big-border-width, 1px);border-style:solid}.kbq-checkbox.kbq-checkbox_big .kbq-hint{margin-top:var(--kbq-checkbox-size-big-vertical-content-padding, 2px)}.kbq-checkbox__text-container{display:flex;flex-direction:column}.kbq-checkbox__inner-container_no-side-margin{margin-left:0;margin-right:0}.kbq-checkbox_label-before .kbq-checkbox__layout{padding-left:0;padding-right:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px))}.kbq-checkbox_label-before .kbq-checkbox__inner-container{right:0;left:unset}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
264
264
  }
265
265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCheckbox, decorators: [{
266
266
  type: Component,
@@ -274,7 +274,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
274
274
  '[class.kbq-checked]': 'checked',
275
275
  '[class.kbq-disabled]': 'disabled',
276
276
  '[class.kbq-checkbox_label-before]': 'labelPosition == "before"'
277
- }, providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR], inputs: ['color', 'tabIndex'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label [attr.for]=\"inputId\" class=\"kbq-checkbox__layout\" #label>\n <div class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"kbq-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span class=\"kbq-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"kbq-hint\"></ng-content>\n </div>\n</label>\n", styles: [".kbq-checkbox-checkmark,.kbq-checkbox-mixedmark{display:none;position:absolute;inset:-1px 0 0 -1px}.kbq-checkbox__frame{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;background-color:transparent;border-radius:var(--kbq-checkbox-size-normal-border-radius, 4px);border-width:var(--kbq-checkbox-size-normal-border-width, 1px);border-style:solid}.kbq-checkbox__layout{position:relative;display:inline-flex;cursor:inherit;padding-left:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px));vertical-align:top}.kbq-checkbox__inner-container{display:inline-block;position:absolute;top:0;left:0;height:var(--kbq-checkbox-size-normal-width, 16px);width:var(--kbq-checkbox-size-normal-width, 16px)}.kbq-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent}.kbq-checkbox.kbq-checked .kbq-checkbox-checkmark{display:block}.kbq-checkbox.kbq-checked .kbq-checkbox-mixedmark,.kbq-checkbox.kbq-indeterminate .kbq-checkbox-checkmark{display:none}.kbq-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:block}.kbq-checkbox.kbq-disabled{cursor:default}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{box-shadow:none}.kbq-checkbox .kbq-hint{margin-top:var(--kbq-checkbox-size-normal-vertical-content-padding, 2px)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__layout{padding-left:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px))}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__inner-container{top:2px;height:var(--kbq-checkbox-size-big-width, 16px);width:var(--kbq-checkbox-size-big-width, 16px)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__frame{border-radius:var(--kbq-checkbox-size-big-border-radius, 4px);border-width:var(--kbq-checkbox-size-big-border-width, 1px);border-style:solid}.kbq-checkbox.kbq-checkbox_big .kbq-hint{margin-top:var(--kbq-checkbox-size-big-vertical-content-padding, 2px)}.kbq-checkbox__text-container{display:flex;flex-direction:column}.kbq-checkbox__inner-container_no-side-margin{margin-left:0;margin-right:0}.kbq-checkbox_label-before .kbq-checkbox__layout{padding-left:0;padding-right:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px))}.kbq-checkbox_label-before .kbq-checkbox__inner-container{right:0;left:unset}\n"] }]
277
+ }, providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR], inputs: ['color', 'tabIndex'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label [attr.for]=\"inputId\" class=\"kbq-checkbox__layout\" #label>\n <div class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"kbq-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span class=\"kbq-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"kbq-hint\"></ng-content>\n </div>\n</label>\n", styles: [".kbq-checkbox-checkmark,.kbq-checkbox-mixedmark{display:none}.kbq-checkbox__frame{display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;background-color:transparent;border-radius:var(--kbq-checkbox-size-normal-border-radius, 4px);border-width:var(--kbq-checkbox-size-normal-border-width, 1px);border-style:solid;height:var(--kbq-checkbox-size-normal-width, 16px);width:var(--kbq-checkbox-size-normal-width, 16px)}.kbq-checkbox__layout{position:relative;display:inline-flex;cursor:inherit;padding-left:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px));vertical-align:top}.kbq-checkbox__inner-container{display:inline-block;position:absolute;top:0;left:0;height:var(--kbq-checkbox-size-normal-width, 16px);width:var(--kbq-checkbox-size-normal-width, 16px)}.kbq-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent}.kbq-checkbox.kbq-checked .kbq-checkbox-checkmark{display:block}.kbq-checkbox.kbq-checked .kbq-checkbox-mixedmark,.kbq-checkbox.kbq-indeterminate .kbq-checkbox-checkmark{display:none}.kbq-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:block}.kbq-checkbox.kbq-disabled{cursor:default}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{box-shadow:none}.kbq-checkbox .kbq-hint{margin-top:var(--kbq-checkbox-size-normal-vertical-content-padding, 2px)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__layout{padding-left:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px))}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__inner-container{top:2px;height:var(--kbq-checkbox-size-big-width, 16px);width:var(--kbq-checkbox-size-big-width, 16px)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__frame{border-radius:var(--kbq-checkbox-size-big-border-radius, 4px);border-width:var(--kbq-checkbox-size-big-border-width, 1px);border-style:solid}.kbq-checkbox.kbq-checkbox_big .kbq-hint{margin-top:var(--kbq-checkbox-size-big-vertical-content-padding, 2px)}.kbq-checkbox__text-container{display:flex;flex-direction:column}.kbq-checkbox__inner-container_no-side-margin{margin-left:0;margin-right:0}.kbq-checkbox_label-before .kbq-checkbox__layout{padding-left:0;padding-right:calc(var(--kbq-checkbox-size-normal-width, 16px) + var(--kbq-checkbox-size-normal-horizontal-content-padding, 8px))}.kbq-checkbox_label-before .kbq-checkbox__inner-container{right:0;left:unset}\n"] }]
278
278
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{
279
279
  type: Optional
280
280
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-checkbox.mjs","sources":["../../../packages/components/checkbox/checkbox-config.ts","../../../packages/components/checkbox/checkbox.ts","../../../packages/components/checkbox/checkbox.html","../../../packages/components/checkbox/checkbox-required-validator.ts","../../../packages/components/checkbox/checkbox-module.ts","../../../packages/components/checkbox/koobiq-components-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n\n/**\n * Checkbox click action when user click on input element.\n * noop: Do not toggle checked or indeterminate.\n * check: Only toggle checked status, ignore indeterminate.\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\n * undefined: Same as `check-indeterminate`.\n */\nexport type KbqCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\n\n/**\n * Injection token that can be used to specify the checkbox click behavior.\n */\nexport const KBQ_CHECKBOX_CLICK_ACTION =\n new InjectionToken<KbqCheckboxClickAction>('kbq-checkbox-click-action');\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n CanColor,\n CanColorCtor,\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n mixinColor,\n mixinDisabled,\n mixinTabIndex,\n KbqComponentColors,\n toBoolean\n} from '@koobiq/components/core';\n\nimport { KBQ_CHECKBOX_CLICK_ACTION, KbqCheckboxClickAction } from './checkbox-config';\n\n\n// Increasing integer for generating unique ids for checkbox components.\nlet nextUniqueId = 0;\n\n/**\n * Provider Expression that allows kbq-checkbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqCheckbox),\n multi: true\n};\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport enum TransitionCheckState {\n /** The initial state of the component before any user interaction. */\n Init,\n /** The state representing the component when it's becoming checked. */\n Checked,\n /** The state representing the component when it's becoming unchecked. */\n Unchecked,\n /** The state representing the component when it's becoming indeterminate. */\n Indeterminate\n}\n\n/** Change event object emitted by KbqCheckbox. */\nexport class KbqCheckboxChange {\n /** The source KbqCheckbox of the event. */\n source: KbqCheckbox;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\n// Boilerplate for applying mixins to KbqCheckbox.\n/** @docs-private */\nexport class KbqCheckboxBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqCheckboxMixinBase:\n HasTabIndexCtor &\n CanColorCtor &\n CanDisableCtor &\n typeof KbqCheckboxBase = mixinTabIndex(mixinColor(mixinDisabled(KbqCheckboxBase), KbqComponentColors.Theme));\n\n\n/**\n * A Koobiq checkbox component. Supports all of the functionality of an HTML5 checkbox,\n * and exposes a similar API. A KbqCheckbox can be either checked, unchecked, indeterminate, or\n * disabled. Note that all additional accessibility attributes are taken care of by the component,\n * so there is no need to provide them yourself. However, if you want to omit a label and still\n * have the checkbox be accessible, you may supply an [aria-label] input.\n */\n@Component({\n selector: 'kbq-checkbox',\n exportAs: 'kbqCheckbox',\n templateUrl: 'checkbox.html',\n styleUrls: ['checkbox.scss'],\n host: {\n class: 'kbq-checkbox',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[attr.disabled]': 'disabled',\n '[class.kbq-checkbox_big]': 'big',\n '[class.kbq-indeterminate]': 'indeterminate',\n '[class.kbq-checked]': 'checked',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-checkbox_label-before]': 'labelPosition == \"before\"'\n },\n providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR],\n inputs: ['color', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqCheckbox extends KbqCheckboxMixinBase implements ControlValueAccessor,\n AfterViewInit, OnDestroy, CanColor, CanDisable, HasTabIndex {\n\n @Input() big: boolean = false;\n\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n @Input() id: string;\n\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\n @Input() labelPosition: 'before' | 'after' = 'after';\n\n /** Name value will be applied to the input element if present */\n @Input() name: string | null = null;\n\n /** Event emitted when the checkbox's `checked` value changes. */\n @Output() readonly change: EventEmitter<KbqCheckboxChange> = new EventEmitter<KbqCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** The value attribute of the native input element */\n @Input() value: string;\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input', { static: false }) inputElement: ElementRef;\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n /** Whether the checkbox is required. */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = toBoolean(value);\n }\n\n private _required: boolean;\n\n /**\n * Whether the checkbox is checked.\n */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n /**\n * Whether the checkbox is disabled. This fully overrides the implementation provided by\n * mixinDisabled, but the mixin is still required because mixinTabIndex requires it.\n */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n if (value !== this.disabled) {\n this._disabled = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\n * set to false.\n */\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n const changed = value !== this._indeterminate;\n this._indeterminate = value;\n\n if (changed) {\n if (this._indeterminate) {\n this.transitionCheckState(TransitionCheckState.Indeterminate);\n } else {\n this.transitionCheckState(\n this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n\n this.indeterminateChange.emit(this._indeterminate);\n }\n }\n\n private _indeterminate: boolean = false;\n\n private uniqueId: string = `kbq-checkbox-${++nextUniqueId}`;\n\n private currentAnimationClass: string = '';\n\n private currentCheckState: TransitionCheckState = TransitionCheckState.Init;\n\n constructor(\n elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n @Optional() @Inject(KBQ_CHECKBOX_CLICK_ACTION) private clickAction: KbqCheckboxClickAction\n ) {\n super(elementRef);\n\n this.id = this.uniqueId;\n }\n\n /**\n * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.\n * @docs-private\n */\n // tslint:disable-next-line:no-empty\n onTouched: () => any = () => {};\n\n ngAfterViewInit() {\n this.focusMonitor\n .monitor(this.inputElement.nativeElement)\n .subscribe((focusOrigin) => this.onInputFocusChange(focusOrigin));\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.inputElement.nativeElement);\n }\n\n /** Method being called whenever the label text changes. */\n onLabelTextChange() {\n // This method is getting called whenever the label of the checkbox changes.\n // Since the checkbox uses the OnPush strategy we need to notify it about the change\n // that has been recognized by the cdkObserveContent directive.\n this.changeDetectorRef.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n getAriaChecked(): 'true' | 'false' | 'mixed' {\n return this.checked ? 'true' : (this.indeterminate ? 'mixed' : 'false');\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle(): void {\n this.checked = !this.checked;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n * Do not toggle on (change) event since IE doesn't fire change event when\n * indeterminate checkbox is clicked.\n * @param event Input click event\n */\n onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `checkbox` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n\n // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click\n if (!this.disabled && this.clickAction !== 'noop') {\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate && this.clickAction !== 'check') {\n\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n\n this.toggle();\n this.transitionCheckState(\n this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n } else if (!this.disabled && this.clickAction === 'noop') {\n // Reset native input when clicked with noop. The native checkbox becomes checked after\n // click, reset it to be align with `checked` value of `kbq-checkbox`.\n this.inputElement.nativeElement.checked = this.checked;\n this.inputElement.nativeElement.indeterminate = this.indeterminate;\n }\n }\n\n /** Focuses the checkbox. */\n focus(): void {\n this.focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\n }\n\n onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n // tslint:disable-next-line:no-empty\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n private transitionCheckState(newState: TransitionCheckState) {\n const oldState = this.currentCheckState;\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (oldState === newState) { return; }\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.remove(this.currentAnimationClass);\n }\n\n this.currentCheckState = newState;\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.add(this.currentAnimationClass);\n }\n }\n\n private emitChangeEvent() {\n const event = new KbqCheckboxChange();\n event.source = this;\n event.checked = this.checked;\n\n this.controlValueAccessorChangeFn(this.checked);\n this.change.emit(event);\n }\n\n /** Function is called whenever the focus changes for the input element. */\n private onInputFocusChange(focusOrigin: FocusOrigin) {\n if (focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<label [attr.for]=\"inputId\" class=\"kbq-checkbox__layout\" #label>\n <div class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"kbq-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span class=\"kbq-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"kbq-hint\"></ng-content>\n </div>\n</label>\n","import {\n Directive,\n forwardRef,\n Provider\n} from '@angular/core';\nimport {\n CheckboxRequiredValidator,\n NG_VALIDATORS\n} from '@angular/forms';\n\n\nexport const KBQ_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => KbqCheckboxRequiredValidator),\n multi: true\n};\n\n/**\n * Validator for koobiq checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `kbq-checkbox`.\n */\n@Directive({\n selector: `kbq-checkbox[required][formControlName],\n kbq-checkbox[required][formControl], kbq-checkbox[required][ngModel]`,\n providers: [KBQ_CHECKBOX_REQUIRED_VALIDATOR],\n host: { '[attr.required]': 'required ? \"\" : null' }\n})\nexport class KbqCheckboxRequiredValidator extends CheckboxRequiredValidator {\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { KbqCheckbox } from './checkbox';\nimport { KbqCheckboxRequiredValidator } from './checkbox-required-validator';\n\n\n@NgModule({\n imports: [CommonModule],\n exports: [KbqCheckbox, KbqCheckboxRequiredValidator],\n declarations: [KbqCheckbox, KbqCheckboxRequiredValidator]\n})\nexport class KbqCheckboxModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-checkbox.mjs","sources":["../../../packages/components/checkbox/checkbox-config.ts","../../../packages/components/checkbox/checkbox.ts","../../../packages/components/checkbox/checkbox.html","../../../packages/components/checkbox/checkbox-required-validator.ts","../../../packages/components/checkbox/checkbox-module.ts","../../../packages/components/checkbox/koobiq-components-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n\n/**\n * Checkbox click action when user click on input element.\n * noop: Do not toggle checked or indeterminate.\n * check: Only toggle checked status, ignore indeterminate.\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\n * undefined: Same as `check-indeterminate`.\n */\nexport type KbqCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\n\n/**\n * Injection token that can be used to specify the checkbox click behavior.\n */\nexport const KBQ_CHECKBOX_CLICK_ACTION =\n new InjectionToken<KbqCheckboxClickAction>('kbq-checkbox-click-action');\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n CanColor,\n CanColorCtor,\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n mixinColor,\n mixinDisabled,\n mixinTabIndex,\n KbqComponentColors,\n toBoolean\n} from '@koobiq/components/core';\n\nimport { KBQ_CHECKBOX_CLICK_ACTION, KbqCheckboxClickAction } from './checkbox-config';\n\n\n// Increasing integer for generating unique ids for checkbox components.\nlet nextUniqueId = 0;\n\n/**\n * Provider Expression that allows kbq-checkbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqCheckbox),\n multi: true\n};\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport enum TransitionCheckState {\n /** The initial state of the component before any user interaction. */\n Init,\n /** The state representing the component when it's becoming checked. */\n Checked,\n /** The state representing the component when it's becoming unchecked. */\n Unchecked,\n /** The state representing the component when it's becoming indeterminate. */\n Indeterminate\n}\n\n/** Change event object emitted by KbqCheckbox. */\nexport class KbqCheckboxChange {\n /** The source KbqCheckbox of the event. */\n source: KbqCheckbox;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\n// Boilerplate for applying mixins to KbqCheckbox.\n/** @docs-private */\nexport class KbqCheckboxBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqCheckboxMixinBase:\n HasTabIndexCtor &\n CanColorCtor &\n CanDisableCtor &\n typeof KbqCheckboxBase = mixinTabIndex(mixinColor(mixinDisabled(KbqCheckboxBase), KbqComponentColors.Theme));\n\n\n/**\n * A Koobiq checkbox component. Supports all of the functionality of an HTML5 checkbox,\n * and exposes a similar API. A KbqCheckbox can be either checked, unchecked, indeterminate, or\n * disabled. Note that all additional accessibility attributes are taken care of by the component,\n * so there is no need to provide them yourself. However, if you want to omit a label and still\n * have the checkbox be accessible, you may supply an [aria-label] input.\n */\n@Component({\n selector: 'kbq-checkbox',\n exportAs: 'kbqCheckbox',\n templateUrl: 'checkbox.html',\n styleUrls: ['checkbox.scss'],\n host: {\n class: 'kbq-checkbox',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[attr.disabled]': 'disabled',\n '[class.kbq-checkbox_big]': 'big',\n '[class.kbq-indeterminate]': 'indeterminate',\n '[class.kbq-checked]': 'checked',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-checkbox_label-before]': 'labelPosition == \"before\"'\n },\n providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR],\n inputs: ['color', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqCheckbox extends KbqCheckboxMixinBase implements ControlValueAccessor,\n AfterViewInit, OnDestroy, CanColor, CanDisable, HasTabIndex {\n\n @Input() big: boolean = false;\n\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n @Input() id: string;\n\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\n @Input() labelPosition: 'before' | 'after' = 'after';\n\n /** Name value will be applied to the input element if present */\n @Input() name: string | null = null;\n\n /** Event emitted when the checkbox's `checked` value changes. */\n @Output() readonly change: EventEmitter<KbqCheckboxChange> = new EventEmitter<KbqCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** The value attribute of the native input element */\n @Input() value: string;\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input', { static: false }) inputElement: ElementRef;\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n /** Whether the checkbox is required. */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = toBoolean(value);\n }\n\n private _required: boolean;\n\n /**\n * Whether the checkbox is checked.\n */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n /**\n * Whether the checkbox is disabled. This fully overrides the implementation provided by\n * mixinDisabled, but the mixin is still required because mixinTabIndex requires it.\n */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n if (value !== this.disabled) {\n this._disabled = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\n * set to false.\n */\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n const changed = value !== this._indeterminate;\n this._indeterminate = value;\n\n if (changed) {\n if (this._indeterminate) {\n this.transitionCheckState(TransitionCheckState.Indeterminate);\n } else {\n this.transitionCheckState(\n this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n\n this.indeterminateChange.emit(this._indeterminate);\n }\n }\n\n private _indeterminate: boolean = false;\n\n private uniqueId: string = `kbq-checkbox-${++nextUniqueId}`;\n\n private currentAnimationClass: string = '';\n\n private currentCheckState: TransitionCheckState = TransitionCheckState.Init;\n\n constructor(\n elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n @Optional() @Inject(KBQ_CHECKBOX_CLICK_ACTION) private clickAction: KbqCheckboxClickAction\n ) {\n super(elementRef);\n\n this.id = this.uniqueId;\n }\n\n /**\n * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.\n * @docs-private\n */\n // tslint:disable-next-line:no-empty\n onTouched: () => any = () => {};\n\n ngAfterViewInit() {\n this.focusMonitor\n .monitor(this.inputElement.nativeElement)\n .subscribe((focusOrigin) => this.onInputFocusChange(focusOrigin));\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.inputElement.nativeElement);\n }\n\n /** Method being called whenever the label text changes. */\n onLabelTextChange() {\n // This method is getting called whenever the label of the checkbox changes.\n // Since the checkbox uses the OnPush strategy we need to notify it about the change\n // that has been recognized by the cdkObserveContent directive.\n this.changeDetectorRef.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n getAriaChecked(): 'true' | 'false' | 'mixed' {\n return this.checked ? 'true' : (this.indeterminate ? 'mixed' : 'false');\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle(): void {\n this.checked = !this.checked;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n * Do not toggle on (change) event since IE doesn't fire change event when\n * indeterminate checkbox is clicked.\n * @param event Input click event\n */\n onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `checkbox` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n\n // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click\n if (!this.disabled && this.clickAction !== 'noop') {\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate && this.clickAction !== 'check') {\n\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n\n this.toggle();\n this.transitionCheckState(\n this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n } else if (!this.disabled && this.clickAction === 'noop') {\n // Reset native input when clicked with noop. The native checkbox becomes checked after\n // click, reset it to be align with `checked` value of `kbq-checkbox`.\n this.inputElement.nativeElement.checked = this.checked;\n this.inputElement.nativeElement.indeterminate = this.indeterminate;\n }\n }\n\n /** Focuses the checkbox. */\n focus(): void {\n this.focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\n }\n\n onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n // tslint:disable-next-line:no-empty\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n private transitionCheckState(newState: TransitionCheckState) {\n const oldState = this.currentCheckState;\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (oldState === newState) { return; }\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.remove(this.currentAnimationClass);\n }\n\n this.currentCheckState = newState;\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.add(this.currentAnimationClass);\n }\n }\n\n private emitChangeEvent() {\n const event = new KbqCheckboxChange();\n event.source = this;\n event.checked = this.checked;\n\n this.controlValueAccessorChangeFn(this.checked);\n this.change.emit(event);\n }\n\n /** Function is called whenever the focus changes for the input element. */\n private onInputFocusChange(focusOrigin: FocusOrigin) {\n if (focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<label [attr.for]=\"inputId\" class=\"kbq-checkbox__layout\" #label>\n <div class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"!checkboxLabel.textContent || !checkboxLabel.textContent.trim()\">\n <input #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [indeterminate]=\"indeterminate\"\n [attr.aria-checked]=\"getAriaChecked()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark mc mc-check_16\"></i>\n <i class=\"kbq-checkbox-mixedmark mc mc-minus_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span class=\"kbq-checkbox-label\" #checkboxLabel (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"kbq-hint\"></ng-content>\n </div>\n</label>\n","import {\n Directive,\n forwardRef,\n Provider\n} from '@angular/core';\nimport {\n CheckboxRequiredValidator,\n NG_VALIDATORS\n} from '@angular/forms';\n\n\nexport const KBQ_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => KbqCheckboxRequiredValidator),\n multi: true\n};\n\n/**\n * Validator for koobiq checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `kbq-checkbox`.\n */\n@Directive({\n selector: `kbq-checkbox[required][formControlName],\n kbq-checkbox[required][formControl], kbq-checkbox[required][ngModel]`,\n providers: [KBQ_CHECKBOX_REQUIRED_VALIDATOR],\n host: { '[attr.required]': 'required ? \"\" : null' }\n})\nexport class KbqCheckboxRequiredValidator extends CheckboxRequiredValidator {\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { KbqCheckbox } from './checkbox';\nimport { KbqCheckboxRequiredValidator } from './checkbox-required-validator';\n\n\n@NgModule({\n imports: [CommonModule],\n exports: [KbqCheckbox, KbqCheckboxRequiredValidator],\n declarations: [KbqCheckbox, KbqCheckboxRequiredValidator]\n})\nexport class KbqCheckboxModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -188,7 +188,7 @@ class KbqCodeBlockComponent {
188
188
  return `${fileName}.${extension}`;
189
189
  }
190
190
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCodeBlockComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Clipboard }, { token: i0.Renderer2 }, { token: KBQ_CODE_BLOCK_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
191
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqCodeBlockComponent, selector: "kbq-code-block", inputs: { lineNumbers: "lineNumbers", codeFiles: "codeFiles", filled: "filled", maxHeight: "maxHeight", softWrap: "softWrap" }, host: { listeners: { "window:resize": "resizeStream.next($event)" }, properties: { "class.kbq-code-block_filled": "filled", "class.kbq-code-block_outline": "!filled", "class.kbq-code-block_hide-line-numbers": "!lineNumbers", "class.kbq-code-block_single-file": "singleFile", "class.kbq-code-block_no-header": "noHeader" }, classAttribute: "kbq-code-block" }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: KbqTabGroup, descendants: true }], exportAs: ["kbqCodeBlock"], ngImport: i0, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"toggleViewAll()\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-header{margin-right:152px;padding:var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-right, 8px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px)}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px)}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:unset}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:100%;position:absolute;bottom:0}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 0px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 20px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i5.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }, { kind: "component", type: i6.KbqTabGroup, selector: "kbq-tab-group", inputs: ["disabled", "transparent", "onSurface", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["kbqTabGroup"] }, { kind: "directive", type: i6.KbqTabLabel, selector: "[kbq-tab-label], [kbqTabLabel]" }, { kind: "component", type: i6.KbqTab, selector: "kbq-tab", inputs: ["disabled", "tooltipTitle", "tooltipPlacement", "label", "empty", "tabId"], exportAs: ["kbqTab"] }, { kind: "component", type: KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: ["config", "codeFiles", "lessContrast", "selectedTabIndex", "multiLine", "softWrap"], outputs: ["toggleSoftWrap", "downloadCode", "copyCode", "openExternalSystem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
191
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqCodeBlockComponent, selector: "kbq-code-block", inputs: { lineNumbers: "lineNumbers", codeFiles: "codeFiles", filled: "filled", maxHeight: "maxHeight", softWrap: "softWrap" }, host: { listeners: { "window:resize": "resizeStream.next($event)" }, properties: { "class.kbq-code-block_filled": "filled", "class.kbq-code-block_outline": "!filled", "class.kbq-code-block_hide-line-numbers": "!lineNumbers", "class.kbq-code-block_single-file": "singleFile", "class.kbq-code-block_no-header": "noHeader" }, classAttribute: "kbq-code-block" }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: KbqTabGroup, descendants: true }], exportAs: ["kbqCodeBlock"], ngImport: i0, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"toggleViewAll()\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-header{margin-right:152px;padding:var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-right, 8px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px)}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px)}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:unset}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:100%;position:absolute;bottom:0}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 0px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 20px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 32px);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i5.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }, { kind: "component", type: i6.KbqTabGroup, selector: "kbq-tab-group", inputs: ["disabled", "transparent", "onSurface", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["kbqTabGroup"] }, { kind: "directive", type: i6.KbqTabLabel, selector: "[kbq-tab-label], [kbqTabLabel]" }, { kind: "component", type: i6.KbqTab, selector: "kbq-tab", inputs: ["disabled", "tooltipTitle", "tooltipPlacement", "label", "empty", "tabId"], exportAs: ["kbqTab"] }, { kind: "component", type: KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: ["config", "codeFiles", "lessContrast", "selectedTabIndex", "multiLine", "softWrap"], outputs: ["toggleSoftWrap", "downloadCode", "copyCode", "openExternalSystem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
192
192
  }
193
193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCodeBlockComponent, decorators: [{
194
194
  type: Component,
@@ -200,7 +200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
200
200
  '[class.kbq-code-block_single-file]': 'singleFile',
201
201
  '[class.kbq-code-block_no-header]': 'noHeader',
202
202
  '(window:resize)': 'resizeStream.next($event)'
203
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"toggleViewAll()\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-header{margin-right:152px;padding:var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-right, 8px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px)}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px)}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:unset}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:100%;position:absolute;bottom:0}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 0px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 20px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}\n"] }]
203
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"toggleViewAll()\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-header{margin-right:152px;padding:var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-right, 8px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px)}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px)}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:unset}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:100%;position:absolute;bottom:0}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 0px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 20px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 32px);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}\n"] }]
204
204
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Clipboard }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
205
205
  type: Optional
206
206
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-code-block.mjs","sources":["../../../packages/components/code-block/actionbar.component.ts","../../../packages/components/code-block/actionbar.component.html","../../../packages/components/code-block/code-block.component.ts","../../../packages/components/code-block/code-block.component.html","../../../packages/components/code-block/code-block.module.ts","../../../packages/components/code-block/koobiq-components-code-block.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { filter } from 'rxjs/operators';\n\nimport {\n KbqCodeBlockConfiguration,\n KbqCodeFile\n} from './code-block.types';\n\n\n@Component({\n selector: 'kbq-actionbar-block',\n templateUrl: './actionbar.component.html',\n styleUrls: ['./actionbar.component.scss'],\n host: {\n class: 'kbq-code-block-actionbar',\n '[class.kbq-code-block-actionbar_less-contrast]': 'lessContrast'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqActionBarComponent implements AfterViewInit {\n @ViewChild('copyTooltip') copyTooltip: KbqTooltipTrigger;\n\n @Input() config: KbqCodeBlockConfiguration;\n @Input() codeFiles: KbqCodeFile[];\n @Input() lessContrast: boolean;\n @Input() selectedTabIndex = 0;\n @Input() multiLine: boolean;\n @Input() softWrap: boolean;\n\n @Output() toggleSoftWrap = new EventEmitter<void>();\n @Output() downloadCode = new EventEmitter<void>();\n @Output() copyCode = new EventEmitter<void>();\n @Output() openExternalSystem = new EventEmitter<void>();\n\n copyTooltipText: string;\n\n ngAfterViewInit(): void {\n this.copyTooltipText = this.config.copyTooltip;\n\n this.copyTooltip.visibleChange\n .pipe(filter((state) => !state))\n .subscribe(() => {\n if (this.copyTooltipText === this.config.copiedTooltip) {\n this.copyTooltipText = this.config.copyTooltip;\n }\n });\n }\n\n onCopy() {\n this.copyCode.emit();\n\n setTimeout(() => {\n this.copyTooltipText = this.config.copiedTooltip;\n this.copyTooltip.show();\n });\n }\n}\n","<div class=\"kbq-code-block__fade-gradient\"></div>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport {\n Component,\n ViewEncapsulation,\n Input,\n Inject,\n InjectionToken,\n ChangeDetectionStrategy,\n Optional,\n ElementRef,\n ChangeDetectorRef,\n OnDestroy,\n ViewChild,\n Renderer2\n} from '@angular/core';\nimport { KbqTabChangeEvent, KbqTabGroup } from '@koobiq/components/tabs';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport {\n KbqCodeBlockConfiguration,\n KbqCodeFile\n} from './code-block.types';\n\n\nexport const COPIED_MESSAGE_TOOLTIP_TIMEOUT = 100;\nexport const DEFAULT_EXTENSION = 'txt';\nexport const LANGUAGES_EXTENSIONS = {\n html: 'html',\n css: 'css',\n php: 'php',\n java: 'java',\n bash: 'sh',\n javascript: 'js',\n typescript: 'ts',\n python: 'py',\n ruby: 'rb',\n c: 'c',\n 'c++': 'cpp',\n 'c#': 'cs',\n csharp: 'cs',\n lua: 'lua',\n xml: 'xml',\n json: 'json'\n};\n\nexport const KBQ_CODE_BLOCK_CONFIGURATION = new InjectionToken<any>('KbqCodeBlockConfiguration');\n\nexport const KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION = {\n softWrapOnTooltip: 'Включить перенос по словам',\n softWrapOffTooltip: 'Выключить перенос по словам',\n downloadTooltip: 'Скачать',\n copiedTooltip: '✓ Скопировано',\n copyTooltip: 'Скопировать',\n viewAllText: 'Показать все',\n viewLessText: 'Свернуть',\n openExternalSystemTooltip: 'Открыть во внешней системе'\n};\n\n\nconst actionBarBlockLeftMargin = 24;\n\n@Component({\n selector: 'kbq-code-block',\n exportAs: 'kbqCodeBlock',\n templateUrl: './code-block.component.html',\n styleUrls: ['./code-block.scss'],\n host: {\n class: 'kbq-code-block',\n '[class.kbq-code-block_filled]': 'filled',\n '[class.kbq-code-block_outline]': '!filled',\n '[class.kbq-code-block_hide-line-numbers]': '!lineNumbers',\n '[class.kbq-code-block_single-file]': 'singleFile',\n '[class.kbq-code-block_no-header]': 'noHeader',\n '(window:resize)': 'resizeStream.next($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqCodeBlockComponent implements OnDestroy {\n\n @ViewChild(KbqTabGroup) tabGroup: KbqTabGroup;\n\n @Input() lineNumbers = true;\n @Input() codeFiles: KbqCodeFile[];\n @Input() filled: boolean;\n @Input() maxHeight: number;\n @Input() softWrap: boolean = false;\n\n get noHeader(): any {\n return this.codeFiles.length === 1 && !this.codeFiles[0].filename;\n }\n\n get singleFile(): boolean {\n return this.codeFiles.length === 1;\n }\n\n selectedTabIndex = 0;\n copied: boolean = false;\n viewAll: boolean = false;\n multiLine: boolean = false;\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly resizeDebounceInterval: number = 100;\n private resizeSubscription = Subscription.EMPTY;\n\n constructor(\n private elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private clipboard: Clipboard,\n private renderer: Renderer2,\n @Optional() @Inject(KBQ_CODE_BLOCK_CONFIGURATION) public config: KbqCodeBlockConfiguration\n ) {\n this.config = config || KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION;\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.resizeDebounceInterval))\n .subscribe(this.updateHeader);\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription.unsubscribe();\n }\n\n updateHeader = () => {\n const clientWidth: number = this.elementRef.nativeElement.querySelector('kbq-actionbar-block').clientWidth;\n\n this.renderer.setStyle(\n this.tabGroup.tabHeader.elementRef.nativeElement,\n 'margin-right',\n `${actionBarBlockLeftMargin + clientWidth}px`\n );\n\n this.changeDetectorRef.markForCheck();\n }\n\n toggleSoftWrap() {\n this.softWrap = !this.softWrap;\n }\n\n toggleViewAll() {\n this.viewAll = !this.viewAll;\n }\n\n downloadCode() {\n const codeFile = this.codeFiles[this.selectedTabIndex];\n const blob = new Blob([codeFile.content], { type: 'text/plain' });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n\n link.setAttribute('href', url);\n link.setAttribute('download', `${this.getFullFileName(codeFile)}`);\n link.click();\n }\n\n copyCode() {\n this.clipboard.copy(this.codeFiles[this.selectedTabIndex].content);\n this.copied = true;\n }\n\n openExternalSystem() {\n const externalLink = this.codeFiles[this.selectedTabIndex].link;\n window.open(externalLink, '_blank');\n }\n\n onHighlighted() {\n setTimeout(this.updateMultiline, 1);\n }\n\n getMaxHeight(): string {\n return this.maxHeight > 0 && !this.viewAll ? `${this.maxHeight}px` : 'none';\n }\n\n onSelectTab($event: KbqTabChangeEvent) {\n this.selectedTabIndex = $event.index;\n this.updateMultiline();\n\n setTimeout(this.updateHeader);\n }\n\n private updateMultiline = () => {\n this.multiLine = this.elementRef.nativeElement\n .querySelectorAll('.hljs-ln-numbers').length > 1;\n\n this.updateHeader();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private getFullFileName(codeFile: KbqCodeFile): string {\n const fileName = codeFile.filename || 'code';\n const extension = LANGUAGES_EXTENSIONS[codeFile.language] || DEFAULT_EXTENSION;\n\n return `${fileName}.${extension}`;\n }\n}\n","<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"toggleViewAll()\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTabsModule } from '@koobiq/components/tabs';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { HIGHLIGHT_OPTIONS, HighlightModule } from 'ngx-highlightjs';\n\nimport { KbqActionBarComponent } from './actionbar.component';\nimport { KbqCodeBlockComponent } from './code-block.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n KbqButtonModule,\n KbqToolTipModule,\n KbqIconModule,\n HighlightModule,\n KbqTabsModule\n ], // , I18nModule\n declarations: [\n KbqCodeBlockComponent,\n KbqActionBarComponent\n ],\n providers: [{\n provide: HIGHLIGHT_OPTIONS,\n useValue: {\n fullLibraryLoader: () => import('highlight.js'),\n lineNumbersLoader: () => import('highlightjs-line-numbers.js'),\n lineNumbers: true\n }\n }],\n exports: [KbqCodeBlockComponent]\n})\nexport class KbqCodeBlockModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i7.KbqActionBarComponent"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-code-block.mjs","sources":["../../../packages/components/code-block/actionbar.component.ts","../../../packages/components/code-block/actionbar.component.html","../../../packages/components/code-block/code-block.component.ts","../../../packages/components/code-block/code-block.component.html","../../../packages/components/code-block/code-block.module.ts","../../../packages/components/code-block/koobiq-components-code-block.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { filter } from 'rxjs/operators';\n\nimport {\n KbqCodeBlockConfiguration,\n KbqCodeFile\n} from './code-block.types';\n\n\n@Component({\n selector: 'kbq-actionbar-block',\n templateUrl: './actionbar.component.html',\n styleUrls: ['./actionbar.component.scss'],\n host: {\n class: 'kbq-code-block-actionbar',\n '[class.kbq-code-block-actionbar_less-contrast]': 'lessContrast'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqActionBarComponent implements AfterViewInit {\n @ViewChild('copyTooltip') copyTooltip: KbqTooltipTrigger;\n\n @Input() config: KbqCodeBlockConfiguration;\n @Input() codeFiles: KbqCodeFile[];\n @Input() lessContrast: boolean;\n @Input() selectedTabIndex = 0;\n @Input() multiLine: boolean;\n @Input() softWrap: boolean;\n\n @Output() toggleSoftWrap = new EventEmitter<void>();\n @Output() downloadCode = new EventEmitter<void>();\n @Output() copyCode = new EventEmitter<void>();\n @Output() openExternalSystem = new EventEmitter<void>();\n\n copyTooltipText: string;\n\n ngAfterViewInit(): void {\n this.copyTooltipText = this.config.copyTooltip;\n\n this.copyTooltip.visibleChange\n .pipe(filter((state) => !state))\n .subscribe(() => {\n if (this.copyTooltipText === this.config.copiedTooltip) {\n this.copyTooltipText = this.config.copyTooltip;\n }\n });\n }\n\n onCopy() {\n this.copyCode.emit();\n\n setTimeout(() => {\n this.copyTooltipText = this.config.copiedTooltip;\n this.copyTooltip.show();\n });\n }\n}\n","<div class=\"kbq-code-block__fade-gradient\"></div>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport {\n Component,\n ViewEncapsulation,\n Input,\n Inject,\n InjectionToken,\n ChangeDetectionStrategy,\n Optional,\n ElementRef,\n ChangeDetectorRef,\n OnDestroy,\n ViewChild,\n Renderer2\n} from '@angular/core';\nimport { KbqTabChangeEvent, KbqTabGroup } from '@koobiq/components/tabs';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport {\n KbqCodeBlockConfiguration,\n KbqCodeFile\n} from './code-block.types';\n\n\nexport const COPIED_MESSAGE_TOOLTIP_TIMEOUT = 100;\nexport const DEFAULT_EXTENSION = 'txt';\nexport const LANGUAGES_EXTENSIONS = {\n html: 'html',\n css: 'css',\n php: 'php',\n java: 'java',\n bash: 'sh',\n javascript: 'js',\n typescript: 'ts',\n python: 'py',\n ruby: 'rb',\n c: 'c',\n 'c++': 'cpp',\n 'c#': 'cs',\n csharp: 'cs',\n lua: 'lua',\n xml: 'xml',\n json: 'json'\n};\n\nexport const KBQ_CODE_BLOCK_CONFIGURATION = new InjectionToken<any>('KbqCodeBlockConfiguration');\n\nexport const KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION = {\n softWrapOnTooltip: 'Включить перенос по словам',\n softWrapOffTooltip: 'Выключить перенос по словам',\n downloadTooltip: 'Скачать',\n copiedTooltip: '✓ Скопировано',\n copyTooltip: 'Скопировать',\n viewAllText: 'Показать все',\n viewLessText: 'Свернуть',\n openExternalSystemTooltip: 'Открыть во внешней системе'\n};\n\n\nconst actionBarBlockLeftMargin = 24;\n\n@Component({\n selector: 'kbq-code-block',\n exportAs: 'kbqCodeBlock',\n templateUrl: './code-block.component.html',\n styleUrls: ['./code-block.scss'],\n host: {\n class: 'kbq-code-block',\n '[class.kbq-code-block_filled]': 'filled',\n '[class.kbq-code-block_outline]': '!filled',\n '[class.kbq-code-block_hide-line-numbers]': '!lineNumbers',\n '[class.kbq-code-block_single-file]': 'singleFile',\n '[class.kbq-code-block_no-header]': 'noHeader',\n '(window:resize)': 'resizeStream.next($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqCodeBlockComponent implements OnDestroy {\n\n @ViewChild(KbqTabGroup) tabGroup: KbqTabGroup;\n\n @Input() lineNumbers = true;\n @Input() codeFiles: KbqCodeFile[];\n @Input() filled: boolean;\n @Input() maxHeight: number;\n @Input() softWrap: boolean = false;\n\n get noHeader(): any {\n return this.codeFiles.length === 1 && !this.codeFiles[0].filename;\n }\n\n get singleFile(): boolean {\n return this.codeFiles.length === 1;\n }\n\n selectedTabIndex = 0;\n copied: boolean = false;\n viewAll: boolean = false;\n multiLine: boolean = false;\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly resizeDebounceInterval: number = 100;\n private resizeSubscription = Subscription.EMPTY;\n\n constructor(\n private elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private clipboard: Clipboard,\n private renderer: Renderer2,\n @Optional() @Inject(KBQ_CODE_BLOCK_CONFIGURATION) public config: KbqCodeBlockConfiguration\n ) {\n this.config = config || KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION;\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.resizeDebounceInterval))\n .subscribe(this.updateHeader);\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription.unsubscribe();\n }\n\n updateHeader = () => {\n const clientWidth: number = this.elementRef.nativeElement.querySelector('kbq-actionbar-block').clientWidth;\n\n this.renderer.setStyle(\n this.tabGroup.tabHeader.elementRef.nativeElement,\n 'margin-right',\n `${actionBarBlockLeftMargin + clientWidth}px`\n );\n\n this.changeDetectorRef.markForCheck();\n }\n\n toggleSoftWrap() {\n this.softWrap = !this.softWrap;\n }\n\n toggleViewAll() {\n this.viewAll = !this.viewAll;\n }\n\n downloadCode() {\n const codeFile = this.codeFiles[this.selectedTabIndex];\n const blob = new Blob([codeFile.content], { type: 'text/plain' });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n\n link.setAttribute('href', url);\n link.setAttribute('download', `${this.getFullFileName(codeFile)}`);\n link.click();\n }\n\n copyCode() {\n this.clipboard.copy(this.codeFiles[this.selectedTabIndex].content);\n this.copied = true;\n }\n\n openExternalSystem() {\n const externalLink = this.codeFiles[this.selectedTabIndex].link;\n window.open(externalLink, '_blank');\n }\n\n onHighlighted() {\n setTimeout(this.updateMultiline, 1);\n }\n\n getMaxHeight(): string {\n return this.maxHeight > 0 && !this.viewAll ? `${this.maxHeight}px` : 'none';\n }\n\n onSelectTab($event: KbqTabChangeEvent) {\n this.selectedTabIndex = $event.index;\n this.updateMultiline();\n\n setTimeout(this.updateHeader);\n }\n\n private updateMultiline = () => {\n this.multiLine = this.elementRef.nativeElement\n .querySelectorAll('.hljs-ln-numbers').length > 1;\n\n this.updateHeader();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private getFullFileName(codeFile: KbqCodeFile): string {\n const fileName = codeFile.filename || 'code';\n const extension = LANGUAGES_EXTENSIONS[codeFile.language] || DEFAULT_EXTENSION;\n\n return `${fileName}.${extension}`;\n }\n}\n","<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"toggleViewAll()\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTabsModule } from '@koobiq/components/tabs';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { HIGHLIGHT_OPTIONS, HighlightModule } from 'ngx-highlightjs';\n\nimport { KbqActionBarComponent } from './actionbar.component';\nimport { KbqCodeBlockComponent } from './code-block.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n KbqButtonModule,\n KbqToolTipModule,\n KbqIconModule,\n HighlightModule,\n KbqTabsModule\n ], // , I18nModule\n declarations: [\n KbqCodeBlockComponent,\n KbqActionBarComponent\n ],\n providers: [{\n provide: HIGHLIGHT_OPTIONS,\n useValue: {\n fullLibraryLoader: () => import('highlight.js'),\n lineNumbersLoader: () => import('highlightjs-line-numbers.js'),\n lineNumbers: true\n }\n }],\n exports: [KbqCodeBlockComponent]\n})\nexport class KbqCodeBlockModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i7.KbqActionBarComponent"],"mappings":"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"}