@progress/kendo-angular-inputs 13.2.1-develop.11 → 13.2.1-develop.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +11 -0
- package/NOTICE.txt +654 -0
- package/README.md +184 -0
- package/checkbox/checkbox.directive.d.ts +52 -0
- package/checkbox.module.d.ts +43 -0
- package/colorpicker/color-contrast-svg.component.d.ts +29 -0
- package/colorpicker/color-gradient-numeric-label.directive.d.ts +20 -0
- package/colorpicker/color-gradient.component.d.ts +281 -0
- package/colorpicker/color-input.component.d.ts +95 -0
- package/colorpicker/color-palette.component.d.ts +221 -0
- package/colorpicker/colorpicker.component.d.ts +383 -0
- package/colorpicker/constants.d.ts +41 -0
- package/colorpicker/contrast-validation.component.d.ts +24 -0
- package/colorpicker/contrast.component.d.ts +25 -0
- package/colorpicker/events/active-color-click-event.d.ts +53 -0
- package/colorpicker/events/cancel-event.d.ts +15 -0
- package/colorpicker/events/close-event.d.ts +10 -0
- package/colorpicker/events/kendo-drag-event.d.ts +21 -0
- package/colorpicker/events/open-event.d.ts +10 -0
- package/colorpicker/events.d.ts +8 -0
- package/colorpicker/flatcolorpicker-actions.component.d.ts +24 -0
- package/colorpicker/flatcolorpicker-header.component.d.ts +43 -0
- package/colorpicker/flatcolorpicker.component.d.ts +267 -0
- package/colorpicker/focus-on-dom-ready.directive.d.ts +18 -0
- package/colorpicker/localization/colorgradient-localization.service.d.ts +17 -0
- package/colorpicker/localization/colorpalette-localization.service.d.ts +17 -0
- package/colorpicker/localization/colorpicker-localization.service.d.ts +14 -0
- package/colorpicker/localization/custom-messages.component.d.ts +17 -0
- package/colorpicker/localization/flatcolorpicker-localization.service.d.ts +17 -0
- package/colorpicker/localization/localized-colorpicker-messages.directive.d.ts +16 -0
- package/colorpicker/localization/messages.d.ts +121 -0
- package/colorpicker/models/actions-layout.d.ts +8 -0
- package/colorpicker/models/colorpicker-view.d.ts +8 -0
- package/colorpicker/models/gradient-settings.d.ts +35 -0
- package/colorpicker/models/hsva.d.ts +13 -0
- package/colorpicker/models/output-format.d.ts +8 -0
- package/colorpicker/models/palette-presets.d.ts +61 -0
- package/colorpicker/models/palette-settings.d.ts +33 -0
- package/colorpicker/models/popup-settings.d.ts +18 -0
- package/colorpicker/models/rgb.d.ts +12 -0
- package/colorpicker/models/rgba.d.ts +13 -0
- package/colorpicker/models/table-cell.d.ts +11 -0
- package/colorpicker/models/tile-size.d.ts +11 -0
- package/colorpicker/models.d.ts +16 -0
- package/colorpicker/services/color-palette.service.d.ts +19 -0
- package/colorpicker/services/flatcolorpicker.service.d.ts +15 -0
- package/colorpicker/utils/color-parser.d.ts +77 -0
- package/colorpicker/utils/contrast-curve.d.ts +37 -0
- package/colorpicker/utils.d.ts +6 -0
- package/colorpicker.module.d.ts +35 -0
- package/common/dom-utils.d.ts +25 -0
- package/common/math.d.ts +36 -0
- package/common/models/fillmode.d.ts +9 -0
- package/common/models/rounded.d.ts +14 -0
- package/common/models/size.d.ts +9 -0
- package/common/models/styling-classes.d.ts +11 -0
- package/common/models.d.ts +8 -0
- package/common/utils.d.ts +56 -0
- package/esm2020/checkbox/checkbox.directive.mjs +94 -0
- package/esm2020/checkbox.module.mjs +52 -0
- package/esm2020/colorpicker/color-contrast-svg.component.mjs +97 -0
- package/esm2020/colorpicker/color-gradient-numeric-label.directive.mjs +31 -0
- package/esm2020/colorpicker/color-gradient.component.mjs +1003 -0
- package/esm2020/colorpicker/color-input.component.mjs +433 -0
- package/esm2020/colorpicker/color-palette.component.mjs +553 -0
- package/esm2020/colorpicker/colorpicker.component.mjs +1086 -0
- package/esm2020/colorpicker/constants.mjs +40 -0
- package/esm2020/colorpicker/contrast-validation.component.mjs +72 -0
- package/esm2020/colorpicker/contrast.component.mjs +100 -0
- package/esm2020/colorpicker/events/active-color-click-event.mjs +58 -0
- package/esm2020/colorpicker/events/cancel-event.mjs +14 -0
- package/esm2020/colorpicker/events/close-event.mjs +10 -0
- package/esm2020/colorpicker/events/kendo-drag-event.mjs +5 -0
- package/esm2020/colorpicker/events/open-event.mjs +10 -0
- package/esm2020/colorpicker/events.mjs +8 -0
- package/esm2020/colorpicker/flatcolorpicker-actions.component.mjs +93 -0
- package/esm2020/colorpicker/flatcolorpicker-header.component.mjs +217 -0
- package/esm2020/colorpicker/flatcolorpicker.component.mjs +829 -0
- package/esm2020/colorpicker/focus-on-dom-ready.directive.mjs +29 -0
- package/esm2020/colorpicker/localization/colorgradient-localization.service.mjs +45 -0
- package/esm2020/colorpicker/localization/colorpalette-localization.service.mjs +45 -0
- package/esm2020/colorpicker/localization/colorpicker-localization.service.mjs +31 -0
- package/esm2020/colorpicker/localization/custom-messages.component.mjs +41 -0
- package/esm2020/colorpicker/localization/flatcolorpicker-localization.service.mjs +45 -0
- package/esm2020/colorpicker/localization/localized-colorpicker-messages.directive.mjs +37 -0
- package/esm2020/colorpicker/localization/messages.mjs +75 -0
- package/esm2020/colorpicker/models/actions-layout.mjs +5 -0
- package/esm2020/colorpicker/models/colorpicker-view.mjs +5 -0
- package/esm2020/colorpicker/models/gradient-settings.mjs +5 -0
- package/esm2020/colorpicker/models/hsva.mjs +5 -0
- package/esm2020/colorpicker/models/output-format.mjs +5 -0
- package/esm2020/colorpicker/models/palette-presets.mjs +62 -0
- package/esm2020/colorpicker/models/palette-settings.mjs +5 -0
- package/esm2020/colorpicker/models/popup-settings.mjs +5 -0
- package/esm2020/colorpicker/models/rgb.mjs +5 -0
- package/esm2020/colorpicker/models/rgba.mjs +5 -0
- package/esm2020/colorpicker/models/table-cell.mjs +5 -0
- package/esm2020/colorpicker/models/tile-size.mjs +6 -0
- package/esm2020/colorpicker/models.mjs +16 -0
- package/esm2020/colorpicker/services/color-palette.service.mjs +67 -0
- package/esm2020/colorpicker/services/flatcolorpicker.service.mjs +39 -0
- package/esm2020/colorpicker/utils/color-parser.mjs +164 -0
- package/esm2020/colorpicker/utils/contrast-curve.mjs +85 -0
- package/esm2020/colorpicker/utils.mjs +6 -0
- package/esm2020/colorpicker.module.mjs +104 -0
- package/esm2020/common/dom-utils.mjs +36 -0
- package/esm2020/common/math.mjs +65 -0
- package/esm2020/common/models/fillmode.mjs +5 -0
- package/esm2020/common/models/rounded.mjs +5 -0
- package/esm2020/common/models/size.mjs +5 -0
- package/esm2020/common/models/styling-classes.mjs +5 -0
- package/esm2020/common/models.mjs +8 -0
- package/esm2020/common/utils.mjs +81 -0
- package/esm2020/formfield/error.component.mjs +68 -0
- package/esm2020/formfield/formfield.component.mjs +284 -0
- package/esm2020/formfield/hint.component.mjs +63 -0
- package/esm2020/formfield/models/message-align.mjs +5 -0
- package/esm2020/formfield/models/orientation.mjs +5 -0
- package/esm2020/formfield/models/show-options.mjs +5 -0
- package/esm2020/formfield.module.mjs +54 -0
- package/esm2020/index.mjs +66 -0
- package/esm2020/inputs.module.mjs +98 -0
- package/esm2020/maskedtextbox/maskedtextbox.component.mjs +711 -0
- package/esm2020/maskedtextbox/masking.service.mjs +191 -0
- package/esm2020/maskedtextbox/parsing/combinators.mjs +28 -0
- package/esm2020/maskedtextbox/parsing/parsers.mjs +147 -0
- package/esm2020/maskedtextbox/parsing/result.mjs +41 -0
- package/esm2020/maskedtextbox/parsing/stream.mjs +41 -0
- package/esm2020/maskedtextbox.module.mjs +53 -0
- package/esm2020/numerictextbox/arrow-direction.mjs +13 -0
- package/esm2020/numerictextbox/constants.mjs +28 -0
- package/esm2020/numerictextbox/localization/custom-messages.component.mjs +41 -0
- package/esm2020/numerictextbox/localization/localized-numerictextbox-messages.directive.mjs +37 -0
- package/esm2020/numerictextbox/localization/messages.mjs +25 -0
- package/esm2020/numerictextbox/numerictextbox.component.mjs +1105 -0
- package/esm2020/numerictextbox/utils.mjs +92 -0
- package/esm2020/numerictextbox.module.mjs +66 -0
- package/esm2020/package-metadata.mjs +15 -0
- package/esm2020/progress-kendo-angular-inputs.mjs +8 -0
- package/esm2020/radiobutton/radiobutton.directive.mjs +76 -0
- package/esm2020/radiobutton.module.mjs +52 -0
- package/esm2020/rangeslider/localization/custom-messages.component.mjs +41 -0
- package/esm2020/rangeslider/localization/localized-rangeslider-messages.directive.mjs +37 -0
- package/esm2020/rangeslider/localization/messages.mjs +25 -0
- package/esm2020/rangeslider/rangeslider-model.mjs +52 -0
- package/esm2020/rangeslider/rangeslider-value.type.mjs +5 -0
- package/esm2020/rangeslider/rangeslider.component.mjs +605 -0
- package/esm2020/rangeslider.module.mjs +71 -0
- package/esm2020/shared/input-separator.component.mjs +41 -0
- package/esm2020/shared/textarea.directive.mjs +260 -0
- package/esm2020/shared/utils.mjs +13 -0
- package/esm2020/shared.module.mjs +32 -0
- package/esm2020/signature/events/close-event.mjs +10 -0
- package/esm2020/signature/events/index.mjs +6 -0
- package/esm2020/signature/events/open-event.mjs +10 -0
- package/esm2020/signature/localization/custom-messages.component.mjs +41 -0
- package/esm2020/signature/localization/index.mjs +7 -0
- package/esm2020/signature/localization/localized-signature-messages.directive.mjs +37 -0
- package/esm2020/signature/localization/messages.mjs +29 -0
- package/esm2020/signature/signature.component.mjs +906 -0
- package/esm2020/signature.module.mjs +79 -0
- package/esm2020/slider/localization/custom-messages.component.mjs +41 -0
- package/esm2020/slider/localization/localized-slider-messages.directive.mjs +37 -0
- package/esm2020/slider/localization/messages.mjs +27 -0
- package/esm2020/slider/slider-model.mjs +34 -0
- package/esm2020/slider/slider.component.mjs +646 -0
- package/esm2020/slider.module.mjs +73 -0
- package/esm2020/sliders-common/label-template.directive.mjs +45 -0
- package/esm2020/sliders-common/slider-base.mjs +255 -0
- package/esm2020/sliders-common/slider-model.base.mjs +93 -0
- package/esm2020/sliders-common/slider-ticks.component.mjs +125 -0
- package/esm2020/sliders-common/sliders-common.module.mjs +42 -0
- package/esm2020/sliders-common/sliders-util.mjs +219 -0
- package/esm2020/sliders-common/title-callback.mjs +5 -0
- package/esm2020/switch/events/blur-event.mjs +9 -0
- package/esm2020/switch/events/focus-event.mjs +9 -0
- package/esm2020/switch/localization/custom-messages.component.mjs +41 -0
- package/esm2020/switch/localization/localized-switch-messages.directive.mjs +37 -0
- package/esm2020/switch/localization/messages.mjs +25 -0
- package/esm2020/switch/switch.component.mjs +577 -0
- package/esm2020/switch.module.mjs +68 -0
- package/esm2020/text-fields-common/text-fields-base.mjs +128 -0
- package/esm2020/textarea/models/flow.mjs +5 -0
- package/esm2020/textarea/models/resize.mjs +5 -0
- package/esm2020/textarea/textarea-suffix.component.mjs +40 -0
- package/esm2020/textarea/textarea.component.mjs +604 -0
- package/esm2020/textarea.module.mjs +68 -0
- package/esm2020/textbox/localization/custom-messages.component.mjs +41 -0
- package/esm2020/textbox/localization/localized-textbox-messages.directive.mjs +37 -0
- package/esm2020/textbox/localization/messages.mjs +23 -0
- package/esm2020/textbox/models/icon-show-options.mjs +5 -0
- package/esm2020/textbox/textbox-prefix.directive.mjs +38 -0
- package/esm2020/textbox/textbox-suffix.directive.mjs +37 -0
- package/esm2020/textbox/textbox.component.mjs +849 -0
- package/esm2020/textbox/textbox.directive.mjs +121 -0
- package/esm2020/textbox.module.mjs +89 -0
- package/esm2020/validators/max.validator.mjs +21 -0
- package/esm2020/validators/min.validator.mjs +21 -0
- package/fesm2015/progress-kendo-angular-inputs.mjs +15090 -0
- package/fesm2020/progress-kendo-angular-inputs.mjs +15055 -0
- package/formfield/error.component.d.ts +31 -0
- package/formfield/formfield.component.d.ts +98 -0
- package/formfield/hint.component.d.ts +29 -0
- package/formfield/models/message-align.d.ts +8 -0
- package/formfield/models/orientation.d.ts +9 -0
- package/formfield/models/show-options.d.ts +16 -0
- package/formfield.module.d.ts +45 -0
- package/index.d.ts +76 -0
- package/inputs.module.d.ts +55 -0
- package/maskedtextbox/maskedtextbox.component.d.ts +315 -0
- package/maskedtextbox/masking.service.d.ts +48 -0
- package/maskedtextbox/parsing/combinators.d.ts +13 -0
- package/maskedtextbox/parsing/parsers.d.ts +51 -0
- package/maskedtextbox/parsing/result.d.ts +27 -0
- package/maskedtextbox/parsing/stream.d.ts +26 -0
- package/maskedtextbox.module.d.ts +44 -0
- package/numerictextbox/arrow-direction.d.ts +12 -0
- package/numerictextbox/constants.d.ts +28 -0
- package/numerictextbox/localization/custom-messages.component.d.ts +17 -0
- package/numerictextbox/localization/localized-numerictextbox-messages.directive.d.ts +16 -0
- package/numerictextbox/localization/messages.d.ts +21 -0
- package/numerictextbox/numerictextbox.component.d.ts +364 -0
- package/numerictextbox/utils.d.ts +44 -0
- package/numerictextbox.module.d.ts +47 -0
- package/package-metadata.d.ts +9 -0
- package/package.json +74 -0
- package/progress-kendo-angular-inputs.d.ts +9 -0
- package/radiobutton/radiobutton.directive.d.ts +38 -0
- package/radiobutton.module.d.ts +43 -0
- package/rangeslider/localization/custom-messages.component.d.ts +17 -0
- package/rangeslider/localization/localized-rangeslider-messages.directive.d.ts +16 -0
- package/rangeslider/localization/messages.d.ts +21 -0
- package/rangeslider/rangeslider-model.d.ts +15 -0
- package/rangeslider/rangeslider-value.type.d.ts +9 -0
- package/rangeslider/rangeslider.component.d.ts +139 -0
- package/rangeslider.module.d.ts +48 -0
- package/schematics/collection.json +12 -0
- package/schematics/ngAdd/index.js +11 -0
- package/schematics/ngAdd/schema.json +28 -0
- package/shared/input-separator.component.d.ts +28 -0
- package/shared/textarea.directive.d.ts +99 -0
- package/shared/utils.d.ts +10 -0
- package/shared.module.d.ts +19 -0
- package/signature/events/close-event.d.ts +10 -0
- package/signature/events/index.d.ts +6 -0
- package/signature/events/open-event.d.ts +10 -0
- package/signature/localization/custom-messages.component.d.ts +17 -0
- package/signature/localization/index.d.ts +7 -0
- package/signature/localization/localized-signature-messages.directive.d.ts +16 -0
- package/signature/localization/messages.d.ts +29 -0
- package/signature/signature.component.d.ts +364 -0
- package/signature.module.d.ts +48 -0
- package/slider/localization/custom-messages.component.d.ts +17 -0
- package/slider/localization/localized-slider-messages.directive.d.ts +16 -0
- package/slider/localization/messages.d.ts +25 -0
- package/slider/slider-model.d.ts +14 -0
- package/slider/slider.component.d.ts +175 -0
- package/slider.module.d.ts +50 -0
- package/sliders-common/label-template.directive.d.ts +36 -0
- package/sliders-common/slider-base.d.ts +141 -0
- package/sliders-common/slider-model.base.d.ts +26 -0
- package/sliders-common/slider-ticks.component.d.ts +26 -0
- package/sliders-common/sliders-common.module.d.ts +17 -0
- package/sliders-common/sliders-util.d.ts +119 -0
- package/sliders-common/title-callback.d.ts +10 -0
- package/switch/events/blur-event.d.ts +13 -0
- package/switch/events/focus-event.d.ts +13 -0
- package/switch/localization/custom-messages.component.d.ts +17 -0
- package/switch/localization/localized-switch-messages.directive.d.ts +16 -0
- package/switch/localization/messages.d.ts +21 -0
- package/switch/switch.component.d.ts +216 -0
- package/switch.module.d.ts +46 -0
- package/text-fields-common/text-fields-base.d.ts +91 -0
- package/textarea/models/flow.d.ts +12 -0
- package/textarea/models/resize.d.ts +16 -0
- package/textarea/textarea-suffix.component.d.ts +26 -0
- package/textarea/textarea.component.d.ts +225 -0
- package/textarea.module.d.ts +48 -0
- package/textbox/localization/custom-messages.component.d.ts +17 -0
- package/textbox/localization/localized-textbox-messages.directive.d.ts +16 -0
- package/textbox/localization/messages.d.ts +17 -0
- package/textbox/models/icon-show-options.d.ts +13 -0
- package/textbox/textbox-prefix.directive.d.ts +29 -0
- package/textbox/textbox-suffix.directive.d.ts +28 -0
- package/textbox/textbox.component.d.ts +376 -0
- package/textbox/textbox.directive.d.ts +59 -0
- package/textbox.module.d.ts +53 -0
- package/validators/max.validator.d.ts +8 -0
- package/validators/min.validator.d.ts +8 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { NgModule } from '@angular/core';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { SliderComponent } from './slider/slider.component';
|
|
8
|
+
import { SlidersCommonModule } from './sliders-common/sliders-common.module';
|
|
9
|
+
import { LocalizedSliderMessagesDirective } from './slider/localization/localized-slider-messages.directive';
|
|
10
|
+
import { SliderCustomMessagesComponent } from './slider/localization/custom-messages.component';
|
|
11
|
+
import { LabelTemplateDirective } from './sliders-common/label-template.directive';
|
|
12
|
+
import { IconsModule } from '@progress/kendo-angular-icons';
|
|
13
|
+
import { ButtonModule } from '@progress/kendo-angular-buttons';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
/**
|
|
16
|
+
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
17
|
+
* definition for the Slider component.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
*
|
|
21
|
+
* ```ts-no-run
|
|
22
|
+
* // Import the Inputs module
|
|
23
|
+
* import { SliderModule } from '@progress/kendo-angular-inputs';
|
|
24
|
+
*
|
|
25
|
+
* // The browser platform with a compiler
|
|
26
|
+
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
27
|
+
* import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
28
|
+
*
|
|
29
|
+
* import { NgModule } from '@angular/core';
|
|
30
|
+
*
|
|
31
|
+
* // Import the app component
|
|
32
|
+
* import { AppComponent } from './app.component';
|
|
33
|
+
*
|
|
34
|
+
* // Define the app module
|
|
35
|
+
* _@NgModule({
|
|
36
|
+
* declarations: [AppComponent], // declare app component
|
|
37
|
+
* imports: [BrowserModule, BrowserAnimationsModule, SliderModule], // import Slider module
|
|
38
|
+
* bootstrap: [AppComponent]
|
|
39
|
+
* })
|
|
40
|
+
* export class AppModule {}
|
|
41
|
+
*
|
|
42
|
+
* // Compile and launch the module
|
|
43
|
+
* platformBrowserDynamic().bootstrapModule(AppModule);
|
|
44
|
+
*
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export class SliderModule {
|
|
48
|
+
}
|
|
49
|
+
SliderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
50
|
+
SliderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SliderModule, declarations: [SliderComponent,
|
|
51
|
+
SliderCustomMessagesComponent,
|
|
52
|
+
LocalizedSliderMessagesDirective], imports: [CommonModule, SlidersCommonModule, IconsModule, ButtonModule], exports: [SliderComponent,
|
|
53
|
+
SliderCustomMessagesComponent,
|
|
54
|
+
LabelTemplateDirective,
|
|
55
|
+
LocalizedSliderMessagesDirective] });
|
|
56
|
+
SliderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SliderModule, imports: [[CommonModule, SlidersCommonModule, IconsModule, ButtonModule]] });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SliderModule, decorators: [{
|
|
58
|
+
type: NgModule,
|
|
59
|
+
args: [{
|
|
60
|
+
declarations: [
|
|
61
|
+
SliderComponent,
|
|
62
|
+
SliderCustomMessagesComponent,
|
|
63
|
+
LocalizedSliderMessagesDirective
|
|
64
|
+
],
|
|
65
|
+
exports: [
|
|
66
|
+
SliderComponent,
|
|
67
|
+
SliderCustomMessagesComponent,
|
|
68
|
+
LabelTemplateDirective,
|
|
69
|
+
LocalizedSliderMessagesDirective
|
|
70
|
+
],
|
|
71
|
+
imports: [CommonModule, SlidersCommonModule, IconsModule, ButtonModule]
|
|
72
|
+
}]
|
|
73
|
+
}] });
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Directive, TemplateRef, Optional } from '@angular/core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Represents the template for the labels of the Slider.
|
|
9
|
+
* To define the labels template, nest an `<ng-template>` tag with the `kendoSliderLabelTemplate` directive inside
|
|
10
|
+
* the `<kendo-slider>` tag. The template context is passed to the `label` value.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts-no-run
|
|
14
|
+
*
|
|
15
|
+
* _@Component({
|
|
16
|
+
* selector: 'my-app',
|
|
17
|
+
* template: `
|
|
18
|
+
* <kendo-slider [largeStep]="2">
|
|
19
|
+
* <ng-template kendoSliderLabelTemplate let-value="value">
|
|
20
|
+
* <b>{{value}}</b>
|
|
21
|
+
* </ng-template>
|
|
22
|
+
* </kendo-slider>
|
|
23
|
+
* `
|
|
24
|
+
* })
|
|
25
|
+
*
|
|
26
|
+
* class AppComponent {
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export class LabelTemplateDirective {
|
|
32
|
+
constructor(templateRef) {
|
|
33
|
+
this.templateRef = templateRef;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
LabelTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LabelTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
37
|
+
LabelTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: LabelTemplateDirective, selector: "[kendoSliderLabelTemplate]", ngImport: i0 });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LabelTemplateDirective, decorators: [{
|
|
39
|
+
type: Directive,
|
|
40
|
+
args: [{
|
|
41
|
+
selector: '[kendoSliderLabelTemplate]'
|
|
42
|
+
}]
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
44
|
+
type: Optional
|
|
45
|
+
}] }]; } });
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { increment, decrement, incrementLarge, decrementLarge, identity } from './sliders-util';
|
|
6
|
+
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
7
|
+
import { Input, Output, EventEmitter, HostBinding, Injector, Renderer2, NgZone, ChangeDetectorRef, ElementRef, ViewChild, ContentChild, Component } from '@angular/core';
|
|
8
|
+
import { Subscription } from 'rxjs';
|
|
9
|
+
import { NgControl } from '@angular/forms';
|
|
10
|
+
import { Keys } from '@progress/kendo-angular-common';
|
|
11
|
+
import { validatePackage } from '@progress/kendo-licensing';
|
|
12
|
+
import { packageMetadata } from '../package-metadata';
|
|
13
|
+
import { LabelTemplateDirective } from './label-template.directive';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "@progress/kendo-angular-l10n";
|
|
16
|
+
/**
|
|
17
|
+
* @hidden
|
|
18
|
+
*/
|
|
19
|
+
export class SliderBase {
|
|
20
|
+
constructor(localizationService, injector, renderer, ngZone, changeDetector, hostElement) {
|
|
21
|
+
this.localizationService = localizationService;
|
|
22
|
+
this.injector = injector;
|
|
23
|
+
this.renderer = renderer;
|
|
24
|
+
this.ngZone = ngZone;
|
|
25
|
+
this.changeDetector = changeDetector;
|
|
26
|
+
this.hostElement = hostElement;
|
|
27
|
+
/**
|
|
28
|
+
* Defines the title of the ticks ([see example]({% slug ticks_slider %}#toc-titles)). The default title
|
|
29
|
+
* for each tick is its Slider value. If you use a callback function, the function accepts an argument
|
|
30
|
+
* that holds the value of the component and returns a string with the new title.
|
|
31
|
+
*/
|
|
32
|
+
this.title = identity;
|
|
33
|
+
/**
|
|
34
|
+
* Denotes the location of the tick marks in the Slider ([see example]({% slug ticks_slider %}#toc-placement)).
|
|
35
|
+
*
|
|
36
|
+
* The available options are:
|
|
37
|
+
* * `before`—The tick marks are located to the top side of the horizontal track or to the left side of a vertical track.
|
|
38
|
+
* * `after`—The tick marks are located to the bottom side of the horizontal track or to the right side of the vertical track.
|
|
39
|
+
* * `both`— (Default) The tick marks are located on both sides of the track.
|
|
40
|
+
* * `none`—The tick marks are not visible. The actual elements are not added to the DOM tree.
|
|
41
|
+
*/
|
|
42
|
+
this.tickPlacement = 'both';
|
|
43
|
+
/**
|
|
44
|
+
* If `vertical` is set to `true`, the orientation of the Slider changes from horizontal to vertical
|
|
45
|
+
* ([see example]({% slug orientation_slider %})).
|
|
46
|
+
*/
|
|
47
|
+
this.vertical = false;
|
|
48
|
+
/**
|
|
49
|
+
* The minimum value of the Slider ([see example]({% slug predefinedsteps_slider %}#toc-small-steps)).
|
|
50
|
+
* The attribute accepts both integers and floating-point numbers.
|
|
51
|
+
*/
|
|
52
|
+
this.min = 0;
|
|
53
|
+
/**
|
|
54
|
+
* The maximum value of the Slider ([see example]({% slug predefinedsteps_slider %}#toc-small-steps)).
|
|
55
|
+
* The attribute accepts both integers and floating-point numbers.
|
|
56
|
+
*/
|
|
57
|
+
this.max = 10;
|
|
58
|
+
/**
|
|
59
|
+
* The step value of the Slider ([see example]({% slug predefinedsteps_slider %}#toc-small-steps)).
|
|
60
|
+
* Accepts positive values only. Can be an integer or a floating-point number.
|
|
61
|
+
*/
|
|
62
|
+
this.smallStep = 1;
|
|
63
|
+
/**
|
|
64
|
+
* Specifies that every n<sup>th</sup> tick will be large and will have a label
|
|
65
|
+
* ([see example]({% slug predefinedsteps_slider %}#toc-large-steps)).
|
|
66
|
+
* Accepts positive integer values only.
|
|
67
|
+
*/
|
|
68
|
+
this.largeStep = null;
|
|
69
|
+
/**
|
|
70
|
+
* Determines whether the Slider is disabled ([see example]({% slug disabledstate_slider %})).
|
|
71
|
+
*/
|
|
72
|
+
this.disabled = false;
|
|
73
|
+
/**
|
|
74
|
+
* Determines whether the Slider is in its read-only state ([see example]({% slug readonly_slider %})).
|
|
75
|
+
*/
|
|
76
|
+
this.readonly = false;
|
|
77
|
+
/**
|
|
78
|
+
* Specifies the [tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the Slider.
|
|
79
|
+
*/
|
|
80
|
+
this.tabindex = 0;
|
|
81
|
+
/**
|
|
82
|
+
* Fires each time the user focuses the component.
|
|
83
|
+
*/
|
|
84
|
+
this.onFocus = new EventEmitter();
|
|
85
|
+
/**
|
|
86
|
+
* Fires each time the component is blurred.
|
|
87
|
+
*/
|
|
88
|
+
this.onBlur = new EventEmitter();
|
|
89
|
+
/**
|
|
90
|
+
* Fires each time the user selects a new value.
|
|
91
|
+
*/
|
|
92
|
+
this.valueChange = new EventEmitter();
|
|
93
|
+
this.sliderClass = true;
|
|
94
|
+
this.subscriptions = new Subscription();
|
|
95
|
+
/**
|
|
96
|
+
* @hidden
|
|
97
|
+
*/
|
|
98
|
+
this.ifEnabled = (callback, event) => {
|
|
99
|
+
if (!this.isDisabled) {
|
|
100
|
+
callback.call(this, event);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
validatePackage(packageMetadata);
|
|
104
|
+
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
105
|
+
}
|
|
106
|
+
get horizontalClass() {
|
|
107
|
+
return !this.vertical;
|
|
108
|
+
}
|
|
109
|
+
get verticalClass() {
|
|
110
|
+
return this.vertical;
|
|
111
|
+
}
|
|
112
|
+
get disabledClass() {
|
|
113
|
+
return this.disabled;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* @hidden
|
|
117
|
+
* Called when the status of the component changes to or from `disabled`.
|
|
118
|
+
* Depending on the value, it enables or disables the appropriate DOM element.
|
|
119
|
+
*
|
|
120
|
+
* @param isDisabled
|
|
121
|
+
*/
|
|
122
|
+
setDisabledState(isDisabled) {
|
|
123
|
+
this.changeDetector.markForCheck();
|
|
124
|
+
this.disabled = isDisabled;
|
|
125
|
+
}
|
|
126
|
+
ngOnInit() {
|
|
127
|
+
this.subscriptions.add(this.localizationService
|
|
128
|
+
.changes
|
|
129
|
+
.subscribe(({ rtl }) => {
|
|
130
|
+
this.direction = rtl ? 'rtl' : 'ltr';
|
|
131
|
+
this.sizeComponent();
|
|
132
|
+
}));
|
|
133
|
+
if (this.hostElement) {
|
|
134
|
+
this.renderer.removeAttribute(this.hostElement.nativeElement, "tabindex");
|
|
135
|
+
}
|
|
136
|
+
this.control = this.injector.get(NgControl, null);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* @hidden
|
|
140
|
+
*/
|
|
141
|
+
get isDisabled() {
|
|
142
|
+
return this.disabled || this.readonly;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* @hidden
|
|
146
|
+
* Used by the FloatingLabel to determine if the component is empty.
|
|
147
|
+
*/
|
|
148
|
+
isEmpty() {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
get reverse() {
|
|
152
|
+
return this.localizationService.rtl && !this.vertical;
|
|
153
|
+
}
|
|
154
|
+
get keyBinding() {
|
|
155
|
+
const reverse = this.reverse;
|
|
156
|
+
return {
|
|
157
|
+
[Keys.ArrowLeft]: reverse ? increment : decrement,
|
|
158
|
+
[Keys.ArrowRight]: reverse ? decrement : increment,
|
|
159
|
+
[Keys.ArrowDown]: decrement,
|
|
160
|
+
[Keys.ArrowUp]: increment,
|
|
161
|
+
[Keys.PageUp]: incrementLarge,
|
|
162
|
+
[Keys.PageDown]: decrementLarge,
|
|
163
|
+
[Keys.Home]: ({ min }) => min,
|
|
164
|
+
[Keys.End]: ({ max }) => max
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
resetStyles(elements) {
|
|
168
|
+
elements.forEach(el => {
|
|
169
|
+
if (el) {
|
|
170
|
+
if (this.vertical) {
|
|
171
|
+
this.renderer.removeStyle(el, 'width');
|
|
172
|
+
this.renderer.removeStyle(el, 'left');
|
|
173
|
+
this.renderer.removeStyle(el, 'right');
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
this.renderer.removeStyle(el, 'height');
|
|
177
|
+
this.renderer.removeStyle(el, 'bottom');
|
|
178
|
+
}
|
|
179
|
+
this.renderer.removeStyle(el, 'padding-top');
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
SliderBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SliderBase, deps: [{ token: i1.LocalizationService }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
185
|
+
SliderBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SliderBase, selector: "kendo-slider-base", inputs: { title: "title", tickPlacement: "tickPlacement", vertical: "vertical", min: "min", max: "max", smallStep: "smallStep", largeStep: "largeStep", fixedTickWidth: "fixedTickWidth", disabled: "disabled", readonly: "readonly", tabindex: "tabindex" }, outputs: { onFocus: "focus", onBlur: "blur", valueChange: "valueChange" }, host: { properties: { "attr.dir": "this.direction", "class.k-slider-horizontal": "this.horizontalClass", "class.k-slider-vertical": "this.verticalClass", "class.k-slider": "this.sliderClass", "class.k-disabled": "this.disabledClass" } }, queries: [{ propertyName: "labelTemplate", first: true, predicate: LabelTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrap"], descendants: true, static: true }, { propertyName: "track", first: true, predicate: ["track"], descendants: true, static: true }, { propertyName: "sliderSelection", first: true, predicate: ["sliderSelection"], descendants: true, static: true }, { propertyName: "ticksContainer", first: true, predicate: ["ticks"], descendants: true, read: ElementRef }, { propertyName: "ticks", first: true, predicate: ["ticks"], descendants: true }], ngImport: i0, template: ``, isInline: true });
|
|
186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SliderBase, decorators: [{
|
|
187
|
+
type: Component,
|
|
188
|
+
args: [{
|
|
189
|
+
selector: 'kendo-slider-base',
|
|
190
|
+
template: ``
|
|
191
|
+
}]
|
|
192
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { title: [{
|
|
193
|
+
type: Input
|
|
194
|
+
}], tickPlacement: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], vertical: [{
|
|
197
|
+
type: Input
|
|
198
|
+
}], min: [{
|
|
199
|
+
type: Input
|
|
200
|
+
}], max: [{
|
|
201
|
+
type: Input
|
|
202
|
+
}], smallStep: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}], largeStep: [{
|
|
205
|
+
type: Input
|
|
206
|
+
}], fixedTickWidth: [{
|
|
207
|
+
type: Input
|
|
208
|
+
}], disabled: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], readonly: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], tabindex: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], onFocus: [{
|
|
215
|
+
type: Output,
|
|
216
|
+
args: ['focus']
|
|
217
|
+
}], onBlur: [{
|
|
218
|
+
type: Output,
|
|
219
|
+
args: ['blur']
|
|
220
|
+
}], valueChange: [{
|
|
221
|
+
type: Output
|
|
222
|
+
}], direction: [{
|
|
223
|
+
type: HostBinding,
|
|
224
|
+
args: ['attr.dir']
|
|
225
|
+
}], horizontalClass: [{
|
|
226
|
+
type: HostBinding,
|
|
227
|
+
args: ['class.k-slider-horizontal']
|
|
228
|
+
}], verticalClass: [{
|
|
229
|
+
type: HostBinding,
|
|
230
|
+
args: ['class.k-slider-vertical']
|
|
231
|
+
}], sliderClass: [{
|
|
232
|
+
type: HostBinding,
|
|
233
|
+
args: ['class.k-slider']
|
|
234
|
+
}], disabledClass: [{
|
|
235
|
+
type: HostBinding,
|
|
236
|
+
args: ['class.k-disabled']
|
|
237
|
+
}], wrapper: [{
|
|
238
|
+
type: ViewChild,
|
|
239
|
+
args: ['wrap', { static: true }]
|
|
240
|
+
}], track: [{
|
|
241
|
+
type: ViewChild,
|
|
242
|
+
args: ['track', { static: true }]
|
|
243
|
+
}], sliderSelection: [{
|
|
244
|
+
type: ViewChild,
|
|
245
|
+
args: ['sliderSelection', { static: true }]
|
|
246
|
+
}], ticksContainer: [{
|
|
247
|
+
type: ViewChild,
|
|
248
|
+
args: ['ticks', { read: ElementRef, static: false }]
|
|
249
|
+
}], ticks: [{
|
|
250
|
+
type: ViewChild,
|
|
251
|
+
args: ['ticks', { static: false }]
|
|
252
|
+
}], labelTemplate: [{
|
|
253
|
+
type: ContentChild,
|
|
254
|
+
args: [LabelTemplateDirective, { static: false }]
|
|
255
|
+
}] } });
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { calculateFixedTrackSize, calculateTicksCount } from '../sliders-common/sliders-util';
|
|
6
|
+
import { subtract } from '../common/math';
|
|
7
|
+
/**
|
|
8
|
+
* @hidden
|
|
9
|
+
*/
|
|
10
|
+
export class SliderModelBase {
|
|
11
|
+
constructor(props, wrapper, track, renderer) {
|
|
12
|
+
this.props = props;
|
|
13
|
+
this.wrapper = wrapper;
|
|
14
|
+
this.track = track;
|
|
15
|
+
this.renderer = renderer;
|
|
16
|
+
this.props = props;
|
|
17
|
+
this.wrapper = wrapper;
|
|
18
|
+
this.track = track;
|
|
19
|
+
this.tickSizes = this.getTickSizes();
|
|
20
|
+
}
|
|
21
|
+
resizeTrack() {
|
|
22
|
+
const orientation = this.props.vertical ? 'height' : 'width';
|
|
23
|
+
const altOrientation = this.props.vertical ? 'width' : 'height';
|
|
24
|
+
const trackWidth = this.trackWidth();
|
|
25
|
+
this.track.parentElement.style[orientation] = `${trackWidth}px`;
|
|
26
|
+
this.track.parentElement.style[altOrientation] = '';
|
|
27
|
+
}
|
|
28
|
+
resizeTicks(ticksContainer, ticks) {
|
|
29
|
+
const dimension = this.props.vertical ? "height" : "width";
|
|
30
|
+
[...ticks].map((tick, index) => tick.style[dimension] = `${this.tickSizes[index]}px`);
|
|
31
|
+
if (this.props.vertical) {
|
|
32
|
+
this.adjustPadding(ticksContainer);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
resizeWrapper() {
|
|
36
|
+
const dimension = this.props.vertical ? "height" : "width";
|
|
37
|
+
const fixedTrackWidth = calculateFixedTrackSize(this.props);
|
|
38
|
+
const wrapperParentEl = this.wrapper.parentElement;
|
|
39
|
+
if (fixedTrackWidth) {
|
|
40
|
+
wrapperParentEl.style[dimension] = "auto";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
trackWidth() {
|
|
44
|
+
if (this.props.fixedTickWidth) {
|
|
45
|
+
return calculateFixedTrackSize(this.props);
|
|
46
|
+
}
|
|
47
|
+
return this.elementSize(this.track.parentElement);
|
|
48
|
+
}
|
|
49
|
+
getTickSizes() {
|
|
50
|
+
const { min, max, smallStep } = this.props;
|
|
51
|
+
const count = calculateTicksCount(min, max, smallStep);
|
|
52
|
+
const trackSize = this.trackWidth();
|
|
53
|
+
const distStep = trackSize / subtract(max, min);
|
|
54
|
+
const result = [];
|
|
55
|
+
let usedSpace = 0;
|
|
56
|
+
let endPoint = 0;
|
|
57
|
+
for (let i = 0; i < count; i++) {
|
|
58
|
+
if (i === 0 || i === count - 1) {
|
|
59
|
+
endPoint += (smallStep / 2) * distStep;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
endPoint += smallStep * distStep;
|
|
63
|
+
}
|
|
64
|
+
// ensure that the sum of the tick sizes does not exceed the track width
|
|
65
|
+
endPoint = +endPoint.toFixed(2) - 0.01;
|
|
66
|
+
const size = Math.round(endPoint - usedSpace);
|
|
67
|
+
result.push(size);
|
|
68
|
+
usedSpace += size;
|
|
69
|
+
}
|
|
70
|
+
if (usedSpace >= trackSize) {
|
|
71
|
+
result[result.length - 1] -= 1;
|
|
72
|
+
}
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
adjustPadding(ticksContainer) {
|
|
76
|
+
const totalTickSize = this.tickSizes.reduce((prev, curr) => prev + curr, 0);
|
|
77
|
+
const trackWidth = this.trackWidth();
|
|
78
|
+
const reminder = trackWidth - totalTickSize;
|
|
79
|
+
if (reminder !== 0) {
|
|
80
|
+
const padding = reminder + this.elementOffset(this.track);
|
|
81
|
+
ticksContainer.style.paddingTop = `${padding}px`;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
elementOffset(element) {
|
|
85
|
+
const { vertical } = this.props;
|
|
86
|
+
const style = getComputedStyle(element);
|
|
87
|
+
return parseInt(vertical ? style.bottom : style.left, 10);
|
|
88
|
+
}
|
|
89
|
+
elementSize(element) {
|
|
90
|
+
const { vertical } = this.props;
|
|
91
|
+
return vertical ? element.clientHeight : element.clientWidth;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
/* eslint-disable @angular-eslint/component-selector */
|
|
6
|
+
import { Component, Input, QueryList, ViewChildren, HostBinding, TemplateRef } from '@angular/core';
|
|
7
|
+
import { calculateTicksCount, calculateValueFromTick } from './sliders-util';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
/**
|
|
11
|
+
* @hidden
|
|
12
|
+
*/
|
|
13
|
+
class SliderTick {
|
|
14
|
+
constructor(value) {
|
|
15
|
+
this.value = value;
|
|
16
|
+
this.classes = {
|
|
17
|
+
'k-tick': true
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @hidden
|
|
23
|
+
*/
|
|
24
|
+
export class SliderTicksComponent {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.wrapperClasses = 'k-reset k-slider-items';
|
|
27
|
+
this.ticks = [];
|
|
28
|
+
}
|
|
29
|
+
ngOnChanges(_) {
|
|
30
|
+
this.createTicks();
|
|
31
|
+
}
|
|
32
|
+
createTicks() {
|
|
33
|
+
const count = calculateTicksCount(this.min, this.max, this.step);
|
|
34
|
+
const largeStep = this.largeStep;
|
|
35
|
+
const tickValueProps = {
|
|
36
|
+
max: this.max,
|
|
37
|
+
min: this.min,
|
|
38
|
+
smallStep: this.step
|
|
39
|
+
};
|
|
40
|
+
const result = [];
|
|
41
|
+
for (let i = 0; i < count; i++) {
|
|
42
|
+
result.push(new SliderTick(calculateValueFromTick(i, tickValueProps)));
|
|
43
|
+
if (largeStep && i % largeStep === 0) {
|
|
44
|
+
result[i].large = true;
|
|
45
|
+
result[i].classes['k-tick-large'] = true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (result.length > 0) {
|
|
49
|
+
Object.assign(result[0].classes, this.endTickClasses(true));
|
|
50
|
+
Object.assign(result[result.length - 1].classes, this.endTickClasses(false));
|
|
51
|
+
}
|
|
52
|
+
this.ticks = result;
|
|
53
|
+
}
|
|
54
|
+
endTickClasses(first) {
|
|
55
|
+
return {
|
|
56
|
+
'k-first': (first && !this.vertical) || (!first && this.vertical),
|
|
57
|
+
'k-last': (!first && !this.vertical) || (first && this.vertical)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
SliderTicksComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SliderTicksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
+
SliderTicksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SliderTicksComponent, selector: "[kendoSliderTicks]", inputs: { tickTitle: "tickTitle", vertical: "vertical", step: "step", largeStep: "largeStep", min: "min", max: "max", labelTemplate: "labelTemplate" }, host: { properties: { "class": "this.wrapperClasses" } }, viewQueries: [{ propertyName: "tickElements", predicate: ["tickElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
63
|
+
<li #tickElement *ngFor="let tick of ticks;"
|
|
64
|
+
[ngClass]="tick.classes"
|
|
65
|
+
title="{{ tickTitle(tick.value) }}"
|
|
66
|
+
role="presentation"
|
|
67
|
+
>
|
|
68
|
+
<ng-container [ngSwitch]="tick.large">
|
|
69
|
+
<span class="k-label" *ngSwitchCase="true">
|
|
70
|
+
<ng-container [ngTemplateOutlet]="labelTemplate || defaultLabel" [ngTemplateOutletContext]="tick">
|
|
71
|
+
</ng-container>
|
|
72
|
+
</span>
|
|
73
|
+
<ng-container *ngSwitchCase="false"> </ng-container>
|
|
74
|
+
</ng-container>
|
|
75
|
+
</li>
|
|
76
|
+
|
|
77
|
+
<ng-template #defaultLabel let-value="value">
|
|
78
|
+
{{ tickTitle(value) }}
|
|
79
|
+
</ng-template>
|
|
80
|
+
`, isInline: true, directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SliderTicksComponent, decorators: [{
|
|
82
|
+
type: Component,
|
|
83
|
+
args: [{
|
|
84
|
+
selector: '[kendoSliderTicks]',
|
|
85
|
+
template: `
|
|
86
|
+
<li #tickElement *ngFor="let tick of ticks;"
|
|
87
|
+
[ngClass]="tick.classes"
|
|
88
|
+
title="{{ tickTitle(tick.value) }}"
|
|
89
|
+
role="presentation"
|
|
90
|
+
>
|
|
91
|
+
<ng-container [ngSwitch]="tick.large">
|
|
92
|
+
<span class="k-label" *ngSwitchCase="true">
|
|
93
|
+
<ng-container [ngTemplateOutlet]="labelTemplate || defaultLabel" [ngTemplateOutletContext]="tick">
|
|
94
|
+
</ng-container>
|
|
95
|
+
</span>
|
|
96
|
+
<ng-container *ngSwitchCase="false"> </ng-container>
|
|
97
|
+
</ng-container>
|
|
98
|
+
</li>
|
|
99
|
+
|
|
100
|
+
<ng-template #defaultLabel let-value="value">
|
|
101
|
+
{{ tickTitle(value) }}
|
|
102
|
+
</ng-template>
|
|
103
|
+
`
|
|
104
|
+
}]
|
|
105
|
+
}], propDecorators: { wrapperClasses: [{
|
|
106
|
+
type: HostBinding,
|
|
107
|
+
args: ['class']
|
|
108
|
+
}], tickTitle: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], vertical: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], step: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], largeStep: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], min: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], max: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], labelTemplate: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], tickElements: [{
|
|
123
|
+
type: ViewChildren,
|
|
124
|
+
args: ['tickElement']
|
|
125
|
+
}] } });
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { NgModule } from '@angular/core';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { SliderTicksComponent } from './slider-ticks.component';
|
|
8
|
+
import { LabelTemplateDirective } from './label-template.directive';
|
|
9
|
+
import { DraggableModule, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/**
|
|
12
|
+
* @hidden
|
|
13
|
+
*/
|
|
14
|
+
export class SlidersCommonModule {
|
|
15
|
+
}
|
|
16
|
+
SlidersCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SlidersCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
SlidersCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SlidersCommonModule, declarations: [SliderTicksComponent,
|
|
18
|
+
LabelTemplateDirective], imports: [CommonModule, DraggableModule, EventsModule, ResizeSensorModule], exports: [LabelTemplateDirective,
|
|
19
|
+
SliderTicksComponent,
|
|
20
|
+
DraggableModule,
|
|
21
|
+
EventsModule,
|
|
22
|
+
ResizeSensorModule] });
|
|
23
|
+
SlidersCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SlidersCommonModule, imports: [[CommonModule, DraggableModule, EventsModule, ResizeSensorModule], DraggableModule,
|
|
24
|
+
EventsModule,
|
|
25
|
+
ResizeSensorModule] });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SlidersCommonModule, decorators: [{
|
|
27
|
+
type: NgModule,
|
|
28
|
+
args: [{
|
|
29
|
+
declarations: [
|
|
30
|
+
SliderTicksComponent,
|
|
31
|
+
LabelTemplateDirective
|
|
32
|
+
],
|
|
33
|
+
exports: [
|
|
34
|
+
LabelTemplateDirective,
|
|
35
|
+
SliderTicksComponent,
|
|
36
|
+
DraggableModule,
|
|
37
|
+
EventsModule,
|
|
38
|
+
ResizeSensorModule
|
|
39
|
+
],
|
|
40
|
+
imports: [CommonModule, DraggableModule, EventsModule, ResizeSensorModule]
|
|
41
|
+
}]
|
|
42
|
+
}] });
|