@ngbase/adk 0.1.17 → 0.1.18
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/fesm2022/ngbase-adk-a11y.mjs +42 -42
- package/fesm2022/ngbase-adk-a11y.mjs.map +1 -1
- package/fesm2022/ngbase-adk-accordion.mjs +20 -26
- package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
- package/fesm2022/ngbase-adk-autocomplete.mjs +11 -11
- package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
- package/fesm2022/ngbase-adk-avatar.mjs +13 -13
- package/fesm2022/ngbase-adk-avatar.mjs.map +1 -1
- package/fesm2022/ngbase-adk-bidi.mjs +3 -3
- package/fesm2022/ngbase-adk-bidi.mjs.map +1 -1
- package/fesm2022/ngbase-adk-breadcrumb.mjs +14 -14
- package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngbase-adk-cache.mjs +3 -3
- package/fesm2022/ngbase-adk-cache.mjs.map +1 -1
- package/fesm2022/ngbase-adk-carousel.mjs +18 -18
- package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
- package/fesm2022/ngbase-adk-checkbox.mjs +15 -21
- package/fesm2022/ngbase-adk-checkbox.mjs.map +1 -1
- package/fesm2022/ngbase-adk-chip.mjs +12 -12
- package/fesm2022/ngbase-adk-chip.mjs.map +1 -1
- package/fesm2022/ngbase-adk-clipboard.mjs +7 -5
- package/fesm2022/ngbase-adk-clipboard.mjs.map +1 -1
- package/fesm2022/ngbase-adk-collections.mjs.map +1 -1
- package/fesm2022/ngbase-adk-color-picker.mjs +44 -53
- package/fesm2022/ngbase-adk-color-picker.mjs.map +1 -1
- package/fesm2022/ngbase-adk-cookies.mjs +3 -3
- package/fesm2022/ngbase-adk-cookies.mjs.map +1 -1
- package/fesm2022/ngbase-adk-datepicker.mjs +70 -89
- package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
- package/fesm2022/ngbase-adk-dialog.mjs +17 -39
- package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
- package/fesm2022/ngbase-adk-drag.mjs +20 -20
- package/fesm2022/ngbase-adk-drag.mjs.map +1 -1
- package/fesm2022/ngbase-adk-form-field.mjs +65 -118
- package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
- package/fesm2022/ngbase-adk-hover-card.mjs +5 -5
- package/fesm2022/ngbase-adk-hover-card.mjs.map +1 -1
- package/fesm2022/ngbase-adk-icon.mjs +9 -11
- package/fesm2022/ngbase-adk-icon.mjs.map +1 -1
- package/fesm2022/ngbase-adk-inline-edit.mjs +27 -35
- package/fesm2022/ngbase-adk-inline-edit.mjs.map +1 -1
- package/fesm2022/ngbase-adk-jwt.mjs +6 -6
- package/fesm2022/ngbase-adk-jwt.mjs.map +1 -1
- package/fesm2022/ngbase-adk-keys.mjs +6 -6
- package/fesm2022/ngbase-adk-keys.mjs.map +1 -1
- package/fesm2022/ngbase-adk-layout.mjs.map +1 -1
- package/fesm2022/ngbase-adk-list.mjs +10 -10
- package/fesm2022/ngbase-adk-list.mjs.map +1 -1
- package/fesm2022/ngbase-adk-mask.mjs +8 -8
- package/fesm2022/ngbase-adk-mask.mjs.map +1 -1
- package/fesm2022/ngbase-adk-menu.mjs +69 -79
- package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
- package/fesm2022/ngbase-adk-network.mjs +3 -3
- package/fesm2022/ngbase-adk-network.mjs.map +1 -1
- package/fesm2022/ngbase-adk-otp.mjs +24 -45
- package/fesm2022/ngbase-adk-otp.mjs.map +1 -1
- package/fesm2022/ngbase-adk-pagination.mjs +9 -9
- package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
- package/fesm2022/ngbase-adk-popover.mjs +120 -89
- package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
- package/fesm2022/ngbase-adk-portal.mjs +134 -47
- package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
- package/fesm2022/ngbase-adk-progress.mjs +7 -7
- package/fesm2022/ngbase-adk-progress.mjs.map +1 -1
- package/fesm2022/ngbase-adk-radio.mjs +20 -27
- package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
- package/fesm2022/ngbase-adk-resizable.mjs +138 -48
- package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
- package/fesm2022/ngbase-adk-scroll-area.mjs +28 -20
- package/fesm2022/ngbase-adk-scroll-area.mjs.map +1 -1
- package/fesm2022/ngbase-adk-select.mjs +58 -80
- package/fesm2022/ngbase-adk-select.mjs.map +1 -1
- package/fesm2022/ngbase-adk-selectable.mjs +19 -30
- package/fesm2022/ngbase-adk-selectable.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sheet.mjs +6 -20
- package/fesm2022/ngbase-adk-sheet.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sidenav.mjs +65 -48
- package/fesm2022/ngbase-adk-sidenav.mjs.map +1 -1
- package/fesm2022/ngbase-adk-slider.mjs +40 -53
- package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sonner.mjs +12 -19
- package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
- package/fesm2022/ngbase-adk-stepper.mjs +17 -25
- package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
- package/fesm2022/ngbase-adk-switch.mjs +25 -32
- package/fesm2022/ngbase-adk-switch.mjs.map +1 -1
- package/fesm2022/ngbase-adk-table.mjs +581 -83
- package/fesm2022/ngbase-adk-table.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tabs.mjs +37 -35
- package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
- package/fesm2022/ngbase-adk-test.mjs.map +1 -1
- package/fesm2022/ngbase-adk-toggle-group.mjs +20 -34
- package/fesm2022/ngbase-adk-toggle-group.mjs.map +1 -1
- package/fesm2022/ngbase-adk-toggle.mjs +14 -19
- package/fesm2022/ngbase-adk-toggle.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tooltip.mjs +12 -19
- package/fesm2022/ngbase-adk-tooltip.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tour.mjs +52 -52
- package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
- package/fesm2022/ngbase-adk-translate.mjs +8 -10
- package/fesm2022/ngbase-adk-translate.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tree.mjs +20 -20
- package/fesm2022/ngbase-adk-tree.mjs.map +1 -1
- package/fesm2022/ngbase-adk-utils.mjs +30 -43
- package/fesm2022/ngbase-adk-utils.mjs.map +1 -1
- package/fesm2022/ngbase-adk-virtualizer.mjs +9 -9
- package/fesm2022/ngbase-adk-virtualizer.mjs.map +1 -1
- package/package.json +101 -101
- package/schematics/components/files/accordion/accordion.ts.template +8 -5
- package/schematics/components/files/audio/AudioPlayer.ts.template +245 -0
- package/schematics/components/files/audio/AudioRecorder.ts.template +377 -0
- package/schematics/components/files/audio/AudioVisualizer.ts.template +175 -0
- package/schematics/components/files/audio/index.ts.template +3 -0
- package/schematics/components/files/charts/area-chart.component.ts.template +278 -0
- package/schematics/components/files/charts/bar-chart.component.ts.template +262 -0
- package/schematics/components/files/charts/chart-tooltip.component.ts.template +168 -0
- package/schematics/components/files/charts/index.ts.template +4 -0
- package/schematics/components/files/charts/line-chart.component.ts.template +238 -0
- package/schematics/components/files/charts/pie-chart.component.ts.template +283 -0
- package/schematics/components/files/checkbox/checkbox.ts.template +2 -2
- package/schematics/components/files/color-picker/color-picker.ts.template +2 -2
- package/schematics/components/files/dialog/dialog.ts.template +18 -14
- package/schematics/components/files/drawer/drawer.ts.template +30 -27
- package/schematics/components/files/form-field/form-field.ts.template +49 -21
- package/schematics/components/files/pagination/pagination.ts.template +4 -4
- package/schematics/components/files/picasa/picasa-base.component.ts.template +15 -30
- package/schematics/components/files/popover/popover.ts.template +15 -4
- package/schematics/components/files/select/list-selection.ts.template +0 -2
- package/schematics/components/files/select/option.ts.template +1 -1
- package/schematics/components/files/selectable/selectable.ts.template +2 -2
- package/schematics/components/files/sheet/sheet.ts.template +26 -14
- package/schematics/components/files/sidenav/sidenav.ts.template +7 -5
- package/schematics/components/files/sonner/sonner.ts.template +1 -2
- package/schematics/components/files/stepper/stepper.ts.template +2 -4
- package/schematics/components/files/switch/switch.ts.template +2 -2
- package/schematics/components/files/table/table.ts.template +43 -3
- package/schematics/components/files/theme/theme.service.ts.template +3 -3
- package/schematics/components/files/toggle/toggle.ts.template +1 -1
- package/schematics/components/files/toggle-group/toggle-group.ts.template +1 -1
- package/schematics/components/files/tooltip/tooltip.ts.template +2 -3
- package/{accordion/index.d.ts → types/ngbase-adk-accordion.d.ts} +1 -3
- package/{autocomplete/index.d.ts → types/ngbase-adk-autocomplete.d.ts} +2 -7
- package/{checkbox/index.d.ts → types/ngbase-adk-checkbox.d.ts} +8 -14
- package/types/ngbase-adk-clipboard.d.ts +12 -0
- package/{color-picker/index.d.ts → types/ngbase-adk-color-picker.d.ts} +14 -26
- package/{datepicker/index.d.ts → types/ngbase-adk-datepicker.d.ts} +9 -18
- package/{dialog/index.d.ts → types/ngbase-adk-dialog.d.ts} +3 -8
- package/types/ngbase-adk-form-field.d.ts +88 -0
- package/{inline-edit/index.d.ts → types/ngbase-adk-inline-edit.d.ts} +8 -16
- package/{menu/index.d.ts → types/ngbase-adk-menu.d.ts} +6 -5
- package/{otp/index.d.ts → types/ngbase-adk-otp.d.ts} +8 -16
- package/{popover/index.d.ts → types/ngbase-adk-popover.d.ts} +14 -2
- package/{portal/index.d.ts → types/ngbase-adk-portal.d.ts} +29 -8
- package/{radio/index.d.ts → types/ngbase-adk-radio.d.ts} +9 -12
- package/{resizable/index.d.ts → types/ngbase-adk-resizable.d.ts} +4 -4
- package/{scroll-area/index.d.ts → types/ngbase-adk-scroll-area.d.ts} +2 -1
- package/{select/index.d.ts → types/ngbase-adk-select.d.ts} +8 -22
- package/{selectable/index.d.ts → types/ngbase-adk-selectable.d.ts} +6 -10
- package/{sheet/index.d.ts → types/ngbase-adk-sheet.d.ts} +4 -3
- package/{sidenav/index.d.ts → types/ngbase-adk-sidenav.d.ts} +7 -8
- package/{slider/index.d.ts → types/ngbase-adk-slider.d.ts} +8 -17
- package/{sonner/index.d.ts → types/ngbase-adk-sonner.d.ts} +1 -3
- package/{stepper/index.d.ts → types/ngbase-adk-stepper.d.ts} +1 -4
- package/{switch/index.d.ts → types/ngbase-adk-switch.d.ts} +7 -14
- package/{table/index.d.ts → types/ngbase-adk-table.d.ts} +126 -3
- package/{test/index.d.ts → types/ngbase-adk-test.d.ts} +1 -1
- package/{toggle-group/index.d.ts → types/ngbase-adk-toggle-group.d.ts} +5 -10
- package/types/ngbase-adk-toggle.d.ts +14 -0
- package/{tooltip/index.d.ts → types/ngbase-adk-tooltip.d.ts} +9 -11
- package/{tour/index.d.ts → types/ngbase-adk-tour.d.ts} +4 -6
- package/{utils/index.d.ts → types/ngbase-adk-utils.d.ts} +15 -11
- package/clipboard/index.d.ts +0 -11
- package/form-field/index.d.ts +0 -97
- package/toggle/index.d.ts +0 -16
- /package/{a11y/index.d.ts → types/ngbase-adk-a11y.d.ts} +0 -0
- /package/{avatar/index.d.ts → types/ngbase-adk-avatar.d.ts} +0 -0
- /package/{bidi/index.d.ts → types/ngbase-adk-bidi.d.ts} +0 -0
- /package/{breadcrumb/index.d.ts → types/ngbase-adk-breadcrumb.d.ts} +0 -0
- /package/{cache/index.d.ts → types/ngbase-adk-cache.d.ts} +0 -0
- /package/{carousel/index.d.ts → types/ngbase-adk-carousel.d.ts} +0 -0
- /package/{chip/index.d.ts → types/ngbase-adk-chip.d.ts} +0 -0
- /package/{collections/index.d.ts → types/ngbase-adk-collections.d.ts} +0 -0
- /package/{cookies/index.d.ts → types/ngbase-adk-cookies.d.ts} +0 -0
- /package/{drag/index.d.ts → types/ngbase-adk-drag.d.ts} +0 -0
- /package/{hover-card/index.d.ts → types/ngbase-adk-hover-card.d.ts} +0 -0
- /package/{icon/index.d.ts → types/ngbase-adk-icon.d.ts} +0 -0
- /package/{jwt/index.d.ts → types/ngbase-adk-jwt.d.ts} +0 -0
- /package/{keys/index.d.ts → types/ngbase-adk-keys.d.ts} +0 -0
- /package/{layout/index.d.ts → types/ngbase-adk-layout.d.ts} +0 -0
- /package/{list/index.d.ts → types/ngbase-adk-list.d.ts} +0 -0
- /package/{mask/index.d.ts → types/ngbase-adk-mask.d.ts} +0 -0
- /package/{network/index.d.ts → types/ngbase-adk-network.d.ts} +0 -0
- /package/{pagination/index.d.ts → types/ngbase-adk-pagination.d.ts} +0 -0
- /package/{progress/index.d.ts → types/ngbase-adk-progress.d.ts} +0 -0
- /package/{tabs/index.d.ts → types/ngbase-adk-tabs.d.ts} +0 -0
- /package/{translate/index.d.ts → types/ngbase-adk-translate.d.ts} +0 -0
- /package/{tree/index.d.ts → types/ngbase-adk-tree.d.ts} +0 -0
- /package/{virtualizer/index.d.ts → types/ngbase-adk-virtualizer.d.ts} +0 -0
- /package/{index.d.ts → types/ngbase-adk.d.ts} +0 -0
|
@@ -4,7 +4,6 @@ import * as i1 from '@ngbase/adk/drag';
|
|
|
4
4
|
import { Drag } from '@ngbase/adk/drag';
|
|
5
5
|
import { DialogRef } from '@ngbase/adk/portal';
|
|
6
6
|
import { ngbPopoverPortal } from '@ngbase/adk/popover';
|
|
7
|
-
import { provideValueAccessor } from '@ngbase/adk/utils';
|
|
8
7
|
|
|
9
8
|
const MAX_RGB = 255;
|
|
10
9
|
const MAX_HUE = 360;
|
|
@@ -211,10 +210,10 @@ function roundTo2Decimals(num) {
|
|
|
211
210
|
}
|
|
212
211
|
|
|
213
212
|
class ColorSpectrum {
|
|
214
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
215
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
213
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSpectrum, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
214
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorSpectrum, isStandalone: true, selector: "[ngbColorSpectrum]", host: { styleAttribute: "background-image: linear-gradient(0deg, rgb(0, 0, 0), transparent), linear-gradient(90deg, rgb(255, 255, 255), rgba(255, 255, 255, 0)); background-color: var(--hue-color);" }, hostDirectives: [{ directive: i1.Drag }], ngImport: i0 }); }
|
|
216
215
|
}
|
|
217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
216
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSpectrum, decorators: [{
|
|
218
217
|
type: Directive,
|
|
219
218
|
args: [{
|
|
220
219
|
selector: '[ngbColorSpectrum]',
|
|
@@ -225,10 +224,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
225
224
|
}]
|
|
226
225
|
}] });
|
|
227
226
|
class ColorSpectrumSelector {
|
|
228
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
229
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
227
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSpectrumSelector, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
228
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorSpectrumSelector, isStandalone: true, selector: "[ngbColorSpectrumSelector]", host: { attributes: { "type": "button" } }, ngImport: i0 }); }
|
|
230
229
|
}
|
|
231
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSpectrumSelector, decorators: [{
|
|
232
231
|
type: Directive,
|
|
233
232
|
args: [{
|
|
234
233
|
selector: '[ngbColorSpectrumSelector]',
|
|
@@ -238,18 +237,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
238
237
|
}]
|
|
239
238
|
}] });
|
|
240
239
|
class ColorSelected {
|
|
241
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
242
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
240
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSelected, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
241
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorSelected, isStandalone: true, selector: "[ngbColorSelected]", ngImport: i0 }); }
|
|
243
242
|
}
|
|
244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSelected, decorators: [{
|
|
245
244
|
type: Directive,
|
|
246
245
|
args: [{ selector: '[ngbColorSelected]' }]
|
|
247
246
|
}] });
|
|
248
247
|
class ColorHue {
|
|
249
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
250
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
248
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorHue, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
249
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorHue, isStandalone: true, selector: "[ngbColorHue]", host: { styleAttribute: "inset: 0px; background: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0));" }, hostDirectives: [{ directive: i1.Drag }], ngImport: i0 }); }
|
|
251
250
|
}
|
|
252
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorHue, decorators: [{
|
|
253
252
|
type: Directive,
|
|
254
253
|
args: [{
|
|
255
254
|
selector: '[ngbColorHue]',
|
|
@@ -260,10 +259,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
260
259
|
}]
|
|
261
260
|
}] });
|
|
262
261
|
class ColorHueThumb {
|
|
263
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
264
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
262
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorHueThumb, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
263
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorHueThumb, isStandalone: true, selector: "[ngbColorHueThumb]", host: { attributes: { "type": "button" } }, ngImport: i0 }); }
|
|
265
264
|
}
|
|
266
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorHueThumb, decorators: [{
|
|
267
266
|
type: Directive,
|
|
268
267
|
args: [{
|
|
269
268
|
selector: '[ngbColorHueThumb]',
|
|
@@ -273,14 +272,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
273
272
|
}]
|
|
274
273
|
}] });
|
|
275
274
|
class ColorAlpha {
|
|
276
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
277
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
275
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorAlpha, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
276
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: ColorAlpha, isStandalone: true, selector: "[ngbColorAlpha]", host: { styleAttribute: "\n background-image: conic-gradient(\n rgba(0, 0, 0, 0.06) 0 25%,\n transparent 0 50%,\n rgba(0, 0, 0, 0.06) 0 75%,\n transparent 0\n );\n background-size: 8px 8px;\n " }, hostDirectives: [{ directive: i1.Drag }], ngImport: i0, template: ` <div
|
|
278
277
|
style="height: 100%; inset: 0px; background: linear-gradient(to right, rgba(255, 0, 4, 0), var(--hue-color));"
|
|
279
278
|
>
|
|
280
279
|
<ng-content />
|
|
281
280
|
</div>`, isInline: true }); }
|
|
282
281
|
}
|
|
283
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
282
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorAlpha, decorators: [{
|
|
284
283
|
type: Component,
|
|
285
284
|
args: [{
|
|
286
285
|
selector: '[ngbColorAlpha]',
|
|
@@ -304,10 +303,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
304
303
|
}]
|
|
305
304
|
}] });
|
|
306
305
|
class ColorAlphaThumb {
|
|
307
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
308
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorAlphaThumb, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
307
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorAlphaThumb, isStandalone: true, selector: "[ngbColorAlphaThumb]", host: { attributes: { "type": "button" } }, ngImport: i0 }); }
|
|
309
308
|
}
|
|
310
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorAlphaThumb, decorators: [{
|
|
311
310
|
type: Directive,
|
|
312
311
|
args: [{
|
|
313
312
|
selector: '[ngbColorAlphaThumb]',
|
|
@@ -470,10 +469,10 @@ class NgbColorPicker {
|
|
|
470
469
|
};
|
|
471
470
|
return formatters[this.format()]?.() || '';
|
|
472
471
|
}
|
|
473
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
474
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
472
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbColorPicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
473
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.0", type: NgbColorPicker, isStandalone: true, selector: "ngb-color-picker-container", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, presetColors: { classPropertyName: "presetColors", publicName: "presetColors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { styleAttribute: "\n --hue-color: rgb(255, 0, 0);\n --spectrum-color: rgb(0, 0, 0);\n " }, viewQueries: [{ propertyName: "hueDiv", first: true, predicate: ColorHue, descendants: true, read: Drag, isSignal: true }, { propertyName: "hueSelector", first: true, predicate: ColorHueThumb, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "spectrumDiv", first: true, predicate: ColorSpectrum, descendants: true, read: Drag, isSignal: true }, { propertyName: "spectrumSelector", first: true, predicate: ColorSpectrumSelector, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "selectedColor", first: true, predicate: ColorSelected, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "alphaDiv", first: true, predicate: ColorAlpha, descendants: true, read: Drag, isSignal: true }, { propertyName: "alphaSelector", first: true, predicate: ColorAlphaThumb, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }
|
|
475
474
|
}
|
|
476
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
475
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbColorPicker, decorators: [{
|
|
477
476
|
type: Directive,
|
|
478
477
|
args: [{
|
|
479
478
|
selector: 'ngb-color-picker-container',
|
|
@@ -484,12 +483,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
484
483
|
`,
|
|
485
484
|
},
|
|
486
485
|
}]
|
|
487
|
-
}], ctorParameters: () => [] })
|
|
486
|
+
}], ctorParameters: () => [], propDecorators: { hueDiv: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorHue), { ...{ read: Drag }, isSignal: true }] }], hueSelector: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorHueThumb), { ...{ read: ElementRef }, isSignal: true }] }], spectrumDiv: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorSpectrum), { ...{
|
|
487
|
+
read: Drag,
|
|
488
|
+
}, isSignal: true }] }], spectrumSelector: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorSpectrumSelector), { ...{ read: ElementRef }, isSignal: true }] }], selectedColor: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorSelected), { ...{ read: ElementRef }, isSignal: true }] }], alphaDiv: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorAlpha), { ...{ read: Drag }, isSignal: true }] }], alphaSelector: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorAlphaThumb), { ...{ read: ElementRef }, isSignal: true }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], presetColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "presetColors", required: false }] }] } });
|
|
488
489
|
|
|
489
490
|
const ColorPicker = new InjectionToken('ColorPicker');
|
|
490
|
-
const registerColorPicker = (
|
|
491
|
+
const registerColorPicker = (picker) => [
|
|
491
492
|
{ provide: ColorPicker, useValue: picker },
|
|
492
|
-
provideValueAccessor(accessor),
|
|
493
493
|
];
|
|
494
494
|
class ColorPickerTrigger {
|
|
495
495
|
constructor() {
|
|
@@ -520,12 +520,12 @@ class ColorPickerTrigger {
|
|
|
520
520
|
});
|
|
521
521
|
});
|
|
522
522
|
}
|
|
523
|
-
}, ...(ngDevMode ?
|
|
523
|
+
}, { ...(ngDevMode ? { debugName: "effectRef" } : {}), injector: this.injector });
|
|
524
524
|
}
|
|
525
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
526
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
525
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorPickerTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
526
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: ColorPickerTrigger, isStandalone: true, selector: "[ngbColorPickerTrigger]", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, presetColors: { classPropertyName: "presetColors", publicName: "presetColors", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "click": "open()" } }, ngImport: i0 }); }
|
|
527
527
|
}
|
|
528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
528
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorPickerTrigger, decorators: [{
|
|
529
529
|
type: Directive,
|
|
530
530
|
args: [{
|
|
531
531
|
selector: '[ngbColorPickerTrigger]',
|
|
@@ -533,40 +533,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
533
533
|
'(click)': 'open()',
|
|
534
534
|
},
|
|
535
535
|
}]
|
|
536
|
-
}] });
|
|
536
|
+
}], propDecorators: { format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], presetColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "presetColors", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
|
|
537
537
|
|
|
538
538
|
class NgbColorInput {
|
|
539
539
|
constructor() {
|
|
540
540
|
this.format = input('hex', ...(ngDevMode ? [{ debugName: "format" }] : []));
|
|
541
541
|
this.presetColors = input(...(ngDevMode ? [undefined, { debugName: "presetColors" }] : []));
|
|
542
542
|
this.value = model('', ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
543
|
-
this.
|
|
544
|
-
this.
|
|
545
|
-
}
|
|
546
|
-
updateValue(value = '') {
|
|
547
|
-
this.value.set(value);
|
|
548
|
-
this.onChange(value);
|
|
549
|
-
this.onTouched();
|
|
550
|
-
}
|
|
551
|
-
writeValue(value) {
|
|
552
|
-
this.value.set(value);
|
|
543
|
+
this.touched = model(false, ...(ngDevMode ? [{ debugName: "touched" }] : []));
|
|
544
|
+
this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
553
545
|
}
|
|
554
|
-
|
|
555
|
-
this.
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
this.
|
|
546
|
+
updateValue(val = '') {
|
|
547
|
+
if (this.disabled())
|
|
548
|
+
return;
|
|
549
|
+
this.value.set(val);
|
|
550
|
+
this.touched.set(true);
|
|
559
551
|
}
|
|
560
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
561
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
552
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbColorInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
553
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbColorInput, isStandalone: true, selector: "[ngbColorInput]", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, presetColors: { classPropertyName: "presetColors", publicName: "presetColors", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, ngImport: i0 }); }
|
|
562
554
|
}
|
|
563
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbColorInput, decorators: [{
|
|
564
556
|
type: Directive,
|
|
565
557
|
args: [{
|
|
566
558
|
selector: '[ngbColorInput]',
|
|
567
|
-
providers: [provideValueAccessor(NgbColorInput)],
|
|
568
559
|
}]
|
|
569
|
-
}] });
|
|
560
|
+
}], propDecorators: { format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], presetColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "presetColors", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
570
561
|
|
|
571
562
|
/*
|
|
572
563
|
* Public API Surface of color-picker
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-color-picker.mjs","sources":["../../../projects/adk/color-picker/utils.ts","../../../projects/adk/color-picker/color-picker.ts","../../../projects/adk/color-picker/color-picker-trigger.ts","../../../projects/adk/color-picker/color-input.ts","../../../projects/adk/color-picker/public-api.ts","../../../projects/adk/color-picker/ngbase-adk-color-picker.ts"],"sourcesContent":["const MAX_RGB = 255;\nconst MAX_HUE = 360;\nconst MAX_PERCENTAGE = 100;\n\nexport function hexToRgb(hex: string): [number, number, number, number] {\n // Remove the hash at the start if it's there\n hex = hex.replace(/^#/, '');\n\n // Check for valid hex formats\n if (!/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(hex)) {\n throw new Error('Invalid hex color format');\n }\n\n let r: number,\n g: number,\n b: number,\n a: number = 1;\n\n if (hex.length === 3 || hex.length === 4) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n if (hex.length === 4) {\n a = parseInt(hex[3] + hex[3], 16) / 255;\n }\n } else if (hex.length === 6 || hex.length === 8) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n if (hex.length === 8) {\n a = parseInt(hex.slice(6, 8), 16) / 255;\n }\n } else {\n throw new Error('Invalid hex color format');\n }\n\n return [r, g, b, roundTo2Decimals(a)];\n}\n\nexport function rgbaToHsb(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n): { h: number; s: number; b: number; a: number } {\n validateRgba(r, g, b, a);\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max;\n\n if (max !== min) {\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 h /= 6;\n }\n\n return {\n h: roundNum(h * 360),\n s: roundNum(s * 100),\n b: roundNum(v * 100),\n a: roundTo2Decimals(a),\n };\n}\n\nexport function hexToHsb(hex: string): [number, number, number, number] {\n const [r, g, b, a] = hexToRgb(hex);\n const { h, s, b: brightness, a: alpha } = rgbaToHsb(r, g, b, a);\n return [roundNum(h), roundNum(s), roundNum(brightness), roundTo2Decimals(alpha)];\n}\n\nexport function rgbToHsl(r: number, g: number, b: number): { h: number; s: number; l: number } {\n validateRgb(r, g, b);\n\n r /= MAX_RGB;\n g /= MAX_RGB;\n b /= MAX_RGB;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n const d = max - min;\n\n if (d) {\n s = d / (1 - Math.abs(2 * l - 1));\n switch (max) {\n case r:\n h = ((g - b) / d + (g < b ? 6 : 0)) / 6;\n break;\n case g:\n h = ((b - r) / d + 2) / 6;\n break;\n case b:\n h = ((r - g) / d + 4) / 6;\n break;\n }\n }\n\n return {\n h: roundNum(h * MAX_HUE),\n s: roundNum(s * MAX_PERCENTAGE),\n l: roundNum(l * MAX_PERCENTAGE),\n };\n}\n\nexport function parseRgba(rgba: string): [number, number, number, number] {\n const matches = rgba.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n if (!matches) {\n throw new Error('Invalid RGBA string format');\n }\n const [, r, g, b, a] = matches;\n return [parseInt(r, 10), parseInt(g, 10), parseInt(b, 10), a ? parseFloat(a) : 1];\n}\n\nexport function parseHsba(hsb: string): [number, number, number, number] {\n const matches = hsb.match(/^hsba?\\((\\d+),\\s*(\\d+)%,\\s*(\\d+)%(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n if (!matches) {\n throw new Error('Invalid HSBA string format');\n }\n const [, h, s, b, a] = matches;\n return [parseInt(h, 10), parseInt(s, 10), parseInt(b, 10), a ? parseFloat(a) : 1];\n}\n\nexport function hsbToHsl(h: number, s: number, b: number): [number, number, number] {\n validateHsb(h, s, b);\n\n s /= MAX_PERCENTAGE;\n b /= MAX_PERCENTAGE;\n\n const l = b * (1 - s / 2);\n const saturation = l === 0 || l === 1 ? 0 : (b - l) / Math.min(l, 1 - l);\n\n return [roundNum(h), roundNum(saturation * MAX_PERCENTAGE), roundNum(l * MAX_PERCENTAGE)];\n}\n\nexport function hslaToHsba(\n h: number,\n s: number,\n l: number,\n a: number = 1,\n): [number, number, number, number] {\n validateHsl(h, s, l);\n validateAlpha(a);\n\n s /= MAX_PERCENTAGE;\n l /= MAX_PERCENTAGE;\n\n const brightness = l + s * Math.min(l, 1 - l);\n const saturation = brightness === 0 ? 0 : 2 * (1 - l / brightness);\n\n return [\n roundNum(h),\n roundNum(saturation * MAX_PERCENTAGE),\n roundNum(brightness * MAX_PERCENTAGE),\n roundTo2Decimals(a),\n ];\n}\n\nexport function hsbaToRgba(\n h: number,\n s: number,\n b: number,\n a: number = 1,\n): [number, number, number, number] {\n validateHsb(h, s, b);\n validateAlpha(a);\n\n s /= MAX_PERCENTAGE;\n b /= MAX_PERCENTAGE;\n\n const k = (n: number) => (n + h / 60) % 6;\n const f = (n: number) => b * (1 - s * Math.max(0, Math.min(k(n), 4 - k(n), 1)));\n\n return [\n roundNum(f(5) * MAX_RGB),\n roundNum(f(3) * MAX_RGB),\n roundNum(f(1) * MAX_RGB),\n roundTo2Decimals(a),\n ];\n}\n\nexport function rgbToHsba(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n): [number, number, number, number] {\n const { h, s, b: br, a: alpha } = rgbaToHsb(r, g, b, a);\n return [h, s, br, alpha];\n}\n\nexport function hsbaToHex(h: number, s: number, b: number, a: number = 1): string {\n const [r, g, b_, a_] = hsbaToRgba(h, s, b, a);\n return rgbToHex(r, g, b_, a_);\n}\n\nexport function rgbToHex(r: number, g: number, b: number, a: number = 1): string {\n validateRgb(r, g, b);\n validateAlpha(a);\n\n let rgba = [r, g, b];\n if (a < 1) {\n rgba.push(Math.round(a * 255));\n }\n\n return (\n '#' +\n rgba\n .map(x => Math.round(x).toString(16).padStart(2, '0'))\n .join('')\n .toUpperCase()\n );\n}\n\nfunction validateRgb(r: number, g: number, b: number): void {\n if (r < 0 || r > MAX_RGB || g < 0 || g > MAX_RGB || b < 0 || b > MAX_RGB) {\n throw new Error('Invalid RGB values');\n }\n}\n\nfunction validateRgba(r: number, g: number, b: number, a: number): void {\n validateRgb(r, g, b);\n validateAlpha(a);\n}\n\nfunction validateHsb(h: number, s: number, b: number): void {\n if (h < 0 || h > MAX_HUE || s < 0 || s > MAX_PERCENTAGE || b < 0 || b > MAX_PERCENTAGE) {\n throw new Error('Invalid HSB values');\n }\n}\n\nfunction validateHsl(h: number, s: number, l: number): void {\n if (h < 0 || h >= MAX_HUE || s < 0 || s > MAX_PERCENTAGE || l < 0 || l > MAX_PERCENTAGE) {\n throw new Error('Invalid HSL values');\n }\n}\n\nfunction validateAlpha(a: number): void {\n if (a < 0 || a > 1) {\n throw new Error('Invalid alpha value');\n }\n}\n\nfunction roundNum(num: number): number {\n return Math.round(num);\n}\n\nfunction roundTo2Decimals(num: number): number {\n return Math.round(num * 100) / 100;\n}\n","import {\n afterNextRender,\n Component,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { Drag } from '@ngbase/adk/drag';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport {\n hexToHsb,\n hsbaToHex,\n hsbaToRgba,\n hsbToHsl,\n hslaToHsba,\n parseHsba,\n parseRgba,\n rgbToHsba,\n} from './utils';\n\nexport type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsb';\n\n@Directive({\n selector: '[ngbColorSpectrum]',\n hostDirectives: [Drag],\n host: {\n style:\n 'background-image: linear-gradient(0deg, rgb(0, 0, 0), transparent), linear-gradient(90deg, rgb(255, 255, 255), rgba(255, 255, 255, 0)); background-color: var(--hue-color);',\n },\n})\nexport class ColorSpectrum {}\n\n@Directive({\n selector: '[ngbColorSpectrumSelector]',\n host: {\n type: 'button',\n },\n})\nexport class ColorSpectrumSelector {}\n\n@Directive({ selector: '[ngbColorSelected]' })\nexport class ColorSelected {}\n\n@Directive({\n selector: '[ngbColorHue]',\n hostDirectives: [Drag],\n host: {\n style:\n 'inset: 0px; background: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0));',\n },\n})\nexport class ColorHue {}\n\n@Directive({\n selector: '[ngbColorHueThumb]',\n host: {\n type: 'button',\n },\n})\nexport class ColorHueThumb {}\n\n@Component({\n selector: '[ngbColorAlpha]',\n hostDirectives: [Drag],\n template: ` <div\n style=\"height: 100%; inset: 0px; background: linear-gradient(to right, rgba(255, 0, 4, 0), var(--hue-color));\"\n >\n <ng-content />\n </div>`,\n host: {\n style: `\n background-image: conic-gradient(\n rgba(0, 0, 0, 0.06) 0 25%,\n transparent 0 50%,\n rgba(0, 0, 0, 0.06) 0 75%,\n transparent 0\n );\n background-size: 8px 8px;\n `,\n },\n})\nexport class ColorAlpha {}\n\n@Directive({\n selector: '[ngbColorAlphaThumb]',\n host: {\n type: 'button',\n },\n})\nexport class ColorAlphaThumb {}\n\n@Directive({\n selector: 'ngb-color-picker-container',\n host: {\n style: `\n --hue-color: rgb(255, 0, 0);\n --spectrum-color: rgb(0, 0, 0);\n `,\n },\n})\nexport class NgbColorPicker {\n private readonly el = inject(ElementRef);\n private readonly dialogRef = inject(DialogRef, { optional: true });\n private readonly hueDiv = viewChild.required<ColorHue, Drag>(ColorHue, { read: Drag });\n private readonly hueSelector = viewChild.required<ColorHueThumb, ElementRef<HTMLButtonElement>>(\n ColorHueThumb,\n { read: ElementRef },\n );\n\n private readonly spectrumDiv = viewChild.required<ColorSpectrum, Drag>(ColorSpectrum, {\n read: Drag,\n });\n private readonly spectrumSelector = viewChild.required<\n ColorSpectrumSelector,\n ElementRef<HTMLButtonElement>\n >(ColorSpectrumSelector, { read: ElementRef });\n\n private readonly selectedColor = viewChild.required<ColorSelected, ElementRef<HTMLDivElement>>(\n ColorSelected,\n { read: ElementRef },\n );\n\n private alpha = 100; // 0-100\n private readonly alphaDiv = viewChild.required<ColorAlpha, Drag>(ColorAlpha, { read: Drag });\n private readonly alphaSelector = viewChild.required<\n ColorAlphaThumb,\n ElementRef<HTMLButtonElement>\n >(ColorAlphaThumb, { read: ElementRef });\n\n readonly valueChange = output<string>();\n readonly format = input<ColorFormat>(this.dialogRef?.data.format || 'hex');\n readonly presetColors = input<string[]>(this.dialogRef?.data.presetColors || []);\n\n private hue = 0;\n private saturation = 0;\n private brightness = 0;\n private lastSpectrumEvent?: MouseEvent;\n private localValue = '';\n\n private colorParsers = new Map<ColorFormat, (value: string) => [number, number, number, number]>([\n ['hsb', parseHsba],\n ['hex', hexToHsb],\n ['rgb', (value: string) => rgbToHsba(...parseRgba(value))],\n ['hsl', (value: string) => hslaToHsba(...parseHsba(value))],\n ]);\n\n constructor() {\n afterNextRender(() => {\n this.setupEventListeners();\n });\n }\n\n private calculateCoordinates(e: MouseEvent, el: ElementRef) {\n const rect = el.nativeElement.getBoundingClientRect();\n\n let x = Math.round(e.clientX - rect.left);\n let y = Math.round(e.clientY - rect.top);\n\n // Constrain x and y within the bounds of the spectrum box\n x = Math.max(0, Math.min(x, rect.width));\n y = Math.max(0, Math.min(y, rect.height));\n return { x, y, rect };\n }\n\n private setupEventListeners() {\n this.setupDragListener(this.hueDiv(), (x, y, w, h) => this.updateHue(x, 0, w, h));\n this.setupDragListener(this.spectrumDiv(), this.updateSpectrum.bind(this));\n this.setupDragListener(this.alphaDiv(), (x, y, w) => this.updateAlpha(x, 0, w));\n }\n\n private setupDragListener(\n dragElement: Drag,\n updateFunction: (x: number, y: number, width: number, height: number) => void,\n ) {\n dragElement.events.subscribe(event => {\n if (event.type === 'start' || event.type === 'move') {\n this.handleColorEvent(event.event! as PointerEvent, dragElement.el, updateFunction);\n // If we want to avoid emitting the value on every move,\n // we can add a flag to emit only when the event is 'end'\n this.valueChange.emit(this.localValue);\n }\n });\n }\n\n private handleColorEvent(\n event: PointerEvent,\n element: ElementRef,\n updateFunction: (x: number, y: number, width: number, height: number) => void,\n ) {\n const { x, y, rect } = this.calculateCoordinates(event, element);\n updateFunction(x, y, rect.width, rect.height);\n this.updateValue();\n }\n\n private updateHue(x: number, y: number, width: number, height: number) {\n this.hue = Math.round((x / width) * 360);\n this.el.nativeElement.style.setProperty('--hue-color', `hsl(${this.hue}, 100%, 50%)`);\n const hueSelector = this.hueSelector()!.nativeElement;\n hueSelector.style.left = `${x}px`;\n if (this.lastSpectrumEvent) this.updateValue();\n }\n\n private updateSpectrum(x: number, y: number, width: number, height: number) {\n const { s, b } = this.calculateSaturationAndLuminous(x, y!, width, height);\n this.saturation = s;\n this.brightness = b;\n this.lastSpectrumEvent = { clientX: x, clientY: y } as PointerEvent;\n const spectrumSelector = this.spectrumSelector()!.nativeElement;\n spectrumSelector.style.left = `${x - spectrumSelector.offsetWidth / 2}px`;\n spectrumSelector.style.top = `${y! - spectrumSelector.offsetHeight / 2}px`;\n }\n\n private updateAlpha(x: number, y: number, width: number) {\n this.alpha = Math.round((x / width) * 100);\n const alphaSelector = this.alphaSelector()!.nativeElement;\n alphaSelector.style.left = `${x}px`;\n }\n\n setValue(value: string, emit = false): void {\n if (!value) return;\n this.parse(value);\n this.updateValue(emit);\n this.el.nativeElement.style.setProperty('--hue-color', this.getColor(this.hue, 100, 100, 100));\n this.updateSelectorPositions();\n }\n\n private updateSelectorPositions() {\n this.updateSelectorPosition(this.hueDiv().el, this.hueSelector(), this.hue / 360);\n this.updateSelectorPosition(this.alphaDiv().el, this.alphaSelector(), this.alpha / 100);\n this.updateSpectrumSelectorPosition();\n }\n\n private updateSelectorPosition(\n containerEl: ElementRef<HTMLElement>,\n selectorEl: ElementRef<HTMLButtonElement>,\n ratio: number,\n ) {\n selectorEl.nativeElement.style.left = ratio * containerEl.nativeElement.clientWidth + 'px';\n }\n\n private updateSpectrumSelectorPosition() {\n const spectrumRect = this.spectrumDiv().el.nativeElement.getBoundingClientRect();\n const spectrumSelector = this.spectrumSelector()!.nativeElement;\n const { x, y } = this.calculateSpectrumPosition(\n this.saturation,\n this.brightness,\n spectrumRect.width,\n spectrumRect.height,\n );\n spectrumSelector.style.left = `${x}px`;\n spectrumSelector.style.top = `${y}px`;\n }\n\n // Simplified function to calculate the x and y based on the saturation and lightness\n private calculateSpectrumPosition(\n s: number,\n l: number,\n spectrumWidth: number,\n spectrumHeight: number,\n ): { x: number; y: number } {\n const handlerSize = 16;\n const half = handlerSize / 2;\n const x = (spectrumWidth * s) / 100 - half;\n const y = (spectrumHeight * (100 - l)) / 100 - half;\n return { x, y };\n }\n\n private calculateSaturationAndLuminous(\n x: number,\n y: number,\n sw: number,\n sh: number,\n ): { s: number; b: number } {\n const s = Math.round((x / sw) * 100);\n const b = Math.round(100 - (y / sh) * 100);\n return { s, b };\n }\n\n private updateValue(emit = false) {\n this.localValue = this.toString();\n const hsla = this.getColor(this.hue, this.saturation, this.brightness, this.alpha);\n this.el.nativeElement.style.setProperty('--spectrum-color', hsla);\n this.selectedColor()!.nativeElement.style.backgroundColor = hsla;\n this.spectrumSelector()!.nativeElement.style.backgroundColor = hsla;\n if (emit) this.valueChange.emit(this.localValue);\n }\n\n private getColor(h: number, s: number, b: number, a: number) {\n const [hh, ss, l] = hsbToHsl(h, s, b);\n return `hsla(${hh}, ${ss}%, ${l}%, ${a / 100})`;\n }\n\n private parse(value: string) {\n const parser = this.colorParsers.get(this.format());\n if (parser) {\n [this.hue, this.saturation, this.brightness, this.alpha] = parser(value);\n this.alpha = Math.round(this.alpha * 100);\n }\n }\n\n private toString() {\n const alpha = this.alpha / 100;\n const formatters = {\n hsb: () => `hsba(${this.hue}, ${this.saturation}%, ${this.brightness}%, ${alpha})`,\n hex: () => hsbaToHex(this.hue, this.saturation, this.brightness, alpha),\n rgb: () => {\n const [r, g, b, a] = hsbaToRgba(this.hue, this.saturation, this.brightness, alpha);\n return a === 1 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n },\n hsl: () => {\n const [h, s, l] = hsbToHsl(this.hue, this.saturation, this.brightness);\n return `hsla(${h}, ${s}%, ${l}%, ${alpha})`;\n },\n };\n return formatters[this.format()]?.() || '';\n }\n}\n","import {\n Directive,\n effect,\n EffectRef,\n ElementRef,\n inject,\n InjectionToken,\n Injector,\n input,\n model,\n untracked,\n} from '@angular/core';\nimport { ngbPopoverPortal } from '@ngbase/adk/popover';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\nimport { NgbColorInput } from './color-input';\nimport { ColorFormat, NgbColorPicker } from './color-picker';\n\nconst ColorPicker = new InjectionToken<typeof NgbColorPicker>('ColorPicker');\n\ninterface ColorPickerOptions {\n picker: typeof NgbColorPicker;\n accessor: typeof NgbColorInput;\n}\n\nexport const registerColorPicker = ({ picker, accessor }: ColorPickerOptions) => [\n { provide: ColorPicker, useValue: picker },\n provideValueAccessor(accessor),\n];\n\n@Directive({\n selector: '[ngbColorPickerTrigger]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class ColorPickerTrigger {\n private el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private colorPicker =\n inject<typeof NgbColorPicker>(ColorPicker, { optional: true }) ?? NgbColorPicker;\n private popover = ngbPopoverPortal();\n private injector = inject(Injector);\n\n readonly format = input<ColorFormat>('hex');\n readonly presetColors = input<string[]>();\n readonly value = model<string>();\n effectRef?: EffectRef;\n\n open() {\n const { childSignal } = this.popover.open(this.colorPicker, {\n target: this.el.nativeElement,\n position: 'bl',\n offset: 0,\n data: { format: this.format(), presetColors: this.presetColors() },\n width: '255px',\n });\n this.effectRef?.destroy();\n\n this.effectRef = effect(\n () => {\n const colorPicker = childSignal()?.instance as NgbColorPicker;\n if (colorPicker) {\n untracked(() => {\n colorPicker.setValue(this.value() || '#000000');\n colorPicker.valueChange.subscribe(res => {\n this.value.set(res);\n });\n });\n }\n },\n { injector: this.injector },\n );\n }\n}\n","import { Directive, input, model } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\nimport { ColorFormat } from './color-picker';\n\n@Directive({\n selector: '[ngbColorInput]',\n providers: [provideValueAccessor(NgbColorInput)],\n})\nexport class NgbColorInput implements ControlValueAccessor {\n readonly format = input<ColorFormat>('hex');\n readonly presetColors = input<string[]>();\n readonly value = model<string>('');\n\n onChange = (_: string) => {};\n onTouched = () => {};\n\n updateValue(value = ''): void {\n this.value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","/*\n * Public API Surface of color-picker\n */\n\nexport * from './color-picker';\nexport * from './color-picker-trigger';\nexport * from './color-input';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngbase-adk-color-picker.mjs","sources":["../../../projects/adk/color-picker/utils.ts","../../../projects/adk/color-picker/color-picker.ts","../../../projects/adk/color-picker/color-picker-trigger.ts","../../../projects/adk/color-picker/color-input.ts","../../../projects/adk/color-picker/public-api.ts","../../../projects/adk/color-picker/ngbase-adk-color-picker.ts"],"sourcesContent":["const MAX_RGB = 255;\nconst MAX_HUE = 360;\nconst MAX_PERCENTAGE = 100;\n\nexport function hexToRgb(hex: string): [number, number, number, number] {\n // Remove the hash at the start if it's there\n hex = hex.replace(/^#/, '');\n\n // Check for valid hex formats\n if (!/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(hex)) {\n throw new Error('Invalid hex color format');\n }\n\n let r: number,\n g: number,\n b: number,\n a: number = 1;\n\n if (hex.length === 3 || hex.length === 4) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n if (hex.length === 4) {\n a = parseInt(hex[3] + hex[3], 16) / 255;\n }\n } else if (hex.length === 6 || hex.length === 8) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n if (hex.length === 8) {\n a = parseInt(hex.slice(6, 8), 16) / 255;\n }\n } else {\n throw new Error('Invalid hex color format');\n }\n\n return [r, g, b, roundTo2Decimals(a)];\n}\n\nexport function rgbaToHsb(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n): { h: number; s: number; b: number; a: number } {\n validateRgba(r, g, b, a);\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max;\n\n if (max !== min) {\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 h /= 6;\n }\n\n return {\n h: roundNum(h * 360),\n s: roundNum(s * 100),\n b: roundNum(v * 100),\n a: roundTo2Decimals(a),\n };\n}\n\nexport function hexToHsb(hex: string): [number, number, number, number] {\n const [r, g, b, a] = hexToRgb(hex);\n const { h, s, b: brightness, a: alpha } = rgbaToHsb(r, g, b, a);\n return [roundNum(h), roundNum(s), roundNum(brightness), roundTo2Decimals(alpha)];\n}\n\nexport function rgbToHsl(r: number, g: number, b: number): { h: number; s: number; l: number } {\n validateRgb(r, g, b);\n\n r /= MAX_RGB;\n g /= MAX_RGB;\n b /= MAX_RGB;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n const d = max - min;\n\n if (d) {\n s = d / (1 - Math.abs(2 * l - 1));\n switch (max) {\n case r:\n h = ((g - b) / d + (g < b ? 6 : 0)) / 6;\n break;\n case g:\n h = ((b - r) / d + 2) / 6;\n break;\n case b:\n h = ((r - g) / d + 4) / 6;\n break;\n }\n }\n\n return {\n h: roundNum(h * MAX_HUE),\n s: roundNum(s * MAX_PERCENTAGE),\n l: roundNum(l * MAX_PERCENTAGE),\n };\n}\n\nexport function parseRgba(rgba: string): [number, number, number, number] {\n const matches = rgba.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n if (!matches) {\n throw new Error('Invalid RGBA string format');\n }\n const [, r, g, b, a] = matches;\n return [parseInt(r, 10), parseInt(g, 10), parseInt(b, 10), a ? parseFloat(a) : 1];\n}\n\nexport function parseHsba(hsb: string): [number, number, number, number] {\n const matches = hsb.match(/^hsba?\\((\\d+),\\s*(\\d+)%,\\s*(\\d+)%(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n if (!matches) {\n throw new Error('Invalid HSBA string format');\n }\n const [, h, s, b, a] = matches;\n return [parseInt(h, 10), parseInt(s, 10), parseInt(b, 10), a ? parseFloat(a) : 1];\n}\n\nexport function hsbToHsl(h: number, s: number, b: number): [number, number, number] {\n validateHsb(h, s, b);\n\n s /= MAX_PERCENTAGE;\n b /= MAX_PERCENTAGE;\n\n const l = b * (1 - s / 2);\n const saturation = l === 0 || l === 1 ? 0 : (b - l) / Math.min(l, 1 - l);\n\n return [roundNum(h), roundNum(saturation * MAX_PERCENTAGE), roundNum(l * MAX_PERCENTAGE)];\n}\n\nexport function hslaToHsba(\n h: number,\n s: number,\n l: number,\n a: number = 1,\n): [number, number, number, number] {\n validateHsl(h, s, l);\n validateAlpha(a);\n\n s /= MAX_PERCENTAGE;\n l /= MAX_PERCENTAGE;\n\n const brightness = l + s * Math.min(l, 1 - l);\n const saturation = brightness === 0 ? 0 : 2 * (1 - l / brightness);\n\n return [\n roundNum(h),\n roundNum(saturation * MAX_PERCENTAGE),\n roundNum(brightness * MAX_PERCENTAGE),\n roundTo2Decimals(a),\n ];\n}\n\nexport function hsbaToRgba(\n h: number,\n s: number,\n b: number,\n a: number = 1,\n): [number, number, number, number] {\n validateHsb(h, s, b);\n validateAlpha(a);\n\n s /= MAX_PERCENTAGE;\n b /= MAX_PERCENTAGE;\n\n const k = (n: number) => (n + h / 60) % 6;\n const f = (n: number) => b * (1 - s * Math.max(0, Math.min(k(n), 4 - k(n), 1)));\n\n return [\n roundNum(f(5) * MAX_RGB),\n roundNum(f(3) * MAX_RGB),\n roundNum(f(1) * MAX_RGB),\n roundTo2Decimals(a),\n ];\n}\n\nexport function rgbToHsba(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n): [number, number, number, number] {\n const { h, s, b: br, a: alpha } = rgbaToHsb(r, g, b, a);\n return [h, s, br, alpha];\n}\n\nexport function hsbaToHex(h: number, s: number, b: number, a: number = 1): string {\n const [r, g, b_, a_] = hsbaToRgba(h, s, b, a);\n return rgbToHex(r, g, b_, a_);\n}\n\nexport function rgbToHex(r: number, g: number, b: number, a: number = 1): string {\n validateRgb(r, g, b);\n validateAlpha(a);\n\n let rgba = [r, g, b];\n if (a < 1) {\n rgba.push(Math.round(a * 255));\n }\n\n return (\n '#' +\n rgba\n .map(x => Math.round(x).toString(16).padStart(2, '0'))\n .join('')\n .toUpperCase()\n );\n}\n\nfunction validateRgb(r: number, g: number, b: number): void {\n if (r < 0 || r > MAX_RGB || g < 0 || g > MAX_RGB || b < 0 || b > MAX_RGB) {\n throw new Error('Invalid RGB values');\n }\n}\n\nfunction validateRgba(r: number, g: number, b: number, a: number): void {\n validateRgb(r, g, b);\n validateAlpha(a);\n}\n\nfunction validateHsb(h: number, s: number, b: number): void {\n if (h < 0 || h > MAX_HUE || s < 0 || s > MAX_PERCENTAGE || b < 0 || b > MAX_PERCENTAGE) {\n throw new Error('Invalid HSB values');\n }\n}\n\nfunction validateHsl(h: number, s: number, l: number): void {\n if (h < 0 || h >= MAX_HUE || s < 0 || s > MAX_PERCENTAGE || l < 0 || l > MAX_PERCENTAGE) {\n throw new Error('Invalid HSL values');\n }\n}\n\nfunction validateAlpha(a: number): void {\n if (a < 0 || a > 1) {\n throw new Error('Invalid alpha value');\n }\n}\n\nfunction roundNum(num: number): number {\n return Math.round(num);\n}\n\nfunction roundTo2Decimals(num: number): number {\n return Math.round(num * 100) / 100;\n}\n","import {\n afterNextRender,\n Component,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { Drag } from '@ngbase/adk/drag';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport {\n hexToHsb,\n hsbaToHex,\n hsbaToRgba,\n hsbToHsl,\n hslaToHsba,\n parseHsba,\n parseRgba,\n rgbToHsba,\n} from './utils';\n\nexport type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsb';\n\n@Directive({\n selector: '[ngbColorSpectrum]',\n hostDirectives: [Drag],\n host: {\n style:\n 'background-image: linear-gradient(0deg, rgb(0, 0, 0), transparent), linear-gradient(90deg, rgb(255, 255, 255), rgba(255, 255, 255, 0)); background-color: var(--hue-color);',\n },\n})\nexport class ColorSpectrum {}\n\n@Directive({\n selector: '[ngbColorSpectrumSelector]',\n host: {\n type: 'button',\n },\n})\nexport class ColorSpectrumSelector {}\n\n@Directive({ selector: '[ngbColorSelected]' })\nexport class ColorSelected {}\n\n@Directive({\n selector: '[ngbColorHue]',\n hostDirectives: [Drag],\n host: {\n style:\n 'inset: 0px; background: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0));',\n },\n})\nexport class ColorHue {}\n\n@Directive({\n selector: '[ngbColorHueThumb]',\n host: {\n type: 'button',\n },\n})\nexport class ColorHueThumb {}\n\n@Component({\n selector: '[ngbColorAlpha]',\n hostDirectives: [Drag],\n template: ` <div\n style=\"height: 100%; inset: 0px; background: linear-gradient(to right, rgba(255, 0, 4, 0), var(--hue-color));\"\n >\n <ng-content />\n </div>`,\n host: {\n style: `\n background-image: conic-gradient(\n rgba(0, 0, 0, 0.06) 0 25%,\n transparent 0 50%,\n rgba(0, 0, 0, 0.06) 0 75%,\n transparent 0\n );\n background-size: 8px 8px;\n `,\n },\n})\nexport class ColorAlpha {}\n\n@Directive({\n selector: '[ngbColorAlphaThumb]',\n host: {\n type: 'button',\n },\n})\nexport class ColorAlphaThumb {}\n\n@Directive({\n selector: 'ngb-color-picker-container',\n host: {\n style: `\n --hue-color: rgb(255, 0, 0);\n --spectrum-color: rgb(0, 0, 0);\n `,\n },\n})\nexport class NgbColorPicker {\n private readonly el = inject(ElementRef);\n private readonly dialogRef = inject(DialogRef, { optional: true });\n private readonly hueDiv = viewChild.required<ColorHue, Drag>(ColorHue, { read: Drag });\n private readonly hueSelector = viewChild.required<ColorHueThumb, ElementRef<HTMLButtonElement>>(\n ColorHueThumb,\n { read: ElementRef },\n );\n\n private readonly spectrumDiv = viewChild.required<ColorSpectrum, Drag>(ColorSpectrum, {\n read: Drag,\n });\n private readonly spectrumSelector = viewChild.required<\n ColorSpectrumSelector,\n ElementRef<HTMLButtonElement>\n >(ColorSpectrumSelector, { read: ElementRef });\n\n private readonly selectedColor = viewChild.required<ColorSelected, ElementRef<HTMLDivElement>>(\n ColorSelected,\n { read: ElementRef },\n );\n\n private alpha = 100; // 0-100\n private readonly alphaDiv = viewChild.required<ColorAlpha, Drag>(ColorAlpha, { read: Drag });\n private readonly alphaSelector = viewChild.required<\n ColorAlphaThumb,\n ElementRef<HTMLButtonElement>\n >(ColorAlphaThumb, { read: ElementRef });\n\n readonly valueChange = output<string>();\n readonly format = input<ColorFormat>(this.dialogRef?.data.format || 'hex');\n readonly presetColors = input<string[]>(this.dialogRef?.data.presetColors || []);\n\n private hue = 0;\n private saturation = 0;\n private brightness = 0;\n private lastSpectrumEvent?: MouseEvent;\n private localValue = '';\n\n private colorParsers = new Map<ColorFormat, (value: string) => [number, number, number, number]>([\n ['hsb', parseHsba],\n ['hex', hexToHsb],\n ['rgb', (value: string) => rgbToHsba(...parseRgba(value))],\n ['hsl', (value: string) => hslaToHsba(...parseHsba(value))],\n ]);\n\n constructor() {\n afterNextRender(() => {\n this.setupEventListeners();\n });\n }\n\n private calculateCoordinates(e: MouseEvent, el: ElementRef) {\n const rect = el.nativeElement.getBoundingClientRect();\n\n let x = Math.round(e.clientX - rect.left);\n let y = Math.round(e.clientY - rect.top);\n\n // Constrain x and y within the bounds of the spectrum box\n x = Math.max(0, Math.min(x, rect.width));\n y = Math.max(0, Math.min(y, rect.height));\n return { x, y, rect };\n }\n\n private setupEventListeners() {\n this.setupDragListener(this.hueDiv(), (x, y, w, h) => this.updateHue(x, 0, w, h));\n this.setupDragListener(this.spectrumDiv(), this.updateSpectrum.bind(this));\n this.setupDragListener(this.alphaDiv(), (x, y, w) => this.updateAlpha(x, 0, w));\n }\n\n private setupDragListener(\n dragElement: Drag,\n updateFunction: (x: number, y: number, width: number, height: number) => void,\n ) {\n dragElement.events.subscribe(event => {\n if (event.type === 'start' || event.type === 'move') {\n this.handleColorEvent(event.event! as PointerEvent, dragElement.el, updateFunction);\n // If we want to avoid emitting the value on every move,\n // we can add a flag to emit only when the event is 'end'\n this.valueChange.emit(this.localValue);\n }\n });\n }\n\n private handleColorEvent(\n event: PointerEvent,\n element: ElementRef,\n updateFunction: (x: number, y: number, width: number, height: number) => void,\n ) {\n const { x, y, rect } = this.calculateCoordinates(event, element);\n updateFunction(x, y, rect.width, rect.height);\n this.updateValue();\n }\n\n private updateHue(x: number, y: number, width: number, height: number) {\n this.hue = Math.round((x / width) * 360);\n this.el.nativeElement.style.setProperty('--hue-color', `hsl(${this.hue}, 100%, 50%)`);\n const hueSelector = this.hueSelector()!.nativeElement;\n hueSelector.style.left = `${x}px`;\n if (this.lastSpectrumEvent) this.updateValue();\n }\n\n private updateSpectrum(x: number, y: number, width: number, height: number) {\n const { s, b } = this.calculateSaturationAndLuminous(x, y!, width, height);\n this.saturation = s;\n this.brightness = b;\n this.lastSpectrumEvent = { clientX: x, clientY: y } as PointerEvent;\n const spectrumSelector = this.spectrumSelector()!.nativeElement;\n spectrumSelector.style.left = `${x - spectrumSelector.offsetWidth / 2}px`;\n spectrumSelector.style.top = `${y! - spectrumSelector.offsetHeight / 2}px`;\n }\n\n private updateAlpha(x: number, y: number, width: number) {\n this.alpha = Math.round((x / width) * 100);\n const alphaSelector = this.alphaSelector()!.nativeElement;\n alphaSelector.style.left = `${x}px`;\n }\n\n setValue(value: string, emit = false): void {\n if (!value) return;\n this.parse(value);\n this.updateValue(emit);\n this.el.nativeElement.style.setProperty('--hue-color', this.getColor(this.hue, 100, 100, 100));\n this.updateSelectorPositions();\n }\n\n private updateSelectorPositions() {\n this.updateSelectorPosition(this.hueDiv().el, this.hueSelector(), this.hue / 360);\n this.updateSelectorPosition(this.alphaDiv().el, this.alphaSelector(), this.alpha / 100);\n this.updateSpectrumSelectorPosition();\n }\n\n private updateSelectorPosition(\n containerEl: ElementRef<HTMLElement>,\n selectorEl: ElementRef<HTMLButtonElement>,\n ratio: number,\n ) {\n selectorEl.nativeElement.style.left = ratio * containerEl.nativeElement.clientWidth + 'px';\n }\n\n private updateSpectrumSelectorPosition() {\n const spectrumRect = this.spectrumDiv().el.nativeElement.getBoundingClientRect();\n const spectrumSelector = this.spectrumSelector()!.nativeElement;\n const { x, y } = this.calculateSpectrumPosition(\n this.saturation,\n this.brightness,\n spectrumRect.width,\n spectrumRect.height,\n );\n spectrumSelector.style.left = `${x}px`;\n spectrumSelector.style.top = `${y}px`;\n }\n\n // Simplified function to calculate the x and y based on the saturation and lightness\n private calculateSpectrumPosition(\n s: number,\n l: number,\n spectrumWidth: number,\n spectrumHeight: number,\n ): { x: number; y: number } {\n const handlerSize = 16;\n const half = handlerSize / 2;\n const x = (spectrumWidth * s) / 100 - half;\n const y = (spectrumHeight * (100 - l)) / 100 - half;\n return { x, y };\n }\n\n private calculateSaturationAndLuminous(\n x: number,\n y: number,\n sw: number,\n sh: number,\n ): { s: number; b: number } {\n const s = Math.round((x / sw) * 100);\n const b = Math.round(100 - (y / sh) * 100);\n return { s, b };\n }\n\n private updateValue(emit = false) {\n this.localValue = this.toString();\n const hsla = this.getColor(this.hue, this.saturation, this.brightness, this.alpha);\n this.el.nativeElement.style.setProperty('--spectrum-color', hsla);\n this.selectedColor()!.nativeElement.style.backgroundColor = hsla;\n this.spectrumSelector()!.nativeElement.style.backgroundColor = hsla;\n if (emit) this.valueChange.emit(this.localValue);\n }\n\n private getColor(h: number, s: number, b: number, a: number) {\n const [hh, ss, l] = hsbToHsl(h, s, b);\n return `hsla(${hh}, ${ss}%, ${l}%, ${a / 100})`;\n }\n\n private parse(value: string) {\n const parser = this.colorParsers.get(this.format());\n if (parser) {\n [this.hue, this.saturation, this.brightness, this.alpha] = parser(value);\n this.alpha = Math.round(this.alpha * 100);\n }\n }\n\n private toString() {\n const alpha = this.alpha / 100;\n const formatters = {\n hsb: () => `hsba(${this.hue}, ${this.saturation}%, ${this.brightness}%, ${alpha})`,\n hex: () => hsbaToHex(this.hue, this.saturation, this.brightness, alpha),\n rgb: () => {\n const [r, g, b, a] = hsbaToRgba(this.hue, this.saturation, this.brightness, alpha);\n return a === 1 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n },\n hsl: () => {\n const [h, s, l] = hsbToHsl(this.hue, this.saturation, this.brightness);\n return `hsla(${h}, ${s}%, ${l}%, ${alpha})`;\n },\n };\n return formatters[this.format()]?.() || '';\n }\n}\n","import {\n Directive,\n effect,\n EffectRef,\n ElementRef,\n inject,\n InjectionToken,\n Injector,\n input,\n model,\n untracked,\n} from '@angular/core';\nimport { ngbPopoverPortal } from '@ngbase/adk/popover';\nimport { ColorFormat, NgbColorPicker } from './color-picker';\n\nconst ColorPicker = new InjectionToken<typeof NgbColorPicker>('ColorPicker');\n\nexport const registerColorPicker = (picker: typeof NgbColorPicker) => [\n { provide: ColorPicker, useValue: picker },\n];\n\n@Directive({\n selector: '[ngbColorPickerTrigger]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class ColorPickerTrigger {\n private el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private colorPicker =\n inject<typeof NgbColorPicker>(ColorPicker, { optional: true }) ?? NgbColorPicker;\n private popover = ngbPopoverPortal();\n private injector = inject(Injector);\n\n readonly format = input<ColorFormat>('hex');\n readonly presetColors = input<string[]>();\n readonly value = model<string>();\n effectRef?: EffectRef;\n\n open() {\n const { childSignal } = this.popover.open(this.colorPicker, {\n target: this.el.nativeElement,\n position: 'bl',\n offset: 0,\n data: { format: this.format(), presetColors: this.presetColors() },\n width: '255px',\n });\n this.effectRef?.destroy();\n\n this.effectRef = effect(\n () => {\n const colorPicker = childSignal()?.instance as NgbColorPicker;\n if (colorPicker) {\n untracked(() => {\n colorPicker.setValue(this.value() || '#000000');\n colorPicker.valueChange.subscribe(res => {\n this.value.set(res);\n });\n });\n }\n },\n { injector: this.injector },\n );\n }\n}\n","import { Directive, input, model } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { ColorFormat } from './color-picker';\n\n@Directive({\n selector: '[ngbColorInput]',\n})\nexport class NgbColorInput implements FormValueControl<string> {\n readonly format = input<ColorFormat>('hex');\n readonly presetColors = input<string[]>();\n readonly value = model<string>('');\n readonly touched = model(false);\n readonly disabled = input(false);\n\n updateValue(val = ''): void {\n if (this.disabled()) return;\n this.value.set(val);\n this.touched.set(true);\n }\n}\n","/*\n * Public API Surface of color-picker\n */\n\nexport * from './color-picker';\nexport * from './color-picker-trigger';\nexport * from './color-input';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,OAAO,GAAG,GAAG;AACnB,MAAM,OAAO,GAAG,GAAG;AACnB,MAAM,cAAc,GAAG,GAAG;AAEpB,SAAU,QAAQ,CAAC,GAAW,EAAA;;IAElC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;;IAG3B,IAAI,CAAC,iEAAiE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAChF,QAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;IAC7C;IAEA,IAAI,CAAS,EACX,CAAS,EACT,CAAS,EACT,CAAC,GAAW,CAAC;AAEf,IAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,YAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;QACzC;IACF;AAAO,SAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/C,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACjC,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,YAAA,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;QACzC;IACF;SAAO;AACL,QAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;IAC7C;AAEA,IAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACvC;AAEM,SAAU,SAAS,CACvB,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAA,GAAY,CAAC,EAAA;IAEb,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAExB,CAAC,IAAI,GAAG;IACR,CAAC,IAAI,GAAG;IACR,CAAC,IAAI,GAAG;AAER,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC;AACT,IAAA,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG;AACnB,IAAA,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG;IACjC,MAAM,CAAC,GAAG,GAAG;AAEb,IAAA,IAAI,GAAG,KAAK,GAAG,EAAE;QACf,QAAQ,GAAG;AACT,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC;AACF,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnB;AACF,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnB;;QAEJ,CAAC,IAAI,CAAC;IACR;IAEA,OAAO;AACL,QAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC;AACpB,QAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC;AACpB,QAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC;AACpB,QAAA,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;KACvB;AACH;AAEM,SAAU,QAAQ,CAAC,GAAW,EAAA;AAClC,IAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;IAClC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAClF;SAEgB,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACtD,IAAA,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEpB,CAAC,IAAI,OAAO;IACZ,CAAC,IAAI,OAAO;IACZ,CAAC,IAAI,OAAO;AACZ,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC;IACT,IAAI,CAAC,GAAG,CAAC;IACT,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;AACzB,IAAA,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG;IAEnB,IAAI,CAAC,EAAE;AACL,QAAA,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,QAAQ,GAAG;AACT,YAAA,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACvC;AACF,YAAA,KAAK,CAAC;AACJ,gBAAA,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB;AACF,YAAA,KAAK,CAAC;AACJ,gBAAA,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB;;IAEN;IAEA,OAAO;AACL,QAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC;AACxB,QAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAC;AAC/B,QAAA,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAC;KAChC;AACH;AAEM,SAAU,SAAS,CAAC,IAAY,EAAA;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC;IACxF,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;AACA,IAAA,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO;AAC9B,IAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnF;AAEM,SAAU,SAAS,CAAC,GAAW,EAAA;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,8DAA8D,CAAC;IACzF,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;AACA,IAAA,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO;AAC9B,IAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnF;SAEgB,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACtD,IAAA,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEpB,CAAC,IAAI,cAAc;IACnB,CAAC,IAAI,cAAc;IAEnB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,IAAA,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAExE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;AAC3F;AAEM,SAAU,UAAU,CACxB,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAA,GAAY,CAAC,EAAA;AAEb,IAAA,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpB,aAAa,CAAC,CAAC,CAAC;IAEhB,CAAC,IAAI,cAAc;IACnB,CAAC,IAAI,cAAc;AAEnB,IAAA,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,UAAU,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;IAElE,OAAO;QACL,QAAQ,CAAC,CAAC,CAAC;AACX,QAAA,QAAQ,CAAC,UAAU,GAAG,cAAc,CAAC;AACrC,QAAA,QAAQ,CAAC,UAAU,GAAG,cAAc,CAAC;QACrC,gBAAgB,CAAC,CAAC,CAAC;KACpB;AACH;AAEM,SAAU,UAAU,CACxB,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAA,GAAY,CAAC,EAAA;AAEb,IAAA,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpB,aAAa,CAAC,CAAC,CAAC;IAEhB,CAAC,IAAI,cAAc;IACnB,CAAC,IAAI,cAAc;AAEnB,IAAA,MAAM,CAAC,GAAG,CAAC,CAAS,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AACzC,IAAA,MAAM,CAAC,GAAG,CAAC,CAAS,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO;AACL,QAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACxB,QAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACxB,QAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACxB,gBAAgB,CAAC,CAAC,CAAC;KACpB;AACH;AAEM,SAAU,SAAS,CACvB,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAA,GAAY,CAAC,EAAA;IAEb,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC;AAC1B;AAEM,SAAU,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAA,GAAY,CAAC,EAAA;IACtE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;AAC/B;AAEM,SAAU,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAA,GAAY,CAAC,EAAA;AACrE,IAAA,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpB,aAAa,CAAC,CAAC,CAAC;IAEhB,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACpB,IAAA,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAChC;AAEA,IAAA,QACE,GAAG;QACH;aACG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aACpD,IAAI,CAAC,EAAE;aACP,WAAW,EAAE;AAEpB;AAEA,SAAS,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;IAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE;AACxE,QAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;IACvC;AACF;AAEA,SAAS,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AAC9D,IAAA,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpB,aAAa,CAAC,CAAC,CAAC;AAClB;AAEA,SAAS,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;IAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,EAAE;AACtF,QAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;IACvC;AACF;AAEA,SAAS,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;IAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,cAAc,EAAE;AACvF,QAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;IACvC;AACF;AAEA,SAAS,aAAa,CAAC,CAAS,EAAA;IAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC;IACxC;AACF;AAEA,SAAS,QAAQ,CAAC,GAAW,EAAA;AAC3B,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACxB;AAEA,SAAS,gBAAgB,CAAC,GAAW,EAAA;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG;AACpC;;MCzOa,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,6KAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,cAAc,EAAE,CAAC,IAAI,CAAC;AACtB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EACH,6KAA6K;AAChL,qBAAA;AACF,iBAAA;;MASY,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACf,qBAAA;AACF,iBAAA;;MAIY,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,SAAS;mBAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE;;MAWhC,QAAQ,CAAA;8GAAR,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,0KAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBARpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;oBACzB,cAAc,EAAE,CAAC,IAAI,CAAC;AACtB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EACH,0KAA0K;AAC7K,qBAAA;AACF,iBAAA;;MASY,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACf,qBAAA;AACF,iBAAA;;MAuBY,UAAU,CAAA;8GAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uNAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBX,CAAA;;;;AAIH,QAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAaI,UAAU,EAAA,UAAA,EAAA,CAAA;kBApBtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;oBAC3B,cAAc,EAAE,CAAC,IAAI,CAAC;AACtB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIH,QAAA,CAAA;AACP,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;;;;;;;;AAQN,IAAA,CAAA;AACF,qBAAA;AACF,iBAAA;;MASY,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACf,qBAAA;AACF,iBAAA;;MAYY,cAAc,CAAA;AA8CzB,IAAA,WAAA,GAAA;AA7CiB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QACvB,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAiB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrE,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAAC,QAAQ,CAC/C,aAAa,EACb,EAAE,IAAI,EAAE,UAAU,EAAE,CACrB;AAEgB,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAsB,aAAa,EAAE;AACpF,YAAA,IAAI,EAAE,IAAI;AACX,SAAA,CAAC;AACe,QAAA,IAAA,CAAA,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAGpD,qBAAqB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAE7B,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAAC,QAAQ,CACjD,aAAa,EACb,EAAE,IAAI,EAAE,UAAU,EAAE,CACrB;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,GAAG,CAAC;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAmB,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC3E,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAAC,QAAQ,CAGjD,eAAe,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAE/B,IAAA,CAAA,WAAW,GAAG,MAAM,EAAU;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAc,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,kDAAC;AACjE,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAW,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,wDAAC;QAExE,IAAA,CAAA,GAAG,GAAG,CAAC;QACP,IAAA,CAAA,UAAU,GAAG,CAAC;QACd,IAAA,CAAA,UAAU,GAAG,CAAC;QAEd,IAAA,CAAA,UAAU,GAAG,EAAE;QAEf,IAAA,CAAA,YAAY,GAAG,IAAI,GAAG,CAAmE;YAC/F,CAAC,KAAK,EAAE,SAAS,CAAC;YAClB,CAAC,KAAK,EAAE,QAAQ,CAAC;AACjB,YAAA,CAAC,KAAK,EAAE,CAAC,KAAa,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,YAAA,CAAC,KAAK,EAAE,CAAC,KAAa,KAAK,UAAU,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,SAAA,CAAC;QAGA,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,mBAAmB,EAAE;AAC5B,QAAA,CAAC,CAAC;IACJ;IAEQ,oBAAoB,CAAC,CAAa,EAAE,EAAc,EAAA;QACxD,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAErD,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;AACzC,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;;AAGxC,QAAA,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,QAAA,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;IACvB;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjF,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF;IAEQ,iBAAiB,CACvB,WAAiB,EACjB,cAA6E,EAAA;AAE7E,QAAA,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAG;AACnC,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AACnD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAsB,EAAE,WAAW,CAAC,EAAE,EAAE,cAAc,CAAC;;;gBAGnF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACxC;AACF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,gBAAgB,CACtB,KAAmB,EACnB,OAAmB,EACnB,cAA6E,EAAA;AAE7E,QAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC;AAChE,QAAA,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE;IACpB;AAEQ,IAAA,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAA;AACnE,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC;AACxC,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,CAAA,IAAA,EAAO,IAAI,CAAC,GAAG,CAAA,YAAA,CAAc,CAAC;QACrF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAG,CAAC,aAAa;QACrD,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,CAAC,IAAI;QACjC,IAAI,IAAI,CAAC,iBAAiB;YAAE,IAAI,CAAC,WAAW,EAAE;IAChD;AAEQ,IAAA,cAAc,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc,EAAA;AACxE,QAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAE,EAAE,KAAK,EAAE,MAAM,CAAC;AAC1E,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAkB;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa;AAC/D,QAAA,gBAAgB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,CAAC,GAAG,gBAAgB,CAAC,WAAW,GAAG,CAAC,IAAI;AACzE,QAAA,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,CAAE,GAAG,gBAAgB,CAAC,YAAY,GAAG,CAAC,IAAI;IAC5E;AAEQ,IAAA,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAA;AACrD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAG,CAAC,aAAa;QACzD,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,CAAC,IAAI;IACrC;AAEA,IAAA,QAAQ,CAAC,KAAa,EAAE,IAAI,GAAG,KAAK,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK;YAAE;AACZ,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9F,IAAI,CAAC,uBAAuB,EAAE;IAChC;IAEQ,uBAAuB,GAAA;QAC7B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACjF,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACvF,IAAI,CAAC,8BAA8B,EAAE;IACvC;AAEQ,IAAA,sBAAsB,CAC5B,WAAoC,EACpC,UAAyC,EACzC,KAAa,EAAA;AAEb,QAAA,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI;IAC5F;IAEQ,8BAA8B,GAAA;AACpC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;QAChF,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa;QAC/D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,yBAAyB,CAC7C,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,EACf,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,MAAM,CACpB;QACD,gBAAgB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,CAAC,IAAI;QACtC,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,CAAC,IAAI;IACvC;;AAGQ,IAAA,yBAAyB,CAC/B,CAAS,EACT,CAAS,EACT,aAAqB,EACrB,cAAsB,EAAA;QAEtB,MAAM,WAAW,GAAG,EAAE;AACtB,QAAA,MAAM,IAAI,GAAG,WAAW,GAAG,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI;AAC1C,QAAA,MAAM,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI;AACnD,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;IACjB;AAEQ,IAAA,8BAA8B,CACpC,CAAS,EACT,CAAS,EACT,EAAU,EACV,EAAU,EAAA;AAEV,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;AACpC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;AAC1C,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;IACjB;IAEQ,WAAW,CAAC,IAAI,GAAG,KAAK,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC;AAClF,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC;QACjE,IAAI,CAAC,aAAa,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI;QAChE,IAAI,CAAC,gBAAgB,EAAG,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI;AACnE,QAAA,IAAI,IAAI;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAClD;AAEQ,IAAA,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACzD,QAAA,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,EAAA,EAAK,EAAE,CAAA,GAAA,EAAM,CAAC,CAAA,GAAA,EAAM,CAAC,GAAG,GAAG,CAAA,CAAA,CAAG;IACjD;AAEQ,IAAA,KAAK,CAAC,KAAa,EAAA;AACzB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnD,IAAI,MAAM,EAAE;YACV,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AACxE,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QAC3C;IACF;IAEQ,QAAQ,GAAA;AACd,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG;AAC9B,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,GAAG,EAAE,MAAM,CAAA,KAAA,EAAQ,IAAI,CAAC,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,UAAU,CAAA,GAAA,EAAM,IAAI,CAAC,UAAU,CAAA,GAAA,EAAM,KAAK,CAAA,CAAA,CAAG;AAClF,YAAA,GAAG,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;YACvE,GAAG,EAAE,MAAK;gBACR,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;gBAClF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAA,IAAA,EAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,EAAK,CAAC,GAAG,GAAG,CAAA,KAAA,EAAQ,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,CAAA,CAAG;YAC3E,CAAC;YACD,GAAG,EAAE,MAAK;gBACR,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;gBACtE,OAAO,CAAA,KAAA,EAAQ,CAAC,CAAA,EAAA,EAAK,CAAC,MAAM,CAAC,CAAA,GAAA,EAAM,KAAK,CAAA,CAAA,CAAG;YAC7C,CAAC;SACF;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE;IAC5C;8GAvNW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,mFAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGoC,QAAQ,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,IAAI,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEjF,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACL,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGmD,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAC5E,IAAI,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAKV,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGzC,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACL,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAI6C,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,IAAI,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIvF,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FA3B1B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE;;;AAGN,IAAA,CAAA;AACF,qBAAA;AACF,iBAAA;AAI8D,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,QAAQ,QAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAEnF,aAAa,CAAA,EAAA,EAAA,GACb,EAAE,IAAI,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAGiD,aAAa,CAAA,EAAA,EAAA,GAAE;AACpF,4BAAA,IAAI,EAAE,IAAI;AACX,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAIC,qBAAqB,CAAA,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAG3C,aAAa,CAAA,EAAA,EAAA,GACb,EAAE,IAAI,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAI2C,UAAU,CAAA,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAIzF,eAAe,CAAA,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACnHzC,MAAM,WAAW,GAAG,IAAI,cAAc,CAAwB,aAAa,CAAC;MAE/D,mBAAmB,GAAG,CAAC,MAA6B,KAAK;AACpE,IAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE;;MAS/B,kBAAkB,CAAA;AAN/B,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAA+B,UAAU,CAAC;AACrD,QAAA,IAAA,CAAA,WAAW,GACjB,MAAM,CAAwB,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,cAAc;QAC1E,IAAA,CAAA,OAAO,GAAG,gBAAgB,EAAE;AAC5B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE1B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAc,KAAK,kDAAC;QAClC,IAAA,CAAA,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAY;QAChC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AA4BjC,IAAA;IAzBC,IAAI,GAAA;AACF,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC1D,YAAA,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa;AAC7B,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE;AAClE,YAAA,KAAK,EAAE,OAAO;AACf,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AAEzB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CACrB,MAAK;AACH,YAAA,MAAM,WAAW,GAAG,WAAW,EAAE,EAAE,QAA0B;YAC7D,IAAI,WAAW,EAAE;gBACf,SAAS,CAAC,MAAK;oBACb,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC;AAC/C,oBAAA,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,IAAG;AACtC,wBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACrB,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;YACJ;AACF,QAAA,CAAC,sDACC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAC1B;IACH;8GApCW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,QAAQ;AACpB,qBAAA;AACF,iBAAA;;;MCnBY,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAc,KAAK,kDAAC;QAClC,IAAA,CAAA,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAY;AAChC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;AACzB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,mDAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AAOjC,IAAA;IALC,WAAW,CAAC,GAAG,GAAG,EAAE,EAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;8GAXW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA;;;ACND;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -64,10 +64,10 @@ class CookieService {
|
|
|
64
64
|
}
|
|
65
65
|
return false;
|
|
66
66
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
68
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CookieService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
68
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CookieService, providedIn: 'root' }); }
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CookieService, decorators: [{
|
|
71
71
|
type: Injectable,
|
|
72
72
|
args: [{ providedIn: 'root' }]
|
|
73
73
|
}], ctorParameters: () => [] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-cookies.mjs","sources":["../../../projects/adk/cookies/cookie.service.ts","../../../projects/adk/cookies/ngbase-adk-cookies.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CookieService {\n private readonly sameSite: 'Lax' | 'Strict' | 'None' = 'Lax';\n\n constructor() {}\n\n set(\n name: string,\n value: string,\n options: {\n expires?: number | Date;\n path?: string;\n domain?: string;\n secure?: boolean;\n sameSite?: 'Lax' | 'Strict' | 'None';\n } = {},\n ): void {\n let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const date = new Date();\n date.setTime(date.getTime() + options.expires * 24 * 60 * 60 * 1000);\n options.expires = date;\n }\n cookieString += `; expires=${options.expires.toUTCString()}`;\n }\n\n if (options.path) {\n cookieString += `; path=${options.path}`;\n }\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n cookieString += `; samesite=${options.sameSite || this.sameSite}`;\n\n document.cookie = cookieString;\n }\n\n get(name: string): string | null {\n const decodedName = decodeURIComponent(name);\n const cookies = document.cookie.split(';');\n for (let cookie of cookies) {\n cookie = cookie.trim();\n if (cookie.startsWith(decodedName + '=')) {\n return decodeURIComponent(cookie.substring(name.length + 1));\n }\n }\n return null;\n }\n\n delete(name: string, options: { path?: string; domain?: string } = {}): void {\n this.set(name, '', { ...options, expires: new Date(0) });\n }\n\n getAll(): { [key: string]: string } {\n return document.cookie.split(';').reduce(\n (cookies, cookie) => {\n const [name, value] = cookie.split('=').map(c => c.trim());\n cookies[decodeURIComponent(name)] = decodeURIComponent(value);\n return cookies;\n },\n {} as { [key: string]: string },\n );\n }\n\n clearAll(): void {\n const cookies = this.getAll();\n for (const name in cookies) {\n this.delete(name);\n }\n }\n\n has(name: string): boolean {\n return this.get(name) !== null;\n }\n\n update(\n name: string,\n newValue: string,\n options: {\n expires?: number | Date;\n path?: string;\n domain?: string;\n secure?: boolean;\n sameSite?: 'Lax' | 'Strict' | 'None';\n } = {},\n ): boolean {\n if (this.has(name)) {\n this.set(name, newValue, options);\n return true;\n }\n return false;\n }\n}\n\nexport const injectCookie = () => inject(CookieService);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAGa,aAAa,CAAA;AAGxB,IAAA,WAAA,GAAA;QAFiB,
|
|
1
|
+
{"version":3,"file":"ngbase-adk-cookies.mjs","sources":["../../../projects/adk/cookies/cookie.service.ts","../../../projects/adk/cookies/ngbase-adk-cookies.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CookieService {\n private readonly sameSite: 'Lax' | 'Strict' | 'None' = 'Lax';\n\n constructor() {}\n\n set(\n name: string,\n value: string,\n options: {\n expires?: number | Date;\n path?: string;\n domain?: string;\n secure?: boolean;\n sameSite?: 'Lax' | 'Strict' | 'None';\n } = {},\n ): void {\n let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const date = new Date();\n date.setTime(date.getTime() + options.expires * 24 * 60 * 60 * 1000);\n options.expires = date;\n }\n cookieString += `; expires=${options.expires.toUTCString()}`;\n }\n\n if (options.path) {\n cookieString += `; path=${options.path}`;\n }\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n cookieString += `; samesite=${options.sameSite || this.sameSite}`;\n\n document.cookie = cookieString;\n }\n\n get(name: string): string | null {\n const decodedName = decodeURIComponent(name);\n const cookies = document.cookie.split(';');\n for (let cookie of cookies) {\n cookie = cookie.trim();\n if (cookie.startsWith(decodedName + '=')) {\n return decodeURIComponent(cookie.substring(name.length + 1));\n }\n }\n return null;\n }\n\n delete(name: string, options: { path?: string; domain?: string } = {}): void {\n this.set(name, '', { ...options, expires: new Date(0) });\n }\n\n getAll(): { [key: string]: string } {\n return document.cookie.split(';').reduce(\n (cookies, cookie) => {\n const [name, value] = cookie.split('=').map(c => c.trim());\n cookies[decodeURIComponent(name)] = decodeURIComponent(value);\n return cookies;\n },\n {} as { [key: string]: string },\n );\n }\n\n clearAll(): void {\n const cookies = this.getAll();\n for (const name in cookies) {\n this.delete(name);\n }\n }\n\n has(name: string): boolean {\n return this.get(name) !== null;\n }\n\n update(\n name: string,\n newValue: string,\n options: {\n expires?: number | Date;\n path?: string;\n domain?: string;\n secure?: boolean;\n sameSite?: 'Lax' | 'Strict' | 'None';\n } = {},\n ): boolean {\n if (this.has(name)) {\n this.set(name, newValue, options);\n return true;\n }\n return false;\n }\n}\n\nexport const injectCookie = () => inject(CookieService);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|