@festo-ui/angular 3.1.0-pre-20220203.2 → 3.1.0-pre-20220203.4
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.
- package/esm2020/festo-ui-angular.mjs +5 -0
- package/esm2020/index.mjs +18 -0
- package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +23 -0
- package/esm2020/lib/components/buttons/button/button.component.mjs +41 -0
- package/esm2020/lib/components/buttons/link-button/link-button.component.mjs +33 -0
- package/esm2020/lib/components/chips/chip/chip.component.mjs +37 -0
- package/esm2020/lib/components/chips/chip-container/chip-container.component.mjs +16 -0
- package/esm2020/lib/components/click-outside.directive.mjs +28 -0
- package/esm2020/lib/components/components.module.mjs +155 -0
- package/esm2020/lib/components/loading-indicator/loading-indicator.component.mjs +16 -0
- package/esm2020/lib/components/modals/alert/alert.component.mjs +52 -0
- package/esm2020/lib/components/modals/confirm/confirm.component.mjs +67 -0
- package/esm2020/lib/components/modals/index.mjs +2 -0
- package/esm2020/lib/components/modals/modal.service.mjs +112 -0
- package/esm2020/lib/components/modals/modals.module.mjs +28 -0
- package/esm2020/lib/components/modals/prompt/prompt.component.mjs +102 -0
- package/esm2020/lib/components/pagination/pagination.component.mjs +55 -0
- package/esm2020/lib/components/popovers/legend/legend.component.mjs +42 -0
- package/esm2020/lib/components/popovers/legend/legend.directive.mjs +31 -0
- package/esm2020/lib/components/popovers/popover/popover.component.mjs +31 -0
- package/esm2020/lib/components/popovers/popover-content/popover-content.component.mjs +82 -0
- package/esm2020/lib/components/popovers/popover-content/popover-content.directive.mjs +39 -0
- package/esm2020/lib/components/popovers/popover-menu/popover-menu.component.mjs +68 -0
- package/esm2020/lib/components/popovers/popover-ref.mjs +25 -0
- package/esm2020/lib/components/popovers/popover.defaults.mjs +60 -0
- package/esm2020/lib/components/popovers/popover.models.mjs +23 -0
- package/esm2020/lib/components/popovers/popover.service.mjs +123 -0
- package/esm2020/lib/components/popovers/tooltip/tooltip.directive.mjs +94 -0
- package/esm2020/lib/components/progress/progress.component.mjs +20 -0
- package/esm2020/lib/components/scroll/index.mjs +2 -0
- package/esm2020/lib/components/scroll/scrollable.directive.mjs +72 -0
- package/esm2020/lib/components/search-input/search-input.component.mjs +150 -0
- package/esm2020/lib/components/snackbar/snackbar-container.component.mjs +21 -0
- package/esm2020/lib/components/snackbar/snackbar-container.directive.mjs +83 -0
- package/esm2020/lib/components/snackbar/snackbar.component.mjs +79 -0
- package/esm2020/lib/components/snackbar/snackbar.models.mjs +2 -0
- package/esm2020/lib/components/snackbar/snackbar.module.mjs +26 -0
- package/esm2020/lib/components/snackbar/snackbar.service.mjs +23 -0
- package/esm2020/lib/components/stepper/stepper.component.mjs +22 -0
- package/esm2020/lib/components/table-header-cell/table-header-cell.directive.mjs +58 -0
- package/esm2020/lib/components/tabs/tab-pane/tab-pane.component.mjs +31 -0
- package/esm2020/lib/components/tabs/tabs.component.mjs +355 -0
- package/esm2020/lib/content/content.module.mjs +20 -0
- package/esm2020/lib/content/icon/icon.component.mjs +17 -0
- package/esm2020/lib/festo-angular.module.mjs +58 -0
- package/esm2020/lib/forms/checkbox/checkbox.component.mjs +149 -0
- package/esm2020/lib/forms/color-indicator/color-indicator.component.mjs +68 -0
- package/esm2020/lib/forms/color-picker/color-helper.mjs +121 -0
- package/esm2020/lib/forms/color-picker/color-picker.component.mjs +273 -0
- package/esm2020/lib/forms/container-host.mjs +27 -0
- package/esm2020/lib/forms/date-picker/date-picker.component.mjs +199 -0
- package/esm2020/lib/forms/date-range-picker/date-range-picker.component.mjs +224 -0
- package/esm2020/lib/forms/forms.module.mjs +146 -0
- package/esm2020/lib/forms/radio/radio.component.mjs +346 -0
- package/esm2020/lib/forms/segment/segment-control/segment-control.component.mjs +52 -0
- package/esm2020/lib/forms/segment/segment.component.mjs +109 -0
- package/esm2020/lib/forms/select/chip-text.pipe.mjs +34 -0
- package/esm2020/lib/forms/select/select-option/select-option.component.mjs +22 -0
- package/esm2020/lib/forms/select/select.component.mjs +257 -0
- package/esm2020/lib/forms/slider/slider.component.mjs +110 -0
- package/esm2020/lib/forms/switch/switch.component.mjs +120 -0
- package/esm2020/lib/forms/text-area/text-area.component.mjs +180 -0
- package/esm2020/lib/forms/text-editor/text-editor.component.mjs +286 -0
- package/esm2020/lib/forms/text-input/text-input.component.mjs +183 -0
- package/esm2020/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +89 -0
- package/esm2020/lib/forms/time-picker/time-picker.component.mjs +188 -0
- package/esm2020/lib/forms/unique-selection-dispatcher.mjs +39 -0
- package/esm2020/lib/forms/value-accessor-base.mjs +41 -0
- package/esm2020/lib/layout/layout.module.mjs +18 -0
- package/esm2020/lib/wrappers/flatpickr/flatpickr.component.mjs +59 -0
- package/fesm2015/{festo-ui-angular.js → festo-ui-angular.mjs} +317 -521
- package/fesm2015/festo-ui-angular.mjs.map +1 -0
- package/fesm2020/festo-ui-angular.mjs +5383 -0
- package/fesm2020/festo-ui-angular.mjs.map +1 -0
- package/package.json +31 -16
- package/scss/base/components/breadcrumb/breadcrumb.component.scss +0 -1
- package/scss/base/components/modals/prompt/prompt.component.scss +0 -1
- package/scss/base/components/popovers/legend/legend.component.scss +2 -2
- package/scss/base/components/popovers/popover/styles.scss +3 -3
- package/scss/base/components/popovers/popover-content/popover-content.component.scss +1 -1
- package/scss/base/components/scroll/scroll-story-helper.scss +1 -3
- package/scss/base/components/snackbar/snackbar.component.scss +1 -1
- package/scss/base/components/stepper/stepper.component.scss +16 -15
- package/scss/base/forms/color-picker/color-picker.component.scss +12 -12
- package/scss/base/forms/date-picker/date-picker.component.scss +1 -1
- package/scss/base/forms/date-range-picker/date-range-picker.component.scss +1 -1
- package/scss/base/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.scss +1 -1
- package/scss/styles.scss +2 -2
- package/bundles/festo-ui-angular.umd.js +0 -6429
- package/bundles/festo-ui-angular.umd.js.map +0 -1
- package/esm2015/festo-ui-angular.js +0 -5
- package/esm2015/festo-ui-angular.js.map +0 -1
- package/esm2015/index.js +0 -18
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +0 -27
- package/esm2015/lib/components/breadcrumb/breadcrumb.component.js.map +0 -1
- package/esm2015/lib/components/buttons/button/button.component.js +0 -46
- package/esm2015/lib/components/buttons/button/button.component.js.map +0 -1
- package/esm2015/lib/components/buttons/link-button/link-button.component.js +0 -38
- package/esm2015/lib/components/buttons/link-button/link-button.component.js.map +0 -1
- package/esm2015/lib/components/chips/chip/chip.component.js +0 -42
- package/esm2015/lib/components/chips/chip/chip.component.js.map +0 -1
- package/esm2015/lib/components/chips/chip-container/chip-container.component.js +0 -21
- package/esm2015/lib/components/chips/chip-container/chip-container.component.js.map +0 -1
- package/esm2015/lib/components/click-outside.directive.js +0 -28
- package/esm2015/lib/components/click-outside.directive.js.map +0 -1
- package/esm2015/lib/components/components.module.js +0 -155
- package/esm2015/lib/components/components.module.js.map +0 -1
- package/esm2015/lib/components/loading-indicator/loading-indicator.component.js +0 -21
- package/esm2015/lib/components/loading-indicator/loading-indicator.component.js.map +0 -1
- package/esm2015/lib/components/modals/alert/alert.component.js +0 -57
- package/esm2015/lib/components/modals/alert/alert.component.js.map +0 -1
- package/esm2015/lib/components/modals/confirm/confirm.component.js +0 -73
- package/esm2015/lib/components/modals/confirm/confirm.component.js.map +0 -1
- package/esm2015/lib/components/modals/index.js +0 -2
- package/esm2015/lib/components/modals/index.js.map +0 -1
- package/esm2015/lib/components/modals/modal.service.js +0 -91
- package/esm2015/lib/components/modals/modal.service.js.map +0 -1
- package/esm2015/lib/components/modals/modals.module.js +0 -28
- package/esm2015/lib/components/modals/modals.module.js.map +0 -1
- package/esm2015/lib/components/modals/prompt/prompt.component.js +0 -110
- package/esm2015/lib/components/modals/prompt/prompt.component.js.map +0 -1
- package/esm2015/lib/components/pagination/pagination.component.js +0 -60
- package/esm2015/lib/components/pagination/pagination.component.js.map +0 -1
- package/esm2015/lib/components/popovers/legend/legend.component.js +0 -46
- package/esm2015/lib/components/popovers/legend/legend.component.js.map +0 -1
- package/esm2015/lib/components/popovers/legend/legend.directive.js +0 -31
- package/esm2015/lib/components/popovers/legend/legend.directive.js.map +0 -1
- package/esm2015/lib/components/popovers/popover/popover.component.js +0 -35
- package/esm2015/lib/components/popovers/popover/popover.component.js.map +0 -1
- package/esm2015/lib/components/popovers/popover-content/popover-content.component.js +0 -86
- package/esm2015/lib/components/popovers/popover-content/popover-content.component.js.map +0 -1
- package/esm2015/lib/components/popovers/popover-content/popover-content.directive.js +0 -39
- package/esm2015/lib/components/popovers/popover-content/popover-content.directive.js.map +0 -1
- package/esm2015/lib/components/popovers/popover-menu/popover-menu.component.js +0 -72
- package/esm2015/lib/components/popovers/popover-menu/popover-menu.component.js.map +0 -1
- package/esm2015/lib/components/popovers/popover-ref.js +0 -25
- package/esm2015/lib/components/popovers/popover-ref.js.map +0 -1
- package/esm2015/lib/components/popovers/popover.defaults.js +0 -60
- package/esm2015/lib/components/popovers/popover.defaults.js.map +0 -1
- package/esm2015/lib/components/popovers/popover.models.js +0 -23
- package/esm2015/lib/components/popovers/popover.models.js.map +0 -1
- package/esm2015/lib/components/popovers/popover.service.js +0 -117
- package/esm2015/lib/components/popovers/popover.service.js.map +0 -1
- package/esm2015/lib/components/popovers/tooltip/tooltip.directive.js +0 -96
- package/esm2015/lib/components/popovers/tooltip/tooltip.directive.js.map +0 -1
- package/esm2015/lib/components/progress/progress.component.js +0 -23
- package/esm2015/lib/components/progress/progress.component.js.map +0 -1
- package/esm2015/lib/components/scroll/index.js +0 -2
- package/esm2015/lib/components/scroll/index.js.map +0 -1
- package/esm2015/lib/components/scroll/scrollable.directive.js +0 -73
- package/esm2015/lib/components/scroll/scrollable.directive.js.map +0 -1
- package/esm2015/lib/components/search-input/search-input.component.js +0 -155
- package/esm2015/lib/components/search-input/search-input.component.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar-container.component.js +0 -26
- package/esm2015/lib/components/snackbar/snackbar-container.component.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar-container.directive.js +0 -83
- package/esm2015/lib/components/snackbar/snackbar-container.directive.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar.component.js +0 -85
- package/esm2015/lib/components/snackbar/snackbar.component.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar.models.js +0 -2
- package/esm2015/lib/components/snackbar/snackbar.models.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar.module.js +0 -26
- package/esm2015/lib/components/snackbar/snackbar.module.js.map +0 -1
- package/esm2015/lib/components/snackbar/snackbar.service.js +0 -23
- package/esm2015/lib/components/snackbar/snackbar.service.js.map +0 -1
- package/esm2015/lib/components/stepper/stepper.component.js +0 -28
- package/esm2015/lib/components/stepper/stepper.component.js.map +0 -1
- package/esm2015/lib/components/table-header-cell/table-header-cell.directive.js +0 -58
- package/esm2015/lib/components/table-header-cell/table-header-cell.directive.js.map +0 -1
- package/esm2015/lib/components/tabs/tab-pane/tab-pane.component.js +0 -35
- package/esm2015/lib/components/tabs/tab-pane/tab-pane.component.js.map +0 -1
- package/esm2015/lib/components/tabs/tabs.component.js +0 -362
- package/esm2015/lib/components/tabs/tabs.component.js.map +0 -1
- package/esm2015/lib/content/content.module.js +0 -24
- package/esm2015/lib/content/content.module.js.map +0 -1
- package/esm2015/lib/content/icon/icon.component.js +0 -23
- package/esm2015/lib/content/icon/icon.component.js.map +0 -1
- package/esm2015/lib/festo-angular.module.js +0 -58
- package/esm2015/lib/festo-angular.module.js.map +0 -1
- package/esm2015/lib/forms/checkbox/checkbox.component.js +0 -156
- package/esm2015/lib/forms/checkbox/checkbox.component.js.map +0 -1
- package/esm2015/lib/forms/color-indicator/color-indicator.component.js +0 -72
- package/esm2015/lib/forms/color-indicator/color-indicator.component.js.map +0 -1
- package/esm2015/lib/forms/color-picker/color-helper.js +0 -121
- package/esm2015/lib/forms/color-picker/color-helper.js.map +0 -1
- package/esm2015/lib/forms/color-picker/color-picker.component.js +0 -280
- package/esm2015/lib/forms/color-picker/color-picker.component.js.map +0 -1
- package/esm2015/lib/forms/container-host.js +0 -27
- package/esm2015/lib/forms/container-host.js.map +0 -1
- package/esm2015/lib/forms/date-picker/date-picker.component.js +0 -205
- package/esm2015/lib/forms/date-picker/date-picker.component.js.map +0 -1
- package/esm2015/lib/forms/date-range-picker/date-range-picker.component.js +0 -230
- package/esm2015/lib/forms/date-range-picker/date-range-picker.component.js.map +0 -1
- package/esm2015/lib/forms/forms.module.js +0 -146
- package/esm2015/lib/forms/forms.module.js.map +0 -1
- package/esm2015/lib/forms/radio/radio.component.js +0 -353
- package/esm2015/lib/forms/radio/radio.component.js.map +0 -1
- package/esm2015/lib/forms/segment/segment-control/segment-control.component.js +0 -58
- package/esm2015/lib/forms/segment/segment-control/segment-control.component.js.map +0 -1
- package/esm2015/lib/forms/segment/segment.component.js +0 -116
- package/esm2015/lib/forms/segment/segment.component.js.map +0 -1
- package/esm2015/lib/forms/select/chip-text.pipe.js +0 -34
- package/esm2015/lib/forms/select/chip-text.pipe.js.map +0 -1
- package/esm2015/lib/forms/select/select-option/select-option.component.js +0 -29
- package/esm2015/lib/forms/select/select-option/select-option.component.js.map +0 -1
- package/esm2015/lib/forms/select/select.component.js +0 -265
- package/esm2015/lib/forms/select/select.component.js.map +0 -1
- package/esm2015/lib/forms/slider/slider.component.js +0 -116
- package/esm2015/lib/forms/slider/slider.component.js.map +0 -1
- package/esm2015/lib/forms/switch/switch.component.js +0 -127
- package/esm2015/lib/forms/switch/switch.component.js.map +0 -1
- package/esm2015/lib/forms/text-area/text-area.component.js +0 -186
- package/esm2015/lib/forms/text-area/text-area.component.js.map +0 -1
- package/esm2015/lib/forms/text-editor/text-editor.component.js +0 -294
- package/esm2015/lib/forms/text-editor/text-editor.component.js.map +0 -1
- package/esm2015/lib/forms/text-input/text-input.component.js +0 -189
- package/esm2015/lib/forms/text-input/text-input.component.js.map +0 -1
- package/esm2015/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.js +0 -103
- package/esm2015/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.js.map +0 -1
- package/esm2015/lib/forms/time-picker/time-picker.component.js +0 -194
- package/esm2015/lib/forms/time-picker/time-picker.component.js.map +0 -1
- package/esm2015/lib/forms/unique-selection-dispatcher.js +0 -39
- package/esm2015/lib/forms/unique-selection-dispatcher.js.map +0 -1
- package/esm2015/lib/forms/value-accessor-base.js +0 -41
- package/esm2015/lib/forms/value-accessor-base.js.map +0 -1
- package/esm2015/lib/layout/layout.module.js +0 -18
- package/esm2015/lib/layout/layout.module.js.map +0 -1
- package/esm2015/lib/wrappers/flatpickr/flatpickr.component.js +0 -63
- package/esm2015/lib/wrappers/flatpickr/flatpickr.component.js.map +0 -1
- package/fesm2015/festo-ui-angular.js.map +0 -1
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
/**
|
|
5
|
-
* An icon component.
|
|
6
|
-
*/
|
|
7
|
-
export class IconComponent {
|
|
8
|
-
}
|
|
9
|
-
IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
-
IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: IconComponent, selector: "fng-icon", inputs: { icon: "icon" }, ngImport: i0, template: "<i *ngIf=\"icon?.type === 'font'\" [class]=\"'fwe-icon fwe-icon-' + icon?.name + ' ' + (icon.class || '')\"></i>\n<img *ngIf=\"icon?.type === 'img'\" [class]=\"icon.class\"\n [src]=\"icon?.url\"\n [ngStyle]=\"{'width': icon?.width + 'px', 'height': icon?.height + 'px'}\">\n<ng-content *ngIf=\"icon?.type === 'svg'\"></ng-content>\n", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: IconComponent, decorators: [{
|
|
12
|
-
type: Component,
|
|
13
|
-
args: [{
|
|
14
|
-
selector: 'fng-icon',
|
|
15
|
-
templateUrl: './icon.component.html',
|
|
16
|
-
styleUrls: ['./icon.component.scss'],
|
|
17
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
|
-
encapsulation: ViewEncapsulation.None
|
|
19
|
-
}]
|
|
20
|
-
}], propDecorators: { icon: [{
|
|
21
|
-
type: Input
|
|
22
|
-
}] } });
|
|
23
|
-
//# sourceMappingURL=icon.component.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"icon.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular/src/lib/content/icon/icon.component.ts","../../../../../../../libs/angular/src/lib/content/icon/icon.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;;;AA0C7F;;GAEG;AAQH,MAAM,OAAO,aAAa;;0GAAb,aAAa;8FAAb,aAAa,0ECpD1B,wVAKA;2FD+Ca,aAAa;kBAPzB,SAAS;mBAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,WAAW,EAAE,uBAAuB;oBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;oBACpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACtC;8BAKU,IAAI;sBAAZ,KAAK","sourcesContent":["import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\n\nexport type IconType = 'font' | 'img' | 'svg';\n\n/**\n * Describes an icon.\n */\nexport interface Icon {\n /**\n * The icon type.\n * - 'font' uses [name]{@link Icon#name} to resolve the icon from the icon font.\n * - 'img' uses [url]{@link Icon#url}, [height]{@link Icon#height}, [width]{@link Icon#width}\n * - 'svg' uses ng-content to display svg, [height]{@link Icon#height}, [width]{@link Icon#width}\n */\n type: IconType;\n\n /**\n * The name used to resolve the icon.\n */\n name?: string;\n\n /**\n * The url used to resolve the image.\n */\n url?: string;\n\n /**\n * Height of the image in pixel (px).\n */\n height?: number;\n\n /**\n * Width of the image in pixel (px).\n */\n width?: number;\n\n /**\n * This string will be added as css class to the icon.\n */\n class?: string;\n}\n\n/**\n * An icon component.\n */\n@Component({\n selector: 'fng-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class IconComponent {\n /**\n * The icon.\n */\n @Input() icon: Icon;\n}\n","<i *ngIf=\"icon?.type === 'font'\" [class]=\"'fwe-icon fwe-icon-' + icon?.name + ' ' + (icon.class || '')\"></i>\n<img *ngIf=\"icon?.type === 'img'\" [class]=\"icon.class\"\n [src]=\"icon?.url\"\n [ngStyle]=\"{'width': icon?.width + 'px', 'height': icon?.height + 'px'}\">\n<ng-content *ngIf=\"icon?.type === 'svg'\"></ng-content>\n"]}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FestoAngularLayoutModule } from './layout/layout.module';
|
|
3
|
-
import { FestoAngularComponentsModule } from './components/components.module';
|
|
4
|
-
import { FestoAngularContentModule } from './content/content.module';
|
|
5
|
-
import { FestoAngularFormsModule } from './forms/forms.module';
|
|
6
|
-
import { FestoAngularModalsModule } from './components/modals/modals.module';
|
|
7
|
-
import { FestoAngularSnackbarModule } from './components/snackbar/snackbar.module';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class FestoAngularModule {
|
|
10
|
-
}
|
|
11
|
-
FestoAngularModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: FestoAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
-
FestoAngularModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: FestoAngularModule, imports: [FestoAngularLayoutModule,
|
|
13
|
-
FestoAngularComponentsModule,
|
|
14
|
-
FestoAngularContentModule,
|
|
15
|
-
FestoAngularFormsModule,
|
|
16
|
-
FestoAngularModalsModule,
|
|
17
|
-
FestoAngularSnackbarModule], exports: [FestoAngularLayoutModule,
|
|
18
|
-
FestoAngularComponentsModule,
|
|
19
|
-
FestoAngularContentModule,
|
|
20
|
-
FestoAngularFormsModule,
|
|
21
|
-
FestoAngularModalsModule,
|
|
22
|
-
FestoAngularSnackbarModule] });
|
|
23
|
-
FestoAngularModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: FestoAngularModule, imports: [[
|
|
24
|
-
FestoAngularLayoutModule,
|
|
25
|
-
FestoAngularComponentsModule,
|
|
26
|
-
FestoAngularContentModule,
|
|
27
|
-
FestoAngularFormsModule,
|
|
28
|
-
FestoAngularModalsModule,
|
|
29
|
-
FestoAngularSnackbarModule
|
|
30
|
-
], FestoAngularLayoutModule,
|
|
31
|
-
FestoAngularComponentsModule,
|
|
32
|
-
FestoAngularContentModule,
|
|
33
|
-
FestoAngularFormsModule,
|
|
34
|
-
FestoAngularModalsModule,
|
|
35
|
-
FestoAngularSnackbarModule] });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: FestoAngularModule, decorators: [{
|
|
37
|
-
type: NgModule,
|
|
38
|
-
args: [{
|
|
39
|
-
declarations: [],
|
|
40
|
-
imports: [
|
|
41
|
-
FestoAngularLayoutModule,
|
|
42
|
-
FestoAngularComponentsModule,
|
|
43
|
-
FestoAngularContentModule,
|
|
44
|
-
FestoAngularFormsModule,
|
|
45
|
-
FestoAngularModalsModule,
|
|
46
|
-
FestoAngularSnackbarModule
|
|
47
|
-
],
|
|
48
|
-
exports: [
|
|
49
|
-
FestoAngularLayoutModule,
|
|
50
|
-
FestoAngularComponentsModule,
|
|
51
|
-
FestoAngularContentModule,
|
|
52
|
-
FestoAngularFormsModule,
|
|
53
|
-
FestoAngularModalsModule,
|
|
54
|
-
FestoAngularSnackbarModule
|
|
55
|
-
]
|
|
56
|
-
}]
|
|
57
|
-
}] });
|
|
58
|
-
//# sourceMappingURL=festo-angular.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"festo-angular.module.js","sourceRoot":"","sources":["../../../../../libs/angular/src/lib/festo-angular.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;;AAqBnF,MAAM,OAAO,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,YAhB3B,wBAAwB;QACxB,4BAA4B;QAC5B,yBAAyB;QACzB,uBAAuB;QACvB,wBAAwB;QACxB,0BAA0B,aAG1B,wBAAwB;QACxB,4BAA4B;QAC5B,yBAAyB;QACzB,uBAAuB;QACvB,wBAAwB;QACxB,0BAA0B;gHAGjB,kBAAkB,YAjBpB;YACP,wBAAwB;YACxB,4BAA4B;YAC5B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,0BAA0B;SAC3B,EAEC,wBAAwB;QACxB,4BAA4B;QAC5B,yBAAyB;QACzB,uBAAuB;QACvB,wBAAwB;QACxB,0BAA0B;2FAGjB,kBAAkB;kBAnB9B,QAAQ;mBAAC;oBACR,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE;wBACP,wBAAwB;wBACxB,4BAA4B;wBAC5B,yBAAyB;wBACzB,uBAAuB;wBACvB,wBAAwB;wBACxB,0BAA0B;qBAC3B;oBACD,OAAO,EAAE;wBACP,wBAAwB;wBACxB,4BAA4B;wBAC5B,yBAAyB;wBACzB,uBAAuB;wBACvB,wBAAwB;wBACxB,0BAA0B;qBAC3B;iBACF","sourcesContent":["import { NgModule } from '@angular/core';\nimport { FestoAngularLayoutModule } from './layout/layout.module';\nimport { FestoAngularComponentsModule } from './components/components.module';\nimport { FestoAngularContentModule } from './content/content.module';\nimport { FestoAngularFormsModule } from './forms/forms.module';\nimport { FestoAngularModalsModule } from './components/modals/modals.module';\nimport { FestoAngularSnackbarModule } from './components/snackbar/snackbar.module';\n\n@NgModule({\n declarations: [],\n imports: [\n FestoAngularLayoutModule,\n FestoAngularComponentsModule,\n FestoAngularContentModule,\n FestoAngularFormsModule,\n FestoAngularModalsModule,\n FestoAngularSnackbarModule\n ],\n exports: [\n FestoAngularLayoutModule,\n FestoAngularComponentsModule,\n FestoAngularContentModule,\n FestoAngularFormsModule,\n FestoAngularModalsModule,\n FestoAngularSnackbarModule\n ]\n})\nexport class FestoAngularModule {}\n"]}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, ChangeDetectorRef } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
let nextUniqueId = 0;
|
|
7
|
-
export class CheckboxComponent {
|
|
8
|
-
constructor(changeDetector) {
|
|
9
|
-
this.changeDetector = changeDetector;
|
|
10
|
-
this.name = null;
|
|
11
|
-
this.large = false;
|
|
12
|
-
this.valid = true;
|
|
13
|
-
this.labelPosition = 'after';
|
|
14
|
-
this.innerId = `fng-checkbox-${++nextUniqueId}`;
|
|
15
|
-
this.isChecked = false;
|
|
16
|
-
this.isDisabled = false;
|
|
17
|
-
this.isIndeterminate = false;
|
|
18
|
-
this.indeterminateChange = new EventEmitter();
|
|
19
|
-
this.change = new EventEmitter();
|
|
20
|
-
}
|
|
21
|
-
get id() {
|
|
22
|
-
return this.innerId;
|
|
23
|
-
}
|
|
24
|
-
set id(value) {
|
|
25
|
-
this.innerId = value ? `${value}-${++nextUniqueId}` : `fng-checkbox-${++nextUniqueId}`;
|
|
26
|
-
}
|
|
27
|
-
get inputId() {
|
|
28
|
-
return `${this.innerId}-input`;
|
|
29
|
-
}
|
|
30
|
-
get checked() {
|
|
31
|
-
return this.isChecked;
|
|
32
|
-
}
|
|
33
|
-
set checked(value) {
|
|
34
|
-
if (value !== this.checked) {
|
|
35
|
-
this.isChecked = value;
|
|
36
|
-
this.changeDetector.markForCheck();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
get disabled() {
|
|
40
|
-
return this.isDisabled;
|
|
41
|
-
}
|
|
42
|
-
set disabled(value) {
|
|
43
|
-
const newValue = coerceBooleanProperty(value);
|
|
44
|
-
if (newValue !== this.disabled) {
|
|
45
|
-
this.isDisabled = newValue;
|
|
46
|
-
this.changeDetector.markForCheck();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
get indeterminate() {
|
|
50
|
-
return this.isIndeterminate;
|
|
51
|
-
}
|
|
52
|
-
set indeterminate(value) {
|
|
53
|
-
const changed = value !== this.isIndeterminate;
|
|
54
|
-
this.isIndeterminate = coerceBooleanProperty(value);
|
|
55
|
-
if (changed) {
|
|
56
|
-
this.indeterminateChange.emit(this.isIndeterminate);
|
|
57
|
-
}
|
|
58
|
-
this.changeDetector.markForCheck();
|
|
59
|
-
}
|
|
60
|
-
get required() {
|
|
61
|
-
return this.isRequired;
|
|
62
|
-
}
|
|
63
|
-
set required(value) {
|
|
64
|
-
this.isRequired = coerceBooleanProperty(value);
|
|
65
|
-
}
|
|
66
|
-
writeValue(value) {
|
|
67
|
-
this.checked = !!value;
|
|
68
|
-
}
|
|
69
|
-
registerOnChange(fn) {
|
|
70
|
-
this.controlValueAccessorChangeFn = fn;
|
|
71
|
-
}
|
|
72
|
-
registerOnTouched(fn) {
|
|
73
|
-
this.onTouched = fn;
|
|
74
|
-
}
|
|
75
|
-
setDisabledState(isDisabled) {
|
|
76
|
-
this.disabled = isDisabled;
|
|
77
|
-
}
|
|
78
|
-
onInteractionEvent(event) {
|
|
79
|
-
event.stopPropagation();
|
|
80
|
-
}
|
|
81
|
-
onInputClick(event) {
|
|
82
|
-
event.stopPropagation();
|
|
83
|
-
if (!this.disabled) {
|
|
84
|
-
if (this.indeterminate) {
|
|
85
|
-
Promise.resolve().then(() => {
|
|
86
|
-
this.isIndeterminate = false;
|
|
87
|
-
this.indeterminateChange.emit(this.isIndeterminate);
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
if (!this.valid) {
|
|
91
|
-
this.valid = true;
|
|
92
|
-
}
|
|
93
|
-
if (this.required) {
|
|
94
|
-
this.required = false;
|
|
95
|
-
}
|
|
96
|
-
this.checked = !this.checked;
|
|
97
|
-
if (this.controlValueAccessorChangeFn != null) {
|
|
98
|
-
this.controlValueAccessorChangeFn(this.checked);
|
|
99
|
-
}
|
|
100
|
-
if (this.onTouched != null) {
|
|
101
|
-
this.onTouched();
|
|
102
|
-
}
|
|
103
|
-
this.change.emit(this.checked);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
108
|
-
CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: CheckboxComponent, selector: "fng-checkbox", inputs: { name: "name", large: "large", valid: "valid", labelPosition: "labelPosition", id: "id", checked: "checked", disabled: "disabled", indeterminate: "indeterminate", value: "value", required: "required" }, outputs: { indeterminateChange: "indeterminateChange", change: "change" }, providers: [
|
|
109
|
-
{
|
|
110
|
-
provide: NG_VALUE_ACCESSOR,
|
|
111
|
-
useExisting: forwardRef(() => CheckboxComponent),
|
|
112
|
-
multi: true
|
|
113
|
-
}
|
|
114
|
-
], ngImport: i0, template: "<label class=\"fwe-checkbox-container\"\n [class.fng-checkbox-large]=\"large\"\n [class.fng-checkbox-invalid]=\"!valid || required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fng-checkbox-indeterminate]=\"indeterminate\"\n [class.fwe-checked]=\"checked\"\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-label-below': labelPosition == 'below',\n 'fwe-label-before': labelPosition == 'before'\n }\">\n <input type=\"checkbox\"\n [id]=\"inputId\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n [checked]=\"checked\" \n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"fwe-checkbox-indicator-container\">\n <div class=\"fwe-checkbox-indicator-background\"></div>\n <ng-container *ngIf=\"!indeterminate && checked\">\n <svg *ngIf=\"large\" width=\"24px\" height=\"24px\">\n <path d=\"M17.5 7L10 14.5 7.501 12l-1.5 1.501L10 17.5l9-9z\" fill=\"#fff\" />\n </svg>\n <svg *ngIf=\"!large\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\">\n <path d=\"M6 12L3 9l1.25-1.25L6 9.5l5.75-5.75L13 5l-7 7z\" fill=\"#fff\" />\n </svg>\n </ng-container>\n <div *ngIf=\"indeterminate && !checked\" class=\"fwe-indeterminate-indicator\"></div>\n </div>\n <div class=\"fwe-checkbox-title\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-checkbox-container{font-family:\"MetaPro\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;display:flex;flex-direction:row;align-items:flex-start}.fwe-checkbox-container.fwe-label-below{align-items:center;flex-direction:column}.fwe-checkbox-container.fwe-label-below .fwe-checkbox-title{text-align:center;margin:8px 0 0}.fwe-checkbox-container.fwe-label-before{flex-direction:row-reverse;justify-content:flex-end}.fwe-checkbox-container.fwe-label-before .fwe-checkbox-title{margin:0 8px 0 0}.fwe-checkbox-container .fwe-checkbox-indicator-container{margin-top:4px;position:relative}.fwe-checkbox-container input{opacity:0;cursor:pointer;height:0;width:0}.fwe-checkbox-container .fwe-checkbox-title{margin-left:8px;line-height:24px;color:var(--fwe-text);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fwe-checkbox-container .fwe-checkbox-indicator-background{box-sizing:border-box;background:var(--fwe-white);border:1px solid var(--fwe-text-light);border-radius:2px;height:16px;width:16px;transition:border-width .2s ease-out}.fwe-checkbox-container .fwe-indeterminate-indicator{position:absolute;height:2px;width:10px;top:7px;left:3px;background:white}.fwe-checkbox-container svg{display:block;position:absolute;top:0px;left:0px}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-container{margin-top:0}.fwe-checkbox-container.fng-checkbox-large .fwe-checkbox-indicator-background{height:24px;width:24px;border-radius:4px}.fwe-checkbox-container.fng-checkbox-large .fwe-indeterminate-indicator{top:11px;width:14px;left:5px}.fwe-checkbox-container.fng-checkbox-large.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-large.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:12px solid var(--fwe-hero)}.fwe-checkbox-container:hover .fwe-checkbox-indicator-background{background-color:var(--fwe-control)}.fwe-checkbox-container:active .fwe-checkbox-indicator-background{background-color:var(--fwe-control-dark)}.fwe-checkbox-container.fwe-checked .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{border:8px solid var(--fwe-hero)}.fwe-checkbox-container.fwe-checked:hover .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:hover .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-dark)}.fwe-checkbox-container.fwe-checked:active .fwe-checkbox-indicator-background,.fwe-checkbox-container.fng-checkbox-indeterminate:active .fwe-checkbox-indicator-background{border-color:var(--fwe-hero-darker)}.fwe-checkbox-container.fng-checkbox-invalid .fwe-checkbox-indicator-background{border:1px solid var(--fwe-red);background:var(--fwe-white)}.fwe-checkbox-container.fwe-disabled{cursor:default}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fwe-checked .fwe-checkbox-indicator-background{background-color:var(--fwe-control);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fng-checkbox-indeterminate .fwe-checkbox-indicator-background{background-color:var(--fwe-control);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled.fng-checkbox-invalid .fwe-checkbox-indicator-background{background-color:var(--fwe-white);border:1px solid var(--fwe-control)}.fwe-checkbox-container.fwe-disabled .fwe-checkbox-title{color:var(--fwe-text-disabled)}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
116
|
-
type: Component,
|
|
117
|
-
args: [{
|
|
118
|
-
selector: 'fng-checkbox',
|
|
119
|
-
templateUrl: './checkbox.component.html',
|
|
120
|
-
styleUrls: ['./checkbox.component.scss'],
|
|
121
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
122
|
-
encapsulation: ViewEncapsulation.None,
|
|
123
|
-
providers: [
|
|
124
|
-
{
|
|
125
|
-
provide: NG_VALUE_ACCESSOR,
|
|
126
|
-
useExisting: forwardRef(() => CheckboxComponent),
|
|
127
|
-
multi: true
|
|
128
|
-
}
|
|
129
|
-
]
|
|
130
|
-
}]
|
|
131
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], large: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}], valid: [{
|
|
136
|
-
type: Input
|
|
137
|
-
}], labelPosition: [{
|
|
138
|
-
type: Input
|
|
139
|
-
}], id: [{
|
|
140
|
-
type: Input
|
|
141
|
-
}], checked: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}], disabled: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], indeterminate: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}], value: [{
|
|
148
|
-
type: Input
|
|
149
|
-
}], required: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], indeterminateChange: [{
|
|
152
|
-
type: Output
|
|
153
|
-
}], change: [{
|
|
154
|
-
type: Output
|
|
155
|
-
}] } });
|
|
156
|
-
//# sourceMappingURL=checkbox.component.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular/src/lib/forms/checkbox/checkbox.component.ts","../../../../../../../libs/angular/src/lib/forms/checkbox/checkbox.component.html"],"names":[],"mappings":"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","sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n forwardRef,\n ChangeDetectorRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'fng-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n }\n ]\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() name: string = null;\n @Input() large = false;\n @Input() valid = true;\n @Input() labelPosition: 'before' | 'after' | 'below' = 'after';\n\n private innerId = `fng-checkbox-${++nextUniqueId}`;\n get id(): string {\n return this.innerId;\n }\n @Input()\n set id(value: string) {\n this.innerId = value ? `${value}-${++nextUniqueId}` : `fng-checkbox-${++nextUniqueId}`;\n }\n\n get inputId(): string {\n return `${this.innerId}-input`;\n }\n\n @Input()\n get checked(): boolean {\n return this.isChecked;\n }\n set checked(value: boolean) {\n if (value !== this.checked) {\n this.isChecked = value;\n this.changeDetector.markForCheck();\n }\n }\n private isChecked = false;\n\n @Input()\n get disabled() {\n return this.isDisabled;\n }\n set disabled(value: any) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.disabled) {\n this.isDisabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n private isDisabled = false;\n\n @Input()\n get indeterminate(): boolean {\n return this.isIndeterminate;\n }\n set indeterminate(value: boolean) {\n const changed = value !== this.isIndeterminate;\n this.isIndeterminate = coerceBooleanProperty(value);\n if (changed) {\n this.indeterminateChange.emit(this.isIndeterminate);\n }\n this.changeDetector.markForCheck();\n }\n private isIndeterminate = false;\n\n @Input() value: string;\n\n @Input()\n get required(): boolean {\n return this.isRequired;\n }\n set required(value: boolean) {\n this.isRequired = coerceBooleanProperty(value);\n }\n private isRequired: boolean;\n\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() readonly change: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n controlValueAccessorChangeFn: (value: any) => void;\n\n onTouched: () => any;\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onInteractionEvent(event: Event) {\n event.stopPropagation();\n }\n\n onInputClick(event: Event) {\n event.stopPropagation();\n\n if (!this.disabled) {\n if (this.indeterminate) {\n Promise.resolve().then(() => {\n this.isIndeterminate = false;\n this.indeterminateChange.emit(this.isIndeterminate);\n });\n }\n if (!this.valid) {\n this.valid = true;\n }\n if (this.required) {\n this.required = false;\n }\n this.checked = !this.checked;\n if (this.controlValueAccessorChangeFn != null) {\n this.controlValueAccessorChangeFn(this.checked);\n }\n if (this.onTouched != null) {\n this.onTouched();\n }\n this.change.emit(this.checked);\n }\n }\n}\n","<label class=\"fwe-checkbox-container\"\n [class.fng-checkbox-large]=\"large\"\n [class.fng-checkbox-invalid]=\"!valid || required\"\n [class.fwe-disabled]=\"disabled\"\n [class.fng-checkbox-indeterminate]=\"indeterminate\"\n [class.fwe-checked]=\"checked\"\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-label-below': labelPosition == 'below',\n 'fwe-label-before': labelPosition == 'before'\n }\">\n <input type=\"checkbox\"\n [id]=\"inputId\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [attr.value]=\"value\"\n [attr.name]=\"name\"\n [checked]=\"checked\" \n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\">\n <div class=\"fwe-checkbox-indicator-container\">\n <div class=\"fwe-checkbox-indicator-background\"></div>\n <ng-container *ngIf=\"!indeterminate && checked\">\n <svg *ngIf=\"large\" width=\"24px\" height=\"24px\">\n <path d=\"M17.5 7L10 14.5 7.501 12l-1.5 1.501L10 17.5l9-9z\" fill=\"#fff\" />\n </svg>\n <svg *ngIf=\"!large\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\">\n <path d=\"M6 12L3 9l1.25-1.25L6 9.5l5.75-5.75L13 5l-7 7z\" fill=\"#fff\" />\n </svg>\n </ng-container>\n <div *ngIf=\"indeterminate && !checked\" class=\"fwe-indeterminate-indicator\"></div>\n </div>\n <div class=\"fwe-checkbox-title\">\n <ng-content></ng-content>\n </div>\n</label>\n"]}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
/**
|
|
7
|
-
* A control to display a color.
|
|
8
|
-
*/
|
|
9
|
-
export class ColorIndicatorComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.isEditorOpen = false;
|
|
12
|
-
this.positions = [
|
|
13
|
-
new ConnectionPositionPair({
|
|
14
|
-
originX: 'center',
|
|
15
|
-
originY: 'top'
|
|
16
|
-
}, {
|
|
17
|
-
overlayX: 'center',
|
|
18
|
-
overlayY: 'bottom'
|
|
19
|
-
}, 0, -20, ['fng-color-indicator-top']),
|
|
20
|
-
new ConnectionPositionPair({
|
|
21
|
-
originX: 'center',
|
|
22
|
-
originY: 'bottom'
|
|
23
|
-
}, {
|
|
24
|
-
overlayX: 'center',
|
|
25
|
-
overlayY: 'top'
|
|
26
|
-
}, 0, 20, ['fng-color-indicator-bottom']),
|
|
27
|
-
new ConnectionPositionPair({
|
|
28
|
-
originX: 'start',
|
|
29
|
-
originY: 'center'
|
|
30
|
-
}, {
|
|
31
|
-
overlayX: 'end',
|
|
32
|
-
overlayY: 'center'
|
|
33
|
-
}, -20, 0, ['fng-color-indicator-left']),
|
|
34
|
-
new ConnectionPositionPair({
|
|
35
|
-
originX: 'end',
|
|
36
|
-
originY: 'center'
|
|
37
|
-
}, {
|
|
38
|
-
overlayX: 'start',
|
|
39
|
-
overlayY: 'center'
|
|
40
|
-
}, 20, 0, ['fng-color-indicator-right'])
|
|
41
|
-
];
|
|
42
|
-
}
|
|
43
|
-
getBorderColor() {
|
|
44
|
-
if (!this.color || this.color.toUpperCase() === '#FFFFFF' || this.color.toUpperCase() === '#F2F3F5') {
|
|
45
|
-
return '#b6bec6'; // = $control-border
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return this.color;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
ColorIndicatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: ColorIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
-
ColorIndicatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: ColorIndicatorComponent, selector: "fng-color-indicator", inputs: { label: "label", text: "text", color: "color", showPopOver: "showPopOver", disabled: "disabled" }, ngImport: i0, template: "<div class=\"fwe-color-indicator\" (click)=\"isEditorOpen = showPopOver ? !isEditorOpen : false\" [class.disabled]=\"disabled\">\n <div class=\"fwe-color-label\" [style.opacity]=\"isEditorOpen ? 0 : 1\">\n {{ label }}\n </div>\n <div class=\"fwe-color-container\">\n <div\n class=\"fwe-color-box\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [style.background]=\"color\"\n [style.border-color]=\"getBorderColor()\"\n >\n <svg\n *ngIf=\"!color\"\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n </div>\n <div class=\"fwe-color-indicator-text\" *ngIf=\"text\">\n {{ text }}\n </div>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isEditorOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n [cdkConnectedOverlayViewportMargin]=\"32\"\n (backdropClick)=\"isEditorOpen = false\"\n >\n <div class=\"fwe-popover-container\">\n <div class=\"fwe-triangle\"></div>\n <div class=\"fwe-popover\" #popoverContent>\n <div class=\"fwe-color-label fwe-mb-s\">\n {{ label }}\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [".fwe-color-indicator .fwe-popover-container{position:relative}.fwe-color-indicator .fwe-popover-container .fwe-popover{background-color:var(--fwe-white);padding:8px 16px 16px;font-size:14px;line-height:1rem;box-shadow:0 1px 4px #3333;border-radius:8px}.fwe-color-indicator .fwe-backdrop{background:transparent}.fwe-color-indicator .fwe-color-label{height:18px;font-size:12px;font-weight:bold;margin-bottom:4px}.fwe-color-indicator .fwe-color-container{display:flex}.fwe-color-indicator .fwe-color-container .fwe-color-box{height:24px;width:24px;border-radius:4px;border:1px solid var(--fwe-control-border);background:var(--fwe-white)}.fwe-color-indicator .fwe-color-container .fwe-color-box .fwe-no-color-pattern{margin:2px}.fwe-color-indicator .fwe-color-container .fwe-color-indicator-text{margin-left:8px}.fwe-color-indicator.disabled{pointer-events:none}.fwe-color-indicator.disabled .fwe-color-label{color:var(--fwe-text-disabled)}.fwe-color-indicator.disabled .fwe-color-container .fwe-color-box{opacity:.5}.fwe-color-indicator.disabled .fwe-color-container .fwe-color-indicator-text{color:var(--fwe-text-disabled)}\n"], directives: [{ type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayPositions", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayTransformOriginOn"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }] });
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: ColorIndicatorComponent, decorators: [{
|
|
55
|
-
type: Component,
|
|
56
|
-
args: [{
|
|
57
|
-
selector: 'fng-color-indicator',
|
|
58
|
-
templateUrl: './color-indicator.component.html',
|
|
59
|
-
styleUrls: ['./color-indicator.component.scss']
|
|
60
|
-
}]
|
|
61
|
-
}], propDecorators: { label: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], text: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], color: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], showPopOver: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], disabled: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}] } });
|
|
72
|
-
//# sourceMappingURL=color-indicator.component.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"color-indicator.component.js","sourceRoot":"","sources":["../../../../../../../libs/angular/src/lib/forms/color-indicator/color-indicator.component.ts","../../../../../../../libs/angular/src/lib/forms/color-indicator/color-indicator.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;;AAEjD;;GAEG;AAMH,MAAM,OAAO,uBAAuB;IALpC;QA8BS,iBAAY,GAAG,KAAK,CAAC;QAErB,cAAS,GAAG;YACjB,IAAI,sBAAsB,CACxB;gBACE,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,KAAK;aACf,EACD;gBACE,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;aACnB,EACD,CAAC,EACD,CAAC,EAAE,EACH,CAAC,yBAAyB,CAAC,CAC5B;YACD,IAAI,sBAAsB,CACxB;gBACE,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,QAAQ;aAClB,EACD;gBACE,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,KAAK;aAChB,EACD,CAAC,EACD,EAAE,EACF,CAAC,4BAA4B,CAAC,CAC/B;YACD,IAAI,sBAAsB,CACxB;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,QAAQ;aAClB,EACD;gBACE,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,QAAQ;aACnB,EACD,CAAC,EAAE,EACH,CAAC,EACD,CAAC,0BAA0B,CAAC,CAC7B;YACD,IAAI,sBAAsB,CACxB;gBACE,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ;aAClB,EACD;gBACE,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,QAAQ;aACnB,EACD,EAAE,EACF,CAAC,EACD,CAAC,2BAA2B,CAAC,CAC9B;SACF,CAAC;KASH;IAPC,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;YACnG,OAAO,SAAS,CAAC,CAAC,oBAAoB;SACvC;aAAM;YACL,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;IACH,CAAC;;oHAxFU,uBAAuB;wGAAvB,uBAAuB,uKCXpC,4rEA2DA;2FDhDa,uBAAuB;kBALnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,qBAAqB;oBAC/B,WAAW,EAAE,kCAAkC;oBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;iBAChD;8BAKU,KAAK;sBAAb,KAAK;gBAKG,IAAI;sBAAZ,KAAK;gBAMG,KAAK;sBAAb,KAAK;gBAMG,WAAW;sBAAnB,KAAK;gBAEG,QAAQ;sBAAhB,KAAK","sourcesContent":["import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { Component, Input } from '@angular/core';\n\n/**\n * A control to display a color.\n */\n@Component({\n selector: 'fng-color-indicator',\n templateUrl: './color-indicator.component.html',\n styleUrls: ['./color-indicator.component.scss']\n})\nexport class ColorIndicatorComponent {\n /**\n * The label above the color.\n */\n @Input() label: string;\n\n /**\n * A text next to the color.\n */\n @Input() text: string;\n\n /**\n * The current color as a string.\n * Examples: '#ffffff', 'red', 'rgba(1,2,3,0.5)'\n */\n @Input() color: string;\n\n /**\n * enable an overlay to edit the color.\n * The editor must be passed as the content of the indicator.\n */\n @Input() showPopOver: boolean;\n\n @Input() disabled: boolean;\n\n public isEditorOpen = false;\n\n public positions = [\n new ConnectionPositionPair(\n {\n originX: 'center',\n originY: 'top'\n },\n {\n overlayX: 'center',\n overlayY: 'bottom'\n },\n 0,\n -20,\n ['fng-color-indicator-top']\n ),\n new ConnectionPositionPair(\n {\n originX: 'center',\n originY: 'bottom'\n },\n {\n overlayX: 'center',\n overlayY: 'top'\n },\n 0,\n 20,\n ['fng-color-indicator-bottom']\n ),\n new ConnectionPositionPair(\n {\n originX: 'start',\n originY: 'center'\n },\n {\n overlayX: 'end',\n overlayY: 'center'\n },\n -20,\n 0,\n ['fng-color-indicator-left']\n ),\n new ConnectionPositionPair(\n {\n originX: 'end',\n originY: 'center'\n },\n {\n overlayX: 'start',\n overlayY: 'center'\n },\n 20,\n 0,\n ['fng-color-indicator-right']\n )\n ];\n\n getBorderColor(): string {\n if (!this.color || this.color.toUpperCase() === '#FFFFFF' || this.color.toUpperCase() === '#F2F3F5') {\n return '#b6bec6'; // = $control-border\n } else {\n return this.color;\n }\n }\n}\n","<div class=\"fwe-color-indicator\" (click)=\"isEditorOpen = showPopOver ? !isEditorOpen : false\" [class.disabled]=\"disabled\">\n <div class=\"fwe-color-label\" [style.opacity]=\"isEditorOpen ? 0 : 1\">\n {{ label }}\n </div>\n <div class=\"fwe-color-container\">\n <div\n class=\"fwe-color-box\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [style.background]=\"color\"\n [style.border-color]=\"getBorderColor()\"\n >\n <svg\n *ngIf=\"!color\"\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n </div>\n <div class=\"fwe-color-indicator-text\" *ngIf=\"text\">\n {{ text }}\n </div>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isEditorOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n [cdkConnectedOverlayViewportMargin]=\"32\"\n (backdropClick)=\"isEditorOpen = false\"\n >\n <div class=\"fwe-popover-container\">\n <div class=\"fwe-triangle\"></div>\n <div class=\"fwe-popover\" #popoverContent>\n <div class=\"fwe-color-label fwe-mb-s\">\n {{ label }}\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n </ng-template>\n</div>\n"]}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
export class ColorHelper {
|
|
2
|
-
// based on: https://gist.github.com/mjackson/5311256
|
|
3
|
-
static rgbToHsv(rgb) {
|
|
4
|
-
if (!rgb) {
|
|
5
|
-
return undefined;
|
|
6
|
-
}
|
|
7
|
-
const r = this.limitToByte(rgb.r) / 255;
|
|
8
|
-
const g = this.limitToByte(rgb.g) / 255;
|
|
9
|
-
const b = this.limitToByte(rgb.b) / 255;
|
|
10
|
-
const max = Math.max(r, g, b);
|
|
11
|
-
const min = Math.min(r, g, b);
|
|
12
|
-
let h = max;
|
|
13
|
-
let s = max;
|
|
14
|
-
const v = max;
|
|
15
|
-
const d = max - min;
|
|
16
|
-
s = max === 0 ? 0 : d / max;
|
|
17
|
-
if (max === min) {
|
|
18
|
-
h = 0; // achromatic
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
switch (max) {
|
|
22
|
-
case r:
|
|
23
|
-
h = (g - b) / d + (g < b ? 6 : 0);
|
|
24
|
-
break;
|
|
25
|
-
case g:
|
|
26
|
-
h = (b - r) / d + 2;
|
|
27
|
-
break;
|
|
28
|
-
case b:
|
|
29
|
-
h = (r - g) / d + 4;
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
h /= 6;
|
|
33
|
-
}
|
|
34
|
-
return { h, s, v };
|
|
35
|
-
}
|
|
36
|
-
// based on: https://gist.github.com/mjackson/5311256
|
|
37
|
-
static hsvToRgb(hsv) {
|
|
38
|
-
if (!hsv) {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
hsv.h = this.limitToOne(hsv.h);
|
|
42
|
-
hsv.s = this.limitToOne(hsv.s);
|
|
43
|
-
hsv.v = this.limitToOne(hsv.v);
|
|
44
|
-
let r;
|
|
45
|
-
let g;
|
|
46
|
-
let b;
|
|
47
|
-
const i = Math.floor(hsv.h * 6);
|
|
48
|
-
const f = hsv.h * 6 - i;
|
|
49
|
-
const p = hsv.v * (1 - hsv.s);
|
|
50
|
-
const q = hsv.v * (1 - f * hsv.s);
|
|
51
|
-
const t = hsv.v * (1 - (1 - f) * hsv.s);
|
|
52
|
-
switch (i % 6) {
|
|
53
|
-
case 0:
|
|
54
|
-
r = hsv.v;
|
|
55
|
-
g = t;
|
|
56
|
-
b = p;
|
|
57
|
-
break;
|
|
58
|
-
case 1:
|
|
59
|
-
r = q;
|
|
60
|
-
g = hsv.v;
|
|
61
|
-
b = p;
|
|
62
|
-
break;
|
|
63
|
-
case 2:
|
|
64
|
-
r = p;
|
|
65
|
-
g = hsv.v;
|
|
66
|
-
b = t;
|
|
67
|
-
break;
|
|
68
|
-
case 3:
|
|
69
|
-
r = p;
|
|
70
|
-
g = q;
|
|
71
|
-
b = hsv.v;
|
|
72
|
-
break;
|
|
73
|
-
case 4:
|
|
74
|
-
r = t;
|
|
75
|
-
g = p;
|
|
76
|
-
b = hsv.v;
|
|
77
|
-
break;
|
|
78
|
-
case 5:
|
|
79
|
-
r = hsv.v;
|
|
80
|
-
g = p;
|
|
81
|
-
b = q;
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
return {
|
|
85
|
-
r: this.limitToByte(r * 255),
|
|
86
|
-
g: this.limitToByte(g * 255),
|
|
87
|
-
b: this.limitToByte(b * 255)
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
static limitToByte(num) {
|
|
91
|
-
return Math.round(num <= 0 ? 0 : num >= 255 ? 255 : num);
|
|
92
|
-
}
|
|
93
|
-
static limitToOne(num) {
|
|
94
|
-
return num <= 0 ? 0 : num >= 1 ? 1 : num;
|
|
95
|
-
}
|
|
96
|
-
static numberToHex(rgb) {
|
|
97
|
-
let hex = Math.round(rgb).toString(16);
|
|
98
|
-
if (hex.length < 2) {
|
|
99
|
-
hex = '0' + hex;
|
|
100
|
-
}
|
|
101
|
-
return hex.toUpperCase();
|
|
102
|
-
}
|
|
103
|
-
static rgbToHex(rgb) {
|
|
104
|
-
if (!rgb) {
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
|
-
rgb.r = this.limitToByte(rgb.r);
|
|
108
|
-
rgb.g = this.limitToByte(rgb.g);
|
|
109
|
-
rgb.b = this.limitToByte(rgb.b);
|
|
110
|
-
const red = this.numberToHex(rgb.r);
|
|
111
|
-
const green = this.numberToHex(rgb.g);
|
|
112
|
-
const blue = this.numberToHex(rgb.b);
|
|
113
|
-
return '#' + red + green + blue;
|
|
114
|
-
}
|
|
115
|
-
static hexToRgb(hexString) {
|
|
116
|
-
const numbersOnly = hexString.substring(1);
|
|
117
|
-
const aRgbHex = numbersOnly.match(/.{1,2}/g);
|
|
118
|
-
return { r: parseInt(aRgbHex[0], 16), g: parseInt(aRgbHex[1], 16), b: parseInt(aRgbHex[2], 16) };
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=color-helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"color-helper.js","sourceRoot":"","sources":["../../../../../../../libs/angular/src/lib/forms/color-picker/color-helper.ts"],"names":[],"mappings":"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","sourcesContent":["export abstract class ColorHelper {\n // based on: https://gist.github.com/mjackson/5311256\n public static rgbToHsv(rgb: Record<'r' | 'g' | 'b', number>): Record<'h' | 's' | 'v', number> {\n if (!rgb) {\n return undefined;\n }\n\n const r = this.limitToByte(rgb.r) / 255;\n const g = this.limitToByte(rgb.g) / 255;\n const b = this.limitToByte(rgb.b) / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n\n let h = max;\n let s = max;\n const v = max;\n\n const d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return { h, s, v };\n }\n\n // based on: https://gist.github.com/mjackson/5311256\n public static hsvToRgb(hsv: Record<'h' | 's' | 'v', number>): Record<'r' | 'g' | 'b', number> {\n if (!hsv) {\n return undefined;\n }\n\n hsv.h = this.limitToOne(hsv.h);\n hsv.s = this.limitToOne(hsv.s);\n hsv.v = this.limitToOne(hsv.v);\n\n let r: number;\n let g: number;\n let b: number;\n\n const i = Math.floor(hsv.h * 6);\n const f = hsv.h * 6 - i;\n const p = hsv.v * (1 - hsv.s);\n const q = hsv.v * (1 - f * hsv.s);\n const t = hsv.v * (1 - (1 - f) * hsv.s);\n\n switch (i % 6) {\n case 0:\n r = hsv.v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = hsv.v;\n b = p;\n break;\n case 2:\n r = p;\n g = hsv.v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = hsv.v;\n break;\n case 4:\n r = t;\n g = p;\n b = hsv.v;\n break;\n case 5:\n r = hsv.v;\n g = p;\n b = q;\n break;\n }\n\n return {\n r: this.limitToByte(r * 255),\n g: this.limitToByte(g * 255),\n b: this.limitToByte(b * 255)\n };\n }\n\n private static limitToByte(num) {\n return Math.round(num <= 0 ? 0 : num >= 255 ? 255 : num);\n }\n\n private static limitToOne(num) {\n return num <= 0 ? 0 : num >= 1 ? 1 : num;\n }\n\n private static numberToHex(rgb: number): string {\n let hex = Math.round(rgb).toString(16);\n if (hex.length < 2) {\n hex = '0' + hex;\n }\n return hex.toUpperCase();\n }\n\n public static rgbToHex(rgb: Record<'r' | 'g' | 'b', number>) {\n if (!rgb) {\n return undefined;\n }\n\n rgb.r = this.limitToByte(rgb.r);\n rgb.g = this.limitToByte(rgb.g);\n rgb.b = this.limitToByte(rgb.b);\n\n const red = this.numberToHex(rgb.r);\n const green = this.numberToHex(rgb.g);\n const blue = this.numberToHex(rgb.b);\n return '#' + red + green + blue;\n }\n\n public static hexToRgb(hexString: string): Record<'r' | 'g' | 'b', number> {\n const numbersOnly = hexString.substring(1);\n const aRgbHex = numbersOnly.match(/.{1,2}/g);\n return { r: parseInt(aRgbHex[0], 16), g: parseInt(aRgbHex[1], 16), b: parseInt(aRgbHex[2], 16) };\n }\n}\n"]}
|