cps-ui-kit 17.3.0 → 17.4.0
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/README.md +1 -0
- package/esm2022/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +30 -12
- package/esm2022/lib/components/cps-button/cps-button.component.mjs +2 -2
- package/esm2022/lib/components/cps-button-toggle/cps-button-toggle.component.mjs +1 -1
- package/esm2022/lib/components/cps-scheduler/cps-scheduler.component.mjs +672 -0
- package/esm2022/lib/components/cps-scheduler/cps-scheduler.utils.mjs +604 -0
- package/esm2022/lib/components/cps-select/cps-select.component.mjs +2 -2
- package/esm2022/lib/components/cps-table/components/internal/table-column-filter-constraint/table-column-filter-constraint.component.mjs +1 -1
- package/esm2022/lib/components/cps-table/cps-table.component.mjs +1 -1
- package/esm2022/lib/components/cps-timepicker/cps-timepicker.component.mjs +10 -3
- package/esm2022/lib/components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.mjs +1 -1
- package/esm2022/lib/directives/cps-tooltip/cps-tooltip.directive.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/cps-ui-kit.mjs +1304 -18
- package/fesm2022/cps-ui-kit.mjs.map +1 -1
- package/lib/components/cps-autocomplete/cps-autocomplete.component.d.ts +10 -4
- package/lib/components/cps-button/cps-button.component.d.ts +1 -1
- package/lib/components/cps-scheduler/cps-scheduler.component.d.ts +146 -0
- package/lib/components/cps-scheduler/cps-scheduler.utils.d.ts +1 -0
- package/lib/components/cps-select/cps-select.component.d.ts +1 -1
- package/lib/components/cps-timepicker/cps-timepicker.component.d.ts +6 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
package/fesm2022/cps-ui-kit.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import * as i0 from '@angular/core';
|
|
|
4
4
|
import { Component, Input, Directive, HostListener, EventEmitter, Self, Optional, Output, ViewChild, Pipe, PLATFORM_ID, ChangeDetectionStrategy, ViewEncapsulation, Inject, HostBinding, InjectionToken, Host, ContentChild, ViewChildren, RendererStyleFlags2, TemplateRef, ContentChildren, Injectable, createComponent } from '@angular/core';
|
|
5
5
|
import { Subscription, fromEvent, debounceTime, distinctUntilChanged, take, catchError, of, Subject } from 'rxjs';
|
|
6
6
|
import * as i1 from '@angular/forms';
|
|
7
|
-
import { FormsModule } from '@angular/forms';
|
|
7
|
+
import { FormsModule, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
8
8
|
import { isEqual, cloneDeep } from 'lodash-es';
|
|
9
9
|
import * as i3 from 'primeng/virtualscroller';
|
|
10
10
|
import { VirtualScrollerModule } from 'primeng/virtualscroller';
|
|
@@ -1791,7 +1791,7 @@ class CpsSelectComponent {
|
|
|
1791
1791
|
constructor(_control) {
|
|
1792
1792
|
this._control = _control;
|
|
1793
1793
|
/**
|
|
1794
|
-
*
|
|
1794
|
+
* Label of the select component.
|
|
1795
1795
|
* @group Props
|
|
1796
1796
|
*/
|
|
1797
1797
|
this.label = '';
|
|
@@ -3071,7 +3071,7 @@ class CpsAutocompleteComponent {
|
|
|
3071
3071
|
this._control = _control;
|
|
3072
3072
|
this._labelByValue = _labelByValue;
|
|
3073
3073
|
/**
|
|
3074
|
-
* Label of the
|
|
3074
|
+
* Label of the autocomplete component.
|
|
3075
3075
|
* @group Props
|
|
3076
3076
|
*/
|
|
3077
3077
|
this.label = '';
|
|
@@ -3101,7 +3101,7 @@ class CpsAutocompleteComponent {
|
|
|
3101
3101
|
*/
|
|
3102
3102
|
this.disabled = false;
|
|
3103
3103
|
/**
|
|
3104
|
-
* Width of the
|
|
3104
|
+
* Width of the autocomplete component, a number denoting pixels or a string.
|
|
3105
3105
|
* @group Props
|
|
3106
3106
|
*/
|
|
3107
3107
|
this.width = '100%';
|
|
@@ -3255,6 +3255,11 @@ class CpsAutocompleteComponent {
|
|
|
3255
3255
|
* @group Props
|
|
3256
3256
|
*/
|
|
3257
3257
|
this.appearance = 'outlined';
|
|
3258
|
+
/**
|
|
3259
|
+
* Index of empty value in options array. Applicable only if multiple is false.
|
|
3260
|
+
* @group Props
|
|
3261
|
+
*/
|
|
3262
|
+
this.emptyOptionIndex = -1;
|
|
3258
3263
|
/**
|
|
3259
3264
|
* Value of the autocomplete.
|
|
3260
3265
|
* @group Props
|
|
@@ -3305,6 +3310,9 @@ class CpsAutocompleteComponent {
|
|
|
3305
3310
|
if (this.multiple && !this._value) {
|
|
3306
3311
|
this._value = [];
|
|
3307
3312
|
}
|
|
3313
|
+
if (!this.multiple && this._value === undefined) {
|
|
3314
|
+
this._value = this._getEmptyValue();
|
|
3315
|
+
}
|
|
3308
3316
|
this._statusChangesSubscription = this._control?.statusChanges?.subscribe(() => {
|
|
3309
3317
|
this._checkErrors();
|
|
3310
3318
|
});
|
|
@@ -3430,7 +3438,7 @@ class CpsAutocompleteComponent {
|
|
|
3430
3438
|
if (this.openOnClear) {
|
|
3431
3439
|
this._toggleOptions(true);
|
|
3432
3440
|
}
|
|
3433
|
-
const val = this.multiple ? [] :
|
|
3441
|
+
const val = this.multiple ? [] : this._getEmptyValue();
|
|
3434
3442
|
this.updateValue(val);
|
|
3435
3443
|
}
|
|
3436
3444
|
this._clearInput();
|
|
@@ -3536,6 +3544,20 @@ class CpsAutocompleteComponent {
|
|
|
3536
3544
|
const currentLen = this.filteredOptions?.length || 0;
|
|
3537
3545
|
this.virtualListHeight = Math.min(this.virtualScrollItemSize * currentLen, 240);
|
|
3538
3546
|
}
|
|
3547
|
+
isEmptyValue() {
|
|
3548
|
+
return (this.value === null ||
|
|
3549
|
+
this.value === undefined ||
|
|
3550
|
+
(typeof this.value === 'string' && this.value.trim() === '') ||
|
|
3551
|
+
Number.isNaN(this.value));
|
|
3552
|
+
}
|
|
3553
|
+
_getEmptyValue() {
|
|
3554
|
+
const option = this.options[this.emptyOptionIndex];
|
|
3555
|
+
return !option
|
|
3556
|
+
? undefined
|
|
3557
|
+
: this.returnObject
|
|
3558
|
+
? option
|
|
3559
|
+
: option[this.optionValue];
|
|
3560
|
+
}
|
|
3539
3561
|
_toggleOptions(show) {
|
|
3540
3562
|
if (this.disabled || this.isOpened === show)
|
|
3541
3563
|
return;
|
|
@@ -3695,7 +3717,7 @@ class CpsAutocompleteComponent {
|
|
|
3695
3717
|
if (!searchVal) {
|
|
3696
3718
|
if (this.multiple)
|
|
3697
3719
|
return;
|
|
3698
|
-
this.updateValue(
|
|
3720
|
+
this.updateValue(this._getEmptyValue());
|
|
3699
3721
|
this._closeAndClear();
|
|
3700
3722
|
return;
|
|
3701
3723
|
}
|
|
@@ -3734,14 +3756,8 @@ class CpsAutocompleteComponent {
|
|
|
3734
3756
|
this.focusInput();
|
|
3735
3757
|
}, 0);
|
|
3736
3758
|
}
|
|
3737
|
-
isEmptyValue() {
|
|
3738
|
-
return (this.value === null ||
|
|
3739
|
-
this.value === undefined ||
|
|
3740
|
-
(typeof this.value === 'string' && this.value.trim() === '') ||
|
|
3741
|
-
Number.isNaN(this.value));
|
|
3742
|
-
}
|
|
3743
3759
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsAutocompleteComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: LabelByValuePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3744
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CpsAutocompleteComponent, isStandalone: true, selector: "cps-autocomplete", inputs: { label: "label", placeholder: "placeholder", hint: "hint", returnObject: "returnObject", multiple: "multiple", disabled: "disabled", width: "width", selectAll: "selectAll", showChevron: "showChevron", withOptionsAliases: "withOptionsAliases", useOptionsAliasesWhenNoMatch: "useOptionsAliasesWhenNoMatch", optionAlias: "optionAlias", chips: "chips", closableChips: "closableChips", clearable: "clearable", openOnClear: "openOnClear", options: "options", keepInitialOrder: "keepInitialOrder", optionLabel: "optionLabel", optionValue: "optionValue", optionInfo: "optionInfo", hideDetails: "hideDetails", persistentClear: "persistentClear", prefixIcon: "prefixIcon", prefixIconSize: "prefixIconSize", loading: "loading", emptyMessage: "emptyMessage", showEmptyMessage: "showEmptyMessage", virtualScroll: "virtualScroll", numToleratedItems: "numToleratedItems", externalError: "externalError", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", appearance: "appearance", _value: ["value", "_value"] }, outputs: { valueChanged: "valueChanged", blurred: "blurred" }, providers: [LabelByValuePipe, CheckOptionSelectedPipe], viewQueries: [{ propertyName: "autocompleteBox", first: true, predicate: ["autocompleteBox"], descendants: true }, { propertyName: "autocompleteContainer", first: true, predicate: ["autocompleteContainer"], descendants: true }, { propertyName: "virtualList", first: true, predicate: ["virtualList"], descendants: true }, { propertyName: "optionsMenu", first: true, predicate: ["optionsMenu"], descendants: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], ngImport: i0, template: "<div\n data-cy-id=\"cps-autocomplete\"\n [ngStyle]=\"{ width: cvtWidth }\"\n class=\"cps-autocomplete\"\n tabindex=\"1\"\n [ngClass]=\"{\n disabled: disabled,\n error: error || externalError,\n active: isOpened\n }\"\n #autocompleteContainer>\n <div class=\"cps-autocomplete-label\" *ngIf=\"label\">\n <label>{{ label }}</label>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-autocomplete-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div\n (keydown)=\"onContainerKeyDown($event)\"\n class=\"cps-autocomplete-container\"\n [class.focused]=\"isOpened\"\n [ngClass]=\"{\n 'persistent-clear': persistentClear,\n borderless: appearance === 'borderless',\n underlined: appearance === 'underlined'\n }\">\n <div\n class=\"cps-autocomplete-box\"\n #autocompleteBox\n (mousedown)=\"onBoxClick()\">\n <div class=\"cps-autocomplete-box-area\">\n <cps-icon\n *ngIf=\"prefixIcon\"\n [icon]=\"prefixIcon\"\n [style.color]=\"disabled ? '#9a9595' : null\"\n [size]=\"prefixIconSize\"\n class=\"prefix-icon\">\n </cps-icon>\n <div\n class=\"cps-autocomplete-box-items\"\n *ngIf=\"\n (!multiple && !isEmptyValue()) || (value?.length > 0 && multiple);\n else autocompleteInput\n \">\n <span *ngIf=\"!multiple\" class=\"single-item\">\n <div class=\"single-item-selection\">\n <span [style.opacity]=\"activeSingle ? 0 : 1\">{{\n returnObject\n ? value[optionLabel]\n : (value | labelByValue : options : optionValue : optionLabel)\n }}</span>\n </div>\n <ng-container\n *ngTemplateOutlet=\"\n autocompleteInput;\n context: {\n inputClass: 'single-item-input',\n inputStyle: activeSingle ? 'opacity: 1' : null\n }\n \">\n </ng-container>\n </span>\n\n <div *ngIf=\"multiple && !chips\" class=\"text-group\">\n <div\n *ngFor=\"let val of value; let last = last\"\n class=\"text-group-item\"\n [ngClass]=\"{ 'about-to-remove': last && backspaceClickedOnce }\">\n {{\n returnObject\n ? val[optionLabel]\n : (val | labelByValue : options : optionValue : optionLabel)\n }}{{ !last ? ',' : '' }}\n </div>\n <ng-container\n *ngTemplateOutlet=\"\n autocompleteInput;\n context: {\n inputClass: 'multi-item-input'\n }\n \"></ng-container>\n </div>\n\n <div *ngIf=\"multiple && chips\" class=\"chips-group\">\n <cps-chip\n *ngFor=\"let val of value; let last = last\"\n [disabled]=\"disabled\"\n [closable]=\"closableChips\"\n (closed)=\"select(val, true)\"\n [ngClass]=\"{ 'about-to-remove': last && backspaceClickedOnce }\"\n [label]=\"\n returnObject\n ? val[optionLabel]\n : (val | labelByValue : options : optionValue : optionLabel)\n \">\n </cps-chip>\n <ng-container\n *ngTemplateOutlet=\"\n autocompleteInput;\n context: {\n inputClass: 'multi-chip-input'\n }\n \"></ng-container>\n </div>\n </div>\n <span class=\"cps-autocomplete-box-icons\">\n <span\n *ngIf=\"clearable && !disabled\"\n [style.visibility]=\"\n persistentClear ||\n (!persistentClear &&\n ((multiple && value?.length) || (!multiple && !isEmptyValue())))\n ? 'visible'\n : 'hidden'\n \"\n class=\"cps-autocomplete-box-clear-icon\">\n <cps-icon\n icon=\"delete\"\n size=\"small\"\n (click)=\"clear($event)\"></cps-icon>\n </span>\n <span\n *ngIf=\"showChevron\"\n class=\"cps-autocomplete-box-chevron\"\n (mousedown)=\"onChevronClick($event)\">\n <cps-icon\n icon=\"chevron-down\"\n size=\"small\"\n [color]=\"disabled ? 'text-light' : 'text-dark'\"></cps-icon>\n </span>\n </span>\n </div>\n </div>\n\n <cps-menu\n #optionsMenu\n [withArrow]=\"false\"\n (beforeMenuHidden)=\"onBeforeOptionsHidden()\"\n hideTransitionOptions=\"0s linear\"\n containerClass=\"cps-autocomplete-options-menu\">\n <div\n #optionsList\n class=\"cps-autocomplete-options\"\n [ngStyle]=\"{\n width: autocompleteBoxWidth + 'px'\n }\">\n <div\n *ngIf=\"showEmptyMessage && filteredOptions.length < 1\"\n class=\"cps-autocomplete-options-empty\">\n {{ emptyMessage }}\n </div>\n <ng-container *ngIf=\"!virtualScroll\">\n <div\n class=\"cps-autocomplete-options-option select-all-option\"\n [class.allselected]=\"value?.length === options.length\"\n *ngIf=\"\n multiple &&\n selectAll &&\n filteredOptions.length === options.length &&\n options.length > 1\n \"\n (click)=\"toggleAll()\">\n <span class=\"cps-autocomplete-options-option-left\">\n <span\n *ngIf=\"multiple\"\n class=\"cps-autocomplete-options-option-check\">\n </span>\n <span class=\"cps-autocomplete-options-option-label\"\n >Select all</span\n >\n </span>\n </div>\n <ng-container *ngFor=\"let item of filteredOptions\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n item: item\n }\n \"></ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"virtualScroll\">\n <p-virtualScroller\n #virtualList\n [value]=\"filteredOptions\"\n [delay]=\"0\"\n [scrollHeight]=\"virtualListHeight + 'px'\"\n [options]=\"{ numToleratedItems: numToleratedItems }\"\n [itemSize]=\"virtualScrollItemSize\">\n <ng-template pTemplate=\"item\" let-item>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n item: item\n }\n \"></ng-container>\n </ng-template>\n </p-virtualScroller>\n </ng-container>\n </div>\n </cps-menu>\n <cps-progress-linear\n *ngIf=\"loading\"\n height=\"3\"\n radius=\"4\"\n opacity=\"0.3\"\n class=\"autocomplete-progress-bar\"\n bgColor=\"transparent\">\n </cps-progress-linear>\n </div>\n <div\n *ngIf=\"!error && !externalError && !hideDetails\"\n class=\"cps-autocomplete-hint\">\n {{ hint }}\n </div>\n <div\n *ngIf=\"(error || externalError) && !hideDetails\"\n class=\"cps-autocomplete-error\">\n {{ error }}\n </div>\n</div>\n\n<ng-template\n #autocompleteInput\n let-inputClass=\"inputClass\"\n let-inputStyle=\"inputStyle\">\n <input\n class=\"cps-autocomplete-box-input\"\n spellcheck=\"false\"\n [class]=\"inputClass\"\n [style]=\"inputStyle\"\n [placeholder]=\"\n (!multiple && isEmptyValue()) || (value?.length < 1 && multiple)\n ? placeholder\n : ''\n \"\n (input)=\"filterOptions($event)\"\n (keydown)=\"onInputKeyDown($event)\"\n [(ngModel)]=\"inputText\"\n (blur)=\"onBlur()\" />\n</ng-template>\n\n<ng-template #itemTemplate let-item=\"item\">\n <div\n class=\"cps-autocomplete-options-option\"\n (click)=\"onOptionClick(item)\"\n [class.selected]=\"\n item | checkOptionSelected : value : multiple : returnObject : optionValue\n \">\n <span class=\"cps-autocomplete-options-option-left\">\n <span *ngIf=\"multiple\" class=\"cps-autocomplete-options-option-check\">\n </span>\n <span\n data-cy-id=\"cps-autocomplete-options\"\n class=\"cps-autocomplete-options-option-label\"\n [class.virtual-row]=\"virtualScroll\"\n >{{ item[optionLabel] }}</span\n >\n </span>\n\n <span\n class=\"cps-autocomplete-options-option-right\"\n [class.virtual-row]=\"virtualScroll\"\n >{{ item[optionInfo] }}</span\n >\n </div>\n</ng-template>\n", styles: [":host{display:flex}:host .cps-autocomplete{position:relative;width:100%;outline:none;font-family:Source Sans Pro,sans-serif;font-weight:400;display:grid}:host .cps-autocomplete .cps-autocomplete-container{position:relative}:host .cps-autocomplete .cps-autocomplete-container .autocomplete-progress-bar{position:absolute;bottom:1px;padding:0 1px}:host .cps-autocomplete .cps-autocomplete-container.focused .cps-autocomplete-box{background:#fff!important}:host .cps-autocomplete .cps-autocomplete-container.borderless .cps-autocomplete-box,:host .cps-autocomplete .cps-autocomplete-container.underlined .cps-autocomplete-box{line-height:1;border:none!important;border-radius:0}:host .cps-autocomplete .cps-autocomplete-container.underlined .cps-autocomplete-box{border-bottom:1px solid var(--cps-color-line-light)!important}:host .cps-autocomplete.active .cps-autocomplete-box{border:1px solid var(--cps-color-calm)}:host .cps-autocomplete.active .cps-autocomplete-box .cps-autocomplete-box-area .prefix-icon{color:var(--cps-color-calm)}:host .cps-autocomplete.active .cps-autocomplete-box .cps-autocomplete-box-chevron{top:22px;transform:rotate(180deg)}:host .cps-autocomplete .cps-autocomplete-label{align-items:center;display:inline-flex;margin-bottom:.2rem;color:var(--cps-color-text-dark);font-size:.875rem;font-weight:600}:host .cps-autocomplete .cps-autocomplete-label .cps-autocomplete-label-info-circle{margin-left:8px;pointer-events:all}:host .cps-autocomplete .persistent-clear .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon,:host .cps-autocomplete .cps-autocomplete-container.focused .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon,:host .cps-autocomplete .cps-autocomplete-container:hover .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon{opacity:.5}:host .cps-autocomplete .cps-autocomplete-box{overflow:hidden;min-height:38px;width:100%;cursor:text;background:#fff;font-size:1rem;outline:none;padding:0 12px;border-radius:4px;border:1px solid var(--cps-color-line-light);transition-duration:.2s}:host .cps-autocomplete .cps-autocomplete-box-area{display:flex;min-height:36px;align-items:center}:host .cps-autocomplete .cps-autocomplete-box-area .prefix-icon{margin-right:.5rem;color:var(--cps-color-text-dark)}:host .cps-autocomplete .cps-autocomplete-box-input{min-height:36px;padding:0;background-color:transparent;width:0;min-width:30px;flex-grow:1;font-size:1rem;color:var(--cps-color-text-dark);border-style:none;outline:none;font-family:Source Sans Pro,sans-serif}:host .cps-autocomplete .cps-autocomplete-box-input::placeholder{color:var(--cps-color-text-lightest);font-style:italic;opacity:1}:host .cps-autocomplete .cps-autocomplete-box-items{display:inline-flex;flex-direction:column;width:100%;padding-top:3px;padding-bottom:3px;min-height:36px;justify-content:center;position:relative}:host .cps-autocomplete .cps-autocomplete-box-items .single-item{color:var(--cps-color-text-dark);display:inline-flex}:host .cps-autocomplete .cps-autocomplete-box-items .single-item-selection{display:inline-flex;letter-spacing:inherit;line-height:inherit;max-width:100%}:host .cps-autocomplete .cps-autocomplete-box-items .single-item-input{opacity:0;min-width:0;align-self:flex-start;flex:1 1;transition:none;position:absolute;top:0;bottom:0;width:100%;padding-inline-start:inherit;padding-inline-end:inherit}:host .cps-autocomplete .cps-autocomplete-box-items .multi-chip-input{min-height:30px}:host .cps-autocomplete .cps-autocomplete-box-items .multi-item-input{min-height:28px}:host .cps-autocomplete .cps-autocomplete-box-items .chips-group{display:inline-flex;flex-wrap:wrap;align-items:center}:host .cps-autocomplete .cps-autocomplete-box-items .chips-group cps-chip{padding-bottom:3px;padding-top:3px;padding-right:4px}:host .cps-autocomplete .cps-autocomplete-box-items .text-group{color:var(--cps-color-text-dark);align-items:center;display:inline-flex;flex-wrap:wrap}:host .cps-autocomplete .cps-autocomplete-box-items .text-group .text-group-item{padding-bottom:3px;padding-top:3px;padding-right:4px}:host .cps-autocomplete .cps-autocomplete-box:hover{border:1px solid var(--cps-color-calm)}:host .cps-autocomplete .cps-autocomplete-box:hover .cps-autocomplete-box-area .prefix-icon{color:var(--cps-color-calm)}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons{display:flex}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon{cursor:pointer;display:flex;color:var(--cps-color-calm);margin-left:8px}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon{opacity:0;transition-duration:.2s}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon:hover{opacity:1!important}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-chevron{display:flex;margin-left:8px;transition-duration:.2s;cursor:pointer}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-chevron:hover ::ng-deep cps-icon .cps-icon{color:var(--cps-color-calm)!important}:host .cps-autocomplete .cps-autocomplete-hint{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}:host .cps-autocomplete .cps-autocomplete-error{color:var(--cps-color-error);font-weight:700;font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}:host .cps-autocomplete.disabled{pointer-events:none}:host .cps-autocomplete.disabled .cps-autocomplete-box{background:#f7f7f7}:host .cps-autocomplete.disabled .cps-autocomplete-box-items{color:var(--cps-color-text-light)}:host .cps-autocomplete.disabled .cps-autocomplete-box-items .text-group,:host .cps-autocomplete.disabled .cps-autocomplete-box-items .single-item{color:var(--cps-color-text-light)}:host .cps-autocomplete.disabled .cps-autocomplete-label{color:var(--cps-color-text-mild)}:host .cps-autocomplete.error .cps-autocomplete-box{border-color:var(--cps-color-error)!important;background:#fef3f2}:host .about-to-remove{color:var(--cps-color-text-light)}:host .about-to-remove ::ng-deep .cps-chip{background-color:var(--cps-color-bg-mid)}.cps-autocomplete-options{font-family:Source Sans Pro,sans-serif;background:#fff;overflow-x:hidden;max-height:242px;overflow-y:auto}.cps-autocomplete-options .cps-autocomplete-options-empty{padding:11px;font-size:16px;cursor:default;color:var(--cps-color-text-dark)}.cps-autocomplete-options .cps-autocomplete-options-option{padding:12px;justify-content:space-between;display:flex;cursor:pointer}.cps-autocomplete-options .cps-autocomplete-options-option:hover{background:var(--cps-color-highlight-hover)}.cps-autocomplete-options .cps-autocomplete-options-option-label{color:var(--cps-color-text-dark)}.cps-autocomplete-options .cps-autocomplete-options-option-left{display:flex;align-items:center;margin-right:8px}.cps-autocomplete-options .cps-autocomplete-options-option-right{color:var(--cps-color-text-light);text-align:right}.cps-autocomplete-options .cps-autocomplete-options-option-check{background-color:transparent;border:0;width:16px;height:16px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0,0,.2,.1),background-color 90ms cubic-bezier(0,0,.2,.1);margin-right:8px;opacity:0}.cps-autocomplete-options .cps-autocomplete-options-option-check:after{color:var(--cps-color-calm);top:4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box;position:absolute;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.cps-autocomplete-options .cps-autocomplete-options-option.selected,.cps-autocomplete-options .cps-autocomplete-options-option.allselected{font-weight:600}.cps-autocomplete-options .cps-autocomplete-options-option.selected .cps-autocomplete-options-option-label,.cps-autocomplete-options .cps-autocomplete-options-option.allselected .cps-autocomplete-options-option-label{color:var(--cps-color-calm)}.cps-autocomplete-options .cps-autocomplete-options-option.selected .cps-autocomplete-options-option-check,.cps-autocomplete-options .cps-autocomplete-options-option.allselected .cps-autocomplete-options-option-check{opacity:1}.cps-autocomplete-options .cps-autocomplete-options-option.selected{background:var(--cps-color-highlight-selected)}.cps-autocomplete-options .cps-autocomplete-options-option.highlighten{background:var(--cps-color-highlight-active)}.cps-autocomplete-options .cps-autocomplete-options-option.selected.highlighten{background:var(--cps-color-highlight-selected-dark)}.cps-autocomplete-options .select-all-option{border-bottom:1px solid lightgrey;font-weight:600}.cps-autocomplete-options ::ng-deep .p-virtualscroller-list.p-scroller{overflow-anchor:none}.cps-autocomplete-options .virtual-row{white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsChipComponent, selector: "cps-chip", inputs: ["label", "icon", "iconColor", "iconPosition", "closable", "disabled"], outputs: ["closed"] }, { kind: "component", type: CpsProgressLinearComponent, selector: "cps-progress-linear", inputs: ["width", "height", "color", "bgColor", "opacity", "radius"] }, { kind: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }, { kind: "pipe", type: LabelByValuePipe, name: "labelByValue" }, { kind: "pipe", type: CheckOptionSelectedPipe, name: "checkOptionSelected" }, { kind: "ngmodule", type: VirtualScrollerModule }, { kind: "component", type: i3.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "options", "delay"], outputs: ["onLazyLoad"] }, { kind: "directive", type: i1$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "persistent", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }] }); }
|
|
3760
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CpsAutocompleteComponent, isStandalone: true, selector: "cps-autocomplete", inputs: { label: "label", placeholder: "placeholder", hint: "hint", returnObject: "returnObject", multiple: "multiple", disabled: "disabled", width: "width", selectAll: "selectAll", showChevron: "showChevron", withOptionsAliases: "withOptionsAliases", useOptionsAliasesWhenNoMatch: "useOptionsAliasesWhenNoMatch", optionAlias: "optionAlias", chips: "chips", closableChips: "closableChips", clearable: "clearable", openOnClear: "openOnClear", options: "options", keepInitialOrder: "keepInitialOrder", optionLabel: "optionLabel", optionValue: "optionValue", optionInfo: "optionInfo", hideDetails: "hideDetails", persistentClear: "persistentClear", prefixIcon: "prefixIcon", prefixIconSize: "prefixIconSize", loading: "loading", emptyMessage: "emptyMessage", showEmptyMessage: "showEmptyMessage", virtualScroll: "virtualScroll", numToleratedItems: "numToleratedItems", externalError: "externalError", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", appearance: "appearance", emptyOptionIndex: "emptyOptionIndex", _value: ["value", "_value"] }, outputs: { valueChanged: "valueChanged", blurred: "blurred" }, providers: [LabelByValuePipe, CheckOptionSelectedPipe], viewQueries: [{ propertyName: "autocompleteBox", first: true, predicate: ["autocompleteBox"], descendants: true }, { propertyName: "autocompleteContainer", first: true, predicate: ["autocompleteContainer"], descendants: true }, { propertyName: "virtualList", first: true, predicate: ["virtualList"], descendants: true }, { propertyName: "optionsMenu", first: true, predicate: ["optionsMenu"], descendants: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }], ngImport: i0, template: "<div\n data-cy-id=\"cps-autocomplete\"\n [ngStyle]=\"{ width: cvtWidth }\"\n class=\"cps-autocomplete\"\n tabindex=\"1\"\n [ngClass]=\"{\n disabled: disabled,\n error: error || externalError,\n active: isOpened\n }\"\n #autocompleteContainer>\n <div class=\"cps-autocomplete-label\" *ngIf=\"label\">\n <label>{{ label }}</label>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-autocomplete-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div\n (keydown)=\"onContainerKeyDown($event)\"\n class=\"cps-autocomplete-container\"\n [class.focused]=\"isOpened\"\n [ngClass]=\"{\n 'persistent-clear': persistentClear,\n borderless: appearance === 'borderless',\n underlined: appearance === 'underlined'\n }\">\n <div\n class=\"cps-autocomplete-box\"\n #autocompleteBox\n (mousedown)=\"onBoxClick()\">\n <div class=\"cps-autocomplete-box-area\">\n <cps-icon\n *ngIf=\"prefixIcon\"\n [icon]=\"prefixIcon\"\n [style.color]=\"disabled ? '#9a9595' : null\"\n [size]=\"prefixIconSize\"\n class=\"prefix-icon\">\n </cps-icon>\n <div\n class=\"cps-autocomplete-box-items\"\n *ngIf=\"\n (!multiple && !isEmptyValue()) || (value?.length > 0 && multiple);\n else autocompleteInput\n \">\n <span *ngIf=\"!multiple\" class=\"single-item\">\n <div class=\"single-item-selection\">\n <span [style.opacity]=\"activeSingle ? 0 : 1\">{{\n returnObject\n ? value[optionLabel]\n : (value | labelByValue : options : optionValue : optionLabel)\n }}</span>\n </div>\n <ng-container\n *ngTemplateOutlet=\"\n autocompleteInput;\n context: {\n inputClass: 'single-item-input',\n inputStyle: activeSingle ? 'opacity: 1' : null\n }\n \">\n </ng-container>\n </span>\n\n <div *ngIf=\"multiple && !chips\" class=\"text-group\">\n <div\n *ngFor=\"let val of value; let last = last\"\n class=\"text-group-item\"\n [ngClass]=\"{ 'about-to-remove': last && backspaceClickedOnce }\">\n {{\n returnObject\n ? val[optionLabel]\n : (val | labelByValue : options : optionValue : optionLabel)\n }}{{ !last ? ',' : '' }}\n </div>\n <ng-container\n *ngTemplateOutlet=\"\n autocompleteInput;\n context: {\n inputClass: 'multi-item-input'\n }\n \"></ng-container>\n </div>\n\n <div *ngIf=\"multiple && chips\" class=\"chips-group\">\n <cps-chip\n *ngFor=\"let val of value; let last = last\"\n [disabled]=\"disabled\"\n [closable]=\"closableChips\"\n (closed)=\"select(val, true)\"\n [ngClass]=\"{ 'about-to-remove': last && backspaceClickedOnce }\"\n [label]=\"\n returnObject\n ? val[optionLabel]\n : (val | labelByValue : options : optionValue : optionLabel)\n \">\n </cps-chip>\n <ng-container\n *ngTemplateOutlet=\"\n autocompleteInput;\n context: {\n inputClass: 'multi-chip-input'\n }\n \"></ng-container>\n </div>\n </div>\n <span class=\"cps-autocomplete-box-icons\">\n <span\n *ngIf=\"clearable && !disabled\"\n [style.visibility]=\"\n persistentClear ||\n (!persistentClear &&\n ((multiple && value?.length) || (!multiple && !isEmptyValue())))\n ? 'visible'\n : 'hidden'\n \"\n class=\"cps-autocomplete-box-clear-icon\">\n <cps-icon\n icon=\"delete\"\n size=\"small\"\n (click)=\"clear($event)\"></cps-icon>\n </span>\n <span\n *ngIf=\"showChevron\"\n class=\"cps-autocomplete-box-chevron\"\n (mousedown)=\"onChevronClick($event)\">\n <cps-icon\n icon=\"chevron-down\"\n size=\"small\"\n [color]=\"disabled ? 'text-light' : 'text-dark'\"></cps-icon>\n </span>\n </span>\n </div>\n </div>\n\n <cps-menu\n #optionsMenu\n [withArrow]=\"false\"\n (beforeMenuHidden)=\"onBeforeOptionsHidden()\"\n hideTransitionOptions=\"0s linear\"\n containerClass=\"cps-autocomplete-options-menu\">\n <div\n #optionsList\n class=\"cps-autocomplete-options\"\n [ngStyle]=\"{\n width: autocompleteBoxWidth + 'px'\n }\">\n <div\n *ngIf=\"showEmptyMessage && filteredOptions.length < 1\"\n class=\"cps-autocomplete-options-empty\">\n {{ emptyMessage }}\n </div>\n <ng-container *ngIf=\"!virtualScroll\">\n <div\n class=\"cps-autocomplete-options-option select-all-option\"\n [class.allselected]=\"value?.length === options.length\"\n *ngIf=\"\n multiple &&\n selectAll &&\n filteredOptions.length === options.length &&\n options.length > 1\n \"\n (click)=\"toggleAll()\">\n <span class=\"cps-autocomplete-options-option-left\">\n <span\n *ngIf=\"multiple\"\n class=\"cps-autocomplete-options-option-check\">\n </span>\n <span class=\"cps-autocomplete-options-option-label\"\n >Select all</span\n >\n </span>\n </div>\n <ng-container *ngFor=\"let item of filteredOptions\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n item: item\n }\n \"></ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"virtualScroll\">\n <p-virtualScroller\n #virtualList\n [value]=\"filteredOptions\"\n [delay]=\"0\"\n [scrollHeight]=\"virtualListHeight + 'px'\"\n [options]=\"{ numToleratedItems: numToleratedItems }\"\n [itemSize]=\"virtualScrollItemSize\">\n <ng-template pTemplate=\"item\" let-item>\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n item: item\n }\n \"></ng-container>\n </ng-template>\n </p-virtualScroller>\n </ng-container>\n </div>\n </cps-menu>\n <cps-progress-linear\n *ngIf=\"loading\"\n height=\"3\"\n radius=\"4\"\n opacity=\"0.3\"\n class=\"autocomplete-progress-bar\"\n bgColor=\"transparent\">\n </cps-progress-linear>\n </div>\n <div\n *ngIf=\"!error && !externalError && !hideDetails\"\n class=\"cps-autocomplete-hint\">\n {{ hint }}\n </div>\n <div\n *ngIf=\"(error || externalError) && !hideDetails\"\n class=\"cps-autocomplete-error\">\n {{ error }}\n </div>\n</div>\n\n<ng-template\n #autocompleteInput\n let-inputClass=\"inputClass\"\n let-inputStyle=\"inputStyle\">\n <input\n class=\"cps-autocomplete-box-input\"\n spellcheck=\"false\"\n [class]=\"inputClass\"\n [style]=\"inputStyle\"\n [placeholder]=\"\n (!multiple && isEmptyValue()) || (value?.length < 1 && multiple)\n ? placeholder\n : ''\n \"\n (input)=\"filterOptions($event)\"\n (keydown)=\"onInputKeyDown($event)\"\n [(ngModel)]=\"inputText\"\n (blur)=\"onBlur()\" />\n</ng-template>\n\n<ng-template #itemTemplate let-item=\"item\">\n <div\n class=\"cps-autocomplete-options-option\"\n (click)=\"onOptionClick(item)\"\n [class.selected]=\"\n item | checkOptionSelected : value : multiple : returnObject : optionValue\n \">\n <span class=\"cps-autocomplete-options-option-left\">\n <span *ngIf=\"multiple\" class=\"cps-autocomplete-options-option-check\">\n </span>\n <span\n data-cy-id=\"cps-autocomplete-options\"\n class=\"cps-autocomplete-options-option-label\"\n [class.virtual-row]=\"virtualScroll\"\n >{{ item[optionLabel] }}</span\n >\n </span>\n\n <span\n class=\"cps-autocomplete-options-option-right\"\n [class.virtual-row]=\"virtualScroll\"\n >{{ item[optionInfo] }}</span\n >\n </div>\n</ng-template>\n", styles: [":host{display:flex}:host .cps-autocomplete{position:relative;width:100%;outline:none;font-family:Source Sans Pro,sans-serif;font-weight:400;display:grid}:host .cps-autocomplete .cps-autocomplete-container{position:relative}:host .cps-autocomplete .cps-autocomplete-container .autocomplete-progress-bar{position:absolute;bottom:1px;padding:0 1px}:host .cps-autocomplete .cps-autocomplete-container.focused .cps-autocomplete-box{background:#fff!important}:host .cps-autocomplete .cps-autocomplete-container.borderless .cps-autocomplete-box,:host .cps-autocomplete .cps-autocomplete-container.underlined .cps-autocomplete-box{line-height:1;border:none!important;border-radius:0}:host .cps-autocomplete .cps-autocomplete-container.underlined .cps-autocomplete-box{border-bottom:1px solid var(--cps-color-line-light)!important}:host .cps-autocomplete.active .cps-autocomplete-box{border:1px solid var(--cps-color-calm)}:host .cps-autocomplete.active .cps-autocomplete-box .cps-autocomplete-box-area .prefix-icon{color:var(--cps-color-calm)}:host .cps-autocomplete.active .cps-autocomplete-box .cps-autocomplete-box-chevron{top:22px;transform:rotate(180deg)}:host .cps-autocomplete .cps-autocomplete-label{align-items:center;display:inline-flex;margin-bottom:.2rem;color:var(--cps-color-text-dark);font-size:.875rem;font-weight:600}:host .cps-autocomplete .cps-autocomplete-label .cps-autocomplete-label-info-circle{margin-left:8px;pointer-events:all}:host .cps-autocomplete .persistent-clear .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon,:host .cps-autocomplete .cps-autocomplete-container.focused .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon,:host .cps-autocomplete .cps-autocomplete-container:hover .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon{opacity:.5}:host .cps-autocomplete .cps-autocomplete-box{overflow:hidden;min-height:38px;width:100%;cursor:text;background:#fff;font-size:1rem;outline:none;padding:0 12px;border-radius:4px;border:1px solid var(--cps-color-line-light);transition-duration:.2s}:host .cps-autocomplete .cps-autocomplete-box-area{display:flex;min-height:36px;align-items:center}:host .cps-autocomplete .cps-autocomplete-box-area .prefix-icon{margin-right:.5rem;color:var(--cps-color-text-dark)}:host .cps-autocomplete .cps-autocomplete-box-input{min-height:36px;padding:0;background-color:transparent;width:0;min-width:30px;flex-grow:1;font-size:1rem;color:var(--cps-color-text-dark);border-style:none;outline:none;font-family:Source Sans Pro,sans-serif}:host .cps-autocomplete .cps-autocomplete-box-input::placeholder{color:var(--cps-color-text-lightest);font-style:italic;opacity:1}:host .cps-autocomplete .cps-autocomplete-box-items{display:inline-flex;flex-direction:column;width:100%;padding-top:3px;padding-bottom:3px;min-height:36px;justify-content:center;position:relative}:host .cps-autocomplete .cps-autocomplete-box-items .single-item{color:var(--cps-color-text-dark);display:inline-flex}:host .cps-autocomplete .cps-autocomplete-box-items .single-item-selection{display:inline-flex;letter-spacing:inherit;line-height:inherit;max-width:100%}:host .cps-autocomplete .cps-autocomplete-box-items .single-item-input{opacity:0;min-width:0;align-self:flex-start;flex:1 1;transition:none;position:absolute;top:0;bottom:0;width:100%;padding-inline-start:inherit;padding-inline-end:inherit}:host .cps-autocomplete .cps-autocomplete-box-items .multi-chip-input{min-height:30px}:host .cps-autocomplete .cps-autocomplete-box-items .multi-item-input{min-height:28px}:host .cps-autocomplete .cps-autocomplete-box-items .chips-group{display:inline-flex;flex-wrap:wrap;align-items:center}:host .cps-autocomplete .cps-autocomplete-box-items .chips-group cps-chip{padding-bottom:3px;padding-top:3px;padding-right:4px}:host .cps-autocomplete .cps-autocomplete-box-items .text-group{color:var(--cps-color-text-dark);align-items:center;display:inline-flex;flex-wrap:wrap}:host .cps-autocomplete .cps-autocomplete-box-items .text-group .text-group-item{padding-bottom:3px;padding-top:3px;padding-right:4px}:host .cps-autocomplete .cps-autocomplete-box:hover{border:1px solid var(--cps-color-calm)}:host .cps-autocomplete .cps-autocomplete-box:hover .cps-autocomplete-box-area .prefix-icon{color:var(--cps-color-calm)}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons{display:flex}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon{cursor:pointer;display:flex;color:var(--cps-color-calm);margin-left:8px}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon{opacity:0;transition-duration:.2s}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-clear-icon cps-icon:hover{opacity:1!important}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-chevron{display:flex;margin-left:8px;transition-duration:.2s;cursor:pointer}:host .cps-autocomplete .cps-autocomplete-box .cps-autocomplete-box-icons .cps-autocomplete-box-chevron:hover ::ng-deep cps-icon .cps-icon{color:var(--cps-color-calm)!important}:host .cps-autocomplete .cps-autocomplete-hint{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}:host .cps-autocomplete .cps-autocomplete-error{color:var(--cps-color-error);font-weight:700;font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}:host .cps-autocomplete.disabled{pointer-events:none}:host .cps-autocomplete.disabled .cps-autocomplete-box{background:#f7f7f7}:host .cps-autocomplete.disabled .cps-autocomplete-box-items{color:var(--cps-color-text-light)}:host .cps-autocomplete.disabled .cps-autocomplete-box-items .text-group,:host .cps-autocomplete.disabled .cps-autocomplete-box-items .single-item{color:var(--cps-color-text-light)}:host .cps-autocomplete.disabled .cps-autocomplete-label{color:var(--cps-color-text-mild)}:host .cps-autocomplete.error .cps-autocomplete-box{border-color:var(--cps-color-error)!important;background:#fef3f2}:host .about-to-remove{color:var(--cps-color-text-light)}:host .about-to-remove ::ng-deep .cps-chip{background-color:var(--cps-color-bg-mid)}.cps-autocomplete-options{font-family:Source Sans Pro,sans-serif;background:#fff;overflow-x:hidden;max-height:242px;overflow-y:auto}.cps-autocomplete-options .cps-autocomplete-options-empty{padding:11px;font-size:16px;cursor:default;color:var(--cps-color-text-dark)}.cps-autocomplete-options .cps-autocomplete-options-option{padding:12px;justify-content:space-between;display:flex;cursor:pointer}.cps-autocomplete-options .cps-autocomplete-options-option:hover{background:var(--cps-color-highlight-hover)}.cps-autocomplete-options .cps-autocomplete-options-option-label{color:var(--cps-color-text-dark)}.cps-autocomplete-options .cps-autocomplete-options-option-left{display:flex;align-items:center;margin-right:8px}.cps-autocomplete-options .cps-autocomplete-options-option-right{color:var(--cps-color-text-light);text-align:right}.cps-autocomplete-options .cps-autocomplete-options-option-check{background-color:transparent;border:0;width:16px;height:16px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0,0,.2,.1),background-color 90ms cubic-bezier(0,0,.2,.1);margin-right:8px;opacity:0}.cps-autocomplete-options .cps-autocomplete-options-option-check:after{color:var(--cps-color-calm);top:4px;left:1px;width:8px;height:3px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box;position:absolute;content:\"\";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0,0,.2,.1)}.cps-autocomplete-options .cps-autocomplete-options-option.selected,.cps-autocomplete-options .cps-autocomplete-options-option.allselected{font-weight:600}.cps-autocomplete-options .cps-autocomplete-options-option.selected .cps-autocomplete-options-option-label,.cps-autocomplete-options .cps-autocomplete-options-option.allselected .cps-autocomplete-options-option-label{color:var(--cps-color-calm)}.cps-autocomplete-options .cps-autocomplete-options-option.selected .cps-autocomplete-options-option-check,.cps-autocomplete-options .cps-autocomplete-options-option.allselected .cps-autocomplete-options-option-check{opacity:1}.cps-autocomplete-options .cps-autocomplete-options-option.selected{background:var(--cps-color-highlight-selected)}.cps-autocomplete-options .cps-autocomplete-options-option.highlighten{background:var(--cps-color-highlight-active)}.cps-autocomplete-options .cps-autocomplete-options-option.selected.highlighten{background:var(--cps-color-highlight-selected-dark)}.cps-autocomplete-options .select-all-option{border-bottom:1px solid lightgrey;font-weight:600}.cps-autocomplete-options ::ng-deep .p-virtualscroller-list.p-scroller{overflow-anchor:none}.cps-autocomplete-options .virtual-row{white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsChipComponent, selector: "cps-chip", inputs: ["label", "icon", "iconColor", "iconPosition", "closable", "disabled"], outputs: ["closed"] }, { kind: "component", type: CpsProgressLinearComponent, selector: "cps-progress-linear", inputs: ["width", "height", "color", "bgColor", "opacity", "radius"] }, { kind: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }, { kind: "pipe", type: LabelByValuePipe, name: "labelByValue" }, { kind: "pipe", type: CheckOptionSelectedPipe, name: "checkOptionSelected" }, { kind: "ngmodule", type: VirtualScrollerModule }, { kind: "component", type: i3.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "options", "delay"], outputs: ["onLazyLoad"] }, { kind: "directive", type: i1$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "persistent", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }] }); }
|
|
3745
3761
|
}
|
|
3746
3762
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsAutocompleteComponent, decorators: [{
|
|
3747
3763
|
type: Component,
|
|
@@ -3835,6 +3851,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
3835
3851
|
type: Input
|
|
3836
3852
|
}], appearance: [{
|
|
3837
3853
|
type: Input
|
|
3854
|
+
}], emptyOptionIndex: [{
|
|
3855
|
+
type: Input
|
|
3838
3856
|
}], _value: [{
|
|
3839
3857
|
type: Input,
|
|
3840
3858
|
args: ['value']
|
|
@@ -4146,7 +4164,7 @@ class CpsButtonComponent {
|
|
|
4146
4164
|
*/
|
|
4147
4165
|
this.height = 0;
|
|
4148
4166
|
/**
|
|
4149
|
-
*
|
|
4167
|
+
* Determines whether the button is disabled.
|
|
4150
4168
|
* @group Props
|
|
4151
4169
|
*/
|
|
4152
4170
|
this.disabled = false;
|
|
@@ -6756,7 +6774,7 @@ class TableColumnFilterConstraintComponent {
|
|
|
6756
6774
|
event.preventDefault();
|
|
6757
6775
|
}
|
|
6758
6776
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableColumnFilterConstraintComponent, deps: [{ token: i1$3.Table, optional: true }, { token: i2$1.TreeTable, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6759
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TableColumnFilterConstraintComponent, isStandalone: true, selector: "table-column-filter-constraint", inputs: { type: "type", field: "field", filterConstraint: "filterConstraint", categoryOptions: "categoryOptions", asButtonToggle: "asButtonToggle", singleSelection: "singleSelection", placeholder: "placeholder", hasApplyButton: "hasApplyButton" }, viewQueries: [{ propertyName: "categoryAutocompleteComponent", first: true, predicate: ["categoryAutocompleteComponent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div\n class=\"cps-table-col-filter-constraint-btn-toggles\"\n *ngSwitchCase=\"'boolean'\">\n <cps-button-toggle\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <ng-container *ngSwitchCase=\"'category'\">\n <cps-autocomplete\n #categoryAutocompleteComponent\n *ngIf=\"!asButtonToggle\"\n class=\"cps-table-col-filter-category-autocomplete\"\n [placeholder]=\"placeholder\"\n [options]=\"categories\"\n [hideDetails]=\"true\"\n [clearable]=\"true\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [returnObject]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-autocomplete>\n <div class=\"cps-table-col-filter-constraint-btn-toggles\">\n <cps-button-toggle\n *ngIf=\"asButtonToggle\"\n [options]=\"categories\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-button-toggle>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host .cps-table-col-filter-constraint-btn-toggles{display:flex;justify-content:center}:host .cps-table-col-filter-category-autocomplete{min-width:200px;max-width:400px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CpsInputComponent, selector: "cps-input", inputs: ["label", "hint", "placeholder", "disabled", "readonly", "width", "type", "loading", "clearable", "prefixIcon", "prefixIconClickable", "prefixIconSize", "prefixText", "hideDetails", "persistentClear", "error", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "valueToDisplay", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred", "cleared", "enterClicked"] }, { kind: "component", type: CpsDatepickerComponent, selector: "cps-datepicker", inputs: ["label", "disabled", "width", "placeholder", "hint", "clearable", "hideDetails", "persistentClear", "showTodayButton", "openOnInputFocus", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "minDate", "maxDate", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsButtonToggleComponent, selector: "cps-button-toggle", inputs: ["label", "options", "multiple", "disabled", "mandatory", "equalWidths", "optionTooltipPosition", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsAutocompleteComponent, selector: "cps-autocomplete", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "showChevron", "withOptionsAliases", "useOptionsAliasesWhenNoMatch", "optionAlias", "chips", "closableChips", "clearable", "openOnClear", "options", "keepInitialOrder", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "emptyMessage", "showEmptyMessage", "virtualScroll", "numToleratedItems", "externalError", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "value"], outputs: ["valueChanged", "blurred"] }] }); }
|
|
6777
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: TableColumnFilterConstraintComponent, isStandalone: true, selector: "table-column-filter-constraint", inputs: { type: "type", field: "field", filterConstraint: "filterConstraint", categoryOptions: "categoryOptions", asButtonToggle: "asButtonToggle", singleSelection: "singleSelection", placeholder: "placeholder", hasApplyButton: "hasApplyButton" }, viewQueries: [{ propertyName: "categoryAutocompleteComponent", first: true, predicate: ["categoryAutocompleteComponent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div\n class=\"cps-table-col-filter-constraint-btn-toggles\"\n *ngSwitchCase=\"'boolean'\">\n <cps-button-toggle\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <ng-container *ngSwitchCase=\"'category'\">\n <cps-autocomplete\n #categoryAutocompleteComponent\n *ngIf=\"!asButtonToggle\"\n class=\"cps-table-col-filter-category-autocomplete\"\n [placeholder]=\"placeholder\"\n [options]=\"categories\"\n [hideDetails]=\"true\"\n [clearable]=\"true\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [returnObject]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-autocomplete>\n <div class=\"cps-table-col-filter-constraint-btn-toggles\">\n <cps-button-toggle\n *ngIf=\"asButtonToggle\"\n [options]=\"categories\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-button-toggle>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host .cps-table-col-filter-constraint-btn-toggles{display:flex;justify-content:center}:host .cps-table-col-filter-category-autocomplete{min-width:200px;max-width:400px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CpsInputComponent, selector: "cps-input", inputs: ["label", "hint", "placeholder", "disabled", "readonly", "width", "type", "loading", "clearable", "prefixIcon", "prefixIconClickable", "prefixIconSize", "prefixText", "hideDetails", "persistentClear", "error", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "valueToDisplay", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred", "cleared", "enterClicked"] }, { kind: "component", type: CpsDatepickerComponent, selector: "cps-datepicker", inputs: ["label", "disabled", "width", "placeholder", "hint", "clearable", "hideDetails", "persistentClear", "showTodayButton", "openOnInputFocus", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "minDate", "maxDate", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsButtonToggleComponent, selector: "cps-button-toggle", inputs: ["label", "options", "multiple", "disabled", "mandatory", "equalWidths", "optionTooltipPosition", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsAutocompleteComponent, selector: "cps-autocomplete", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "showChevron", "withOptionsAliases", "useOptionsAliasesWhenNoMatch", "optionAlias", "chips", "closableChips", "clearable", "openOnClear", "options", "keepInitialOrder", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "emptyMessage", "showEmptyMessage", "virtualScroll", "numToleratedItems", "externalError", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "emptyOptionIndex", "value"], outputs: ["valueChanged", "blurred"] }] }); }
|
|
6760
6778
|
}
|
|
6761
6779
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableColumnFilterConstraintComponent, decorators: [{
|
|
6762
6780
|
type: Component,
|
|
@@ -10564,6 +10582,11 @@ class CpsTimepickerComponent {
|
|
|
10564
10582
|
* @group Props
|
|
10565
10583
|
*/
|
|
10566
10584
|
this.infoTooltipPosition = 'top';
|
|
10585
|
+
/**
|
|
10586
|
+
* Determines whether the timepicker input fields can be cleared.
|
|
10587
|
+
* @group Props
|
|
10588
|
+
*/
|
|
10589
|
+
this.mandatoryValue = false;
|
|
10567
10590
|
/**
|
|
10568
10591
|
* Callback to invoke on value change.
|
|
10569
10592
|
* @param {string} string - value changed.
|
|
@@ -10767,7 +10790,7 @@ class CpsTimepickerComponent {
|
|
|
10767
10790
|
return Array.from({ length: until + 1 - startFrom }, (_, k) => k + startFrom);
|
|
10768
10791
|
}
|
|
10769
10792
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsTimepickerComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10770
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CpsTimepickerComponent, isStandalone: true, selector: "cps-timepicker", inputs: { label: "label", disabled: "disabled", use24HourTime: "use24HourTime", withSeconds: "withSeconds", hint: "hint", hideDetails: "hideDetails", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", value: "value" }, outputs: { valueChanged: "valueChanged" }, viewQueries: [{ propertyName: "hoursField", first: true, predicate: ["hoursField"], descendants: true }, { propertyName: "minutesField", first: true, predicate: ["minutesField"], descendants: true }, { propertyName: "secondsField", first: true, predicate: ["secondsField"], descendants: true }], ngImport: i0, template: "<div class=\"cps-timepicker\">\n <div\n class=\"cps-timepicker-label\"\n [ngClass]=\"{ 'cps-timepicker-label-disabled': disabled }\"\n *ngIf=\"label\">\n <label>{{ label }}</label>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-timepicker-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div class=\"cps-timepicker-body\">\n <cps-autocomplete\n #hoursField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [options]=\"hoursOptions\"\n [withOptionsAliases]=\"!use24HourTime\"\n [useOptionsAliasesWhenNoMatch]=\"true\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.hours\"\n (valueChanged)=\"updateHours($event)\"\n [externalError]=\"hoursError\"\n placeholder=\"HH\"></cps-autocomplete>\n <span class=\"cps-timepicker-delimiter\">:</span>\n <cps-autocomplete\n #minutesField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [options]=\"minutesOptions\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.minutes\"\n (valueChanged)=\"updateMinutes($event)\"\n [externalError]=\"minutesError\"\n placeholder=\"MM\"></cps-autocomplete>\n <span *ngIf=\"withSeconds\" class=\"cps-timepicker-delimiter\">:</span>\n <cps-autocomplete\n *ngIf=\"withSeconds\"\n #secondsField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [options]=\"secondsOptions\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.seconds\"\n (valueChanged)=\"updateSeconds($event)\"\n [externalError]=\"secondsError\"\n placeholder=\"SS\"></cps-autocomplete>\n <cps-button-toggle\n *ngIf=\"!use24HourTime\"\n class=\"cps-timepicker-am-pm-selector\"\n [options]=\"dayPeriodOptions\"\n [disabled]=\"disabled\"\n [value]=\"value?.dayPeriod || 'AM'\"\n (valueChanged)=\"updateDayPeriod($event)\">\n </cps-button-toggle>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-timepicker-hint\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-timepicker-error\">\n {{ error }}\n </div>\n</div>\n", styles: [":host .cps-timepicker{display:flex;flex-direction:column}:host .cps-timepicker .cps-timepicker-label{align-items:center;display:inline-flex;margin-bottom:.2rem;color:var(--cps-color-text-dark);font-size:.875rem;font-weight:600}:host .cps-timepicker .cps-timepicker-label-info-circle{margin-left:8px}:host .cps-timepicker .cps-timepicker-label-disabled{color:var(--cps-color-text-mild)}:host .cps-timepicker-body{display:flex;flex-direction:row}:host .cps-timepicker-body .cps-timepicker-am-pm-selector{margin-left:10px;margin-top:0}:host .cps-timepicker-body .cps-timepicker-delimiter{color:var(--cps-color-text-lightest);font-size:24px;margin:0 10px}:host .cps-timepicker .cps-timepicker-hint{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}:host .cps-timepicker .cps-timepicker-error{color:var(--cps-color-error);font-weight:700;font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CpsButtonToggleComponent, selector: "cps-button-toggle", inputs: ["label", "options", "multiple", "disabled", "mandatory", "equalWidths", "optionTooltipPosition", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsAutocompleteComponent, selector: "cps-autocomplete", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "showChevron", "withOptionsAliases", "useOptionsAliasesWhenNoMatch", "optionAlias", "chips", "closableChips", "clearable", "openOnClear", "options", "keepInitialOrder", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "emptyMessage", "showEmptyMessage", "virtualScroll", "numToleratedItems", "externalError", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "value"], outputs: ["valueChanged", "blurred"] }, { kind: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }] }); }
|
|
10793
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CpsTimepickerComponent, isStandalone: true, selector: "cps-timepicker", inputs: { label: "label", disabled: "disabled", use24HourTime: "use24HourTime", withSeconds: "withSeconds", hint: "hint", hideDetails: "hideDetails", infoTooltip: "infoTooltip", infoTooltipClass: "infoTooltipClass", infoTooltipMaxWidth: "infoTooltipMaxWidth", infoTooltipPersistent: "infoTooltipPersistent", infoTooltipPosition: "infoTooltipPosition", mandatoryValue: "mandatoryValue", value: "value" }, outputs: { valueChanged: "valueChanged" }, viewQueries: [{ propertyName: "hoursField", first: true, predicate: ["hoursField"], descendants: true }, { propertyName: "minutesField", first: true, predicate: ["minutesField"], descendants: true }, { propertyName: "secondsField", first: true, predicate: ["secondsField"], descendants: true }], ngImport: i0, template: "<div class=\"cps-timepicker\">\n <div\n class=\"cps-timepicker-label\"\n [ngClass]=\"{ 'cps-timepicker-label-disabled': disabled }\"\n *ngIf=\"label\">\n <label>{{ label }}</label>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-timepicker-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div class=\"cps-timepicker-body\">\n <cps-autocomplete\n #hoursField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [emptyOptionIndex]=\"mandatoryValue ? 0 : -1\"\n [options]=\"hoursOptions\"\n [withOptionsAliases]=\"!use24HourTime\"\n [useOptionsAliasesWhenNoMatch]=\"true\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.hours\"\n (valueChanged)=\"updateHours($event)\"\n [externalError]=\"hoursError\"\n placeholder=\"HH\"></cps-autocomplete>\n <span class=\"cps-timepicker-delimiter\">:</span>\n <cps-autocomplete\n #minutesField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [emptyOptionIndex]=\"mandatoryValue ? 0 : -1\"\n [options]=\"minutesOptions\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.minutes\"\n (valueChanged)=\"updateMinutes($event)\"\n [externalError]=\"minutesError\"\n placeholder=\"MM\"></cps-autocomplete>\n <span *ngIf=\"withSeconds\" class=\"cps-timepicker-delimiter\">:</span>\n <cps-autocomplete\n *ngIf=\"withSeconds\"\n #secondsField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [emptyOptionIndex]=\"mandatoryValue ? 0 : -1\"\n [options]=\"secondsOptions\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.seconds\"\n (valueChanged)=\"updateSeconds($event)\"\n [externalError]=\"secondsError\"\n placeholder=\"SS\"></cps-autocomplete>\n <cps-button-toggle\n *ngIf=\"!use24HourTime\"\n class=\"cps-timepicker-am-pm-selector\"\n [options]=\"dayPeriodOptions\"\n [disabled]=\"disabled\"\n [value]=\"value?.dayPeriod || 'AM'\"\n (valueChanged)=\"updateDayPeriod($event)\">\n </cps-button-toggle>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-timepicker-hint\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-timepicker-error\">\n {{ error }}\n </div>\n</div>\n", styles: [":host .cps-timepicker{display:flex;flex-direction:column}:host .cps-timepicker .cps-timepicker-label{align-items:center;display:inline-flex;margin-bottom:.2rem;color:var(--cps-color-text-dark);font-size:.875rem;font-weight:600}:host .cps-timepicker .cps-timepicker-label-info-circle{margin-left:8px}:host .cps-timepicker .cps-timepicker-label-disabled{color:var(--cps-color-text-mild)}:host .cps-timepicker-body{display:flex;flex-direction:row}:host .cps-timepicker-body .cps-timepicker-am-pm-selector{margin-left:10px;margin-top:0}:host .cps-timepicker-body .cps-timepicker-delimiter{color:var(--cps-color-text-lightest);font-size:24px;margin:0 10px}:host .cps-timepicker .cps-timepicker-hint{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}:host .cps-timepicker .cps-timepicker-error{color:var(--cps-color-error);font-weight:700;font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CpsButtonToggleComponent, selector: "cps-button-toggle", inputs: ["label", "options", "multiple", "disabled", "mandatory", "equalWidths", "optionTooltipPosition", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsAutocompleteComponent, selector: "cps-autocomplete", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "showChevron", "withOptionsAliases", "useOptionsAliasesWhenNoMatch", "optionAlias", "chips", "closableChips", "clearable", "openOnClear", "options", "keepInitialOrder", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "emptyMessage", "showEmptyMessage", "virtualScroll", "numToleratedItems", "externalError", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "emptyOptionIndex", "value"], outputs: ["valueChanged", "blurred"] }, { kind: "component", type: CpsInfoCircleComponent, selector: "cps-info-circle", inputs: ["size", "tooltipText", "tooltipPosition", "tooltipContentClass", "tooltipMaxWidth", "tooltipPersistent"] }] }); }
|
|
10771
10794
|
}
|
|
10772
10795
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsTimepickerComponent, decorators: [{
|
|
10773
10796
|
type: Component,
|
|
@@ -10777,7 +10800,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
10777
10800
|
CpsButtonToggleComponent,
|
|
10778
10801
|
CpsAutocompleteComponent,
|
|
10779
10802
|
CpsInfoCircleComponent
|
|
10780
|
-
], template: "<div class=\"cps-timepicker\">\n <div\n class=\"cps-timepicker-label\"\n [ngClass]=\"{ 'cps-timepicker-label-disabled': disabled }\"\n *ngIf=\"label\">\n <label>{{ label }}</label>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-timepicker-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div class=\"cps-timepicker-body\">\n <cps-autocomplete\n #hoursField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [options]=\"hoursOptions\"\n [withOptionsAliases]=\"!use24HourTime\"\n [useOptionsAliasesWhenNoMatch]=\"true\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.hours\"\n (valueChanged)=\"updateHours($event)\"\n [externalError]=\"hoursError\"\n placeholder=\"HH\"></cps-autocomplete>\n <span class=\"cps-timepicker-delimiter\">:</span>\n <cps-autocomplete\n #minutesField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [options]=\"minutesOptions\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.minutes\"\n (valueChanged)=\"updateMinutes($event)\"\n [externalError]=\"minutesError\"\n placeholder=\"MM\"></cps-autocomplete>\n <span *ngIf=\"withSeconds\" class=\"cps-timepicker-delimiter\">:</span>\n <cps-autocomplete\n *ngIf=\"withSeconds\"\n #secondsField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [options]=\"secondsOptions\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.seconds\"\n (valueChanged)=\"updateSeconds($event)\"\n [externalError]=\"secondsError\"\n placeholder=\"SS\"></cps-autocomplete>\n <cps-button-toggle\n *ngIf=\"!use24HourTime\"\n class=\"cps-timepicker-am-pm-selector\"\n [options]=\"dayPeriodOptions\"\n [disabled]=\"disabled\"\n [value]=\"value?.dayPeriod || 'AM'\"\n (valueChanged)=\"updateDayPeriod($event)\">\n </cps-button-toggle>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-timepicker-hint\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-timepicker-error\">\n {{ error }}\n </div>\n</div>\n", styles: [":host .cps-timepicker{display:flex;flex-direction:column}:host .cps-timepicker .cps-timepicker-label{align-items:center;display:inline-flex;margin-bottom:.2rem;color:var(--cps-color-text-dark);font-size:.875rem;font-weight:600}:host .cps-timepicker .cps-timepicker-label-info-circle{margin-left:8px}:host .cps-timepicker .cps-timepicker-label-disabled{color:var(--cps-color-text-mild)}:host .cps-timepicker-body{display:flex;flex-direction:row}:host .cps-timepicker-body .cps-timepicker-am-pm-selector{margin-left:10px;margin-top:0}:host .cps-timepicker-body .cps-timepicker-delimiter{color:var(--cps-color-text-lightest);font-size:24px;margin:0 10px}:host .cps-timepicker .cps-timepicker-hint{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}:host .cps-timepicker .cps-timepicker-error{color:var(--cps-color-error);font-weight:700;font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}\n"] }]
|
|
10803
|
+
], template: "<div class=\"cps-timepicker\">\n <div\n class=\"cps-timepicker-label\"\n [ngClass]=\"{ 'cps-timepicker-label-disabled': disabled }\"\n *ngIf=\"label\">\n <label>{{ label }}</label>\n <cps-info-circle\n *ngIf=\"infoTooltip\"\n class=\"cps-timepicker-label-info-circle\"\n size=\"xsmall\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipContentClass]=\"infoTooltipClass\"\n [tooltipMaxWidth]=\"infoTooltipMaxWidth\"\n [tooltipPersistent]=\"infoTooltipPersistent\"\n [tooltipText]=\"infoTooltip\">\n </cps-info-circle>\n </div>\n <div class=\"cps-timepicker-body\">\n <cps-autocomplete\n #hoursField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [emptyOptionIndex]=\"mandatoryValue ? 0 : -1\"\n [options]=\"hoursOptions\"\n [withOptionsAliases]=\"!use24HourTime\"\n [useOptionsAliasesWhenNoMatch]=\"true\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.hours\"\n (valueChanged)=\"updateHours($event)\"\n [externalError]=\"hoursError\"\n placeholder=\"HH\"></cps-autocomplete>\n <span class=\"cps-timepicker-delimiter\">:</span>\n <cps-autocomplete\n #minutesField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [emptyOptionIndex]=\"mandatoryValue ? 0 : -1\"\n [options]=\"minutesOptions\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.minutes\"\n (valueChanged)=\"updateMinutes($event)\"\n [externalError]=\"minutesError\"\n placeholder=\"MM\"></cps-autocomplete>\n <span *ngIf=\"withSeconds\" class=\"cps-timepicker-delimiter\">:</span>\n <cps-autocomplete\n *ngIf=\"withSeconds\"\n #secondsField\n (keypress)=\"numberOnly($event)\"\n width=\"60\"\n [emptyOptionIndex]=\"mandatoryValue ? 0 : -1\"\n [options]=\"secondsOptions\"\n [hideDetails]=\"true\"\n [disabled]=\"disabled\"\n [showChevron]=\"false\"\n [showEmptyMessage]=\"false\"\n (blurred)=\"onFieldBlur()\"\n [returnObject]=\"false\"\n [value]=\"value?.seconds\"\n (valueChanged)=\"updateSeconds($event)\"\n [externalError]=\"secondsError\"\n placeholder=\"SS\"></cps-autocomplete>\n <cps-button-toggle\n *ngIf=\"!use24HourTime\"\n class=\"cps-timepicker-am-pm-selector\"\n [options]=\"dayPeriodOptions\"\n [disabled]=\"disabled\"\n [value]=\"value?.dayPeriod || 'AM'\"\n (valueChanged)=\"updateDayPeriod($event)\">\n </cps-button-toggle>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-timepicker-hint\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-timepicker-error\">\n {{ error }}\n </div>\n</div>\n", styles: [":host .cps-timepicker{display:flex;flex-direction:column}:host .cps-timepicker .cps-timepicker-label{align-items:center;display:inline-flex;margin-bottom:.2rem;color:var(--cps-color-text-dark);font-size:.875rem;font-weight:600}:host .cps-timepicker .cps-timepicker-label-info-circle{margin-left:8px}:host .cps-timepicker .cps-timepicker-label-disabled{color:var(--cps-color-text-mild)}:host .cps-timepicker-body{display:flex;flex-direction:row}:host .cps-timepicker-body .cps-timepicker-am-pm-selector{margin-left:10px;margin-top:0}:host .cps-timepicker-body .cps-timepicker-delimiter{color:var(--cps-color-text-lightest);font-size:24px;margin:0 10px}:host .cps-timepicker .cps-timepicker-hint{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}:host .cps-timepicker .cps-timepicker-error{color:var(--cps-color-error);font-weight:700;font-size:.75rem;min-height:1.125rem;line-height:1.125rem;cursor:default;margin-top:.2rem}\n"] }]
|
|
10781
10804
|
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
10782
10805
|
type: Self
|
|
10783
10806
|
}, {
|
|
@@ -10804,6 +10827,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
10804
10827
|
type: Input
|
|
10805
10828
|
}], infoTooltipPosition: [{
|
|
10806
10829
|
type: Input
|
|
10830
|
+
}], mandatoryValue: [{
|
|
10831
|
+
type: Input
|
|
10807
10832
|
}], value: [{
|
|
10808
10833
|
type: Input
|
|
10809
10834
|
}], valueChanged: [{
|
|
@@ -10949,6 +10974,1267 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
10949
10974
|
type: Output
|
|
10950
10975
|
}] } });
|
|
10951
10976
|
|
|
10977
|
+
const timeZones = [
|
|
10978
|
+
'Asia/Aden',
|
|
10979
|
+
'America/Cuiaba',
|
|
10980
|
+
'Etc/GMT+9',
|
|
10981
|
+
'Etc/GMT+8',
|
|
10982
|
+
'Africa/Nairobi',
|
|
10983
|
+
'America/Marigot',
|
|
10984
|
+
'Asia/Aqtau',
|
|
10985
|
+
'Pacific/Kwajalein',
|
|
10986
|
+
'America/El_Salvador',
|
|
10987
|
+
'Asia/Pontianak',
|
|
10988
|
+
'Africa/Cairo',
|
|
10989
|
+
'Pacific/Pago_Pago',
|
|
10990
|
+
'Africa/Mbabane',
|
|
10991
|
+
'Asia/Kuching',
|
|
10992
|
+
'Pacific/Honolulu',
|
|
10993
|
+
'Pacific/Rarotonga',
|
|
10994
|
+
'America/Guatemala',
|
|
10995
|
+
'Australia/Hobart',
|
|
10996
|
+
'Europe/London',
|
|
10997
|
+
'America/Belize',
|
|
10998
|
+
'America/Panama',
|
|
10999
|
+
'Asia/Chungking',
|
|
11000
|
+
'America/Managua',
|
|
11001
|
+
'America/Indiana/Petersburg',
|
|
11002
|
+
'Asia/Yerevan',
|
|
11003
|
+
'Europe/Brussels',
|
|
11004
|
+
'GMT',
|
|
11005
|
+
'Europe/Warsaw',
|
|
11006
|
+
'America/Chicago',
|
|
11007
|
+
'Asia/Kashgar',
|
|
11008
|
+
'Chile/Continental',
|
|
11009
|
+
'Pacific/Yap',
|
|
11010
|
+
'CET',
|
|
11011
|
+
'Etc/GMT-1',
|
|
11012
|
+
'Etc/GMT-0',
|
|
11013
|
+
'Europe/Jersey',
|
|
11014
|
+
'America/Tegucigalpa',
|
|
11015
|
+
'Etc/GMT-5',
|
|
11016
|
+
'Europe/Istanbul',
|
|
11017
|
+
'America/Eirunepe',
|
|
11018
|
+
'Etc/GMT-4',
|
|
11019
|
+
'America/Miquelon',
|
|
11020
|
+
'Etc/GMT-3',
|
|
11021
|
+
'Europe/Luxembourg',
|
|
11022
|
+
'Etc/GMT-2',
|
|
11023
|
+
'Etc/GMT-9',
|
|
11024
|
+
'America/Argentina/Catamarca',
|
|
11025
|
+
'Etc/GMT-8',
|
|
11026
|
+
'Etc/GMT-7',
|
|
11027
|
+
'Etc/GMT-6',
|
|
11028
|
+
'Europe/Zaporozhye',
|
|
11029
|
+
'Canada/Yukon',
|
|
11030
|
+
'Canada/Atlantic',
|
|
11031
|
+
'Atlantic/St_Helena',
|
|
11032
|
+
'Australia/Tasmania',
|
|
11033
|
+
'Libya',
|
|
11034
|
+
'Europe/Guernsey',
|
|
11035
|
+
'America/Grand_Turk',
|
|
11036
|
+
'Asia/Samarkand',
|
|
11037
|
+
'America/Argentina/Cordoba',
|
|
11038
|
+
'Asia/Phnom_Penh',
|
|
11039
|
+
'Africa/Kigali',
|
|
11040
|
+
'Asia/Almaty',
|
|
11041
|
+
'US/Alaska',
|
|
11042
|
+
'Asia/Dubai',
|
|
11043
|
+
'Europe/Isle_of_Man',
|
|
11044
|
+
'America/Araguaina',
|
|
11045
|
+
'Cuba',
|
|
11046
|
+
'Asia/Novosibirsk',
|
|
11047
|
+
'America/Argentina/Salta',
|
|
11048
|
+
'Etc/GMT+3',
|
|
11049
|
+
'Africa/Tunis',
|
|
11050
|
+
'Etc/GMT+2',
|
|
11051
|
+
'Etc/GMT+1',
|
|
11052
|
+
'Pacific/Fakaofo',
|
|
11053
|
+
'Africa/Tripoli',
|
|
11054
|
+
'Etc/GMT+0',
|
|
11055
|
+
'Israel',
|
|
11056
|
+
'Africa/Banjul',
|
|
11057
|
+
'Etc/GMT+7',
|
|
11058
|
+
'Indian/Comoro',
|
|
11059
|
+
'Etc/GMT+6',
|
|
11060
|
+
'Etc/GMT+5',
|
|
11061
|
+
'Etc/GMT+4',
|
|
11062
|
+
'Pacific/Port_Moresby',
|
|
11063
|
+
'US/Arizona',
|
|
11064
|
+
'Antarctica/Syowa',
|
|
11065
|
+
'Indian/Reunion',
|
|
11066
|
+
'Pacific/Palau',
|
|
11067
|
+
'Europe/Kaliningrad',
|
|
11068
|
+
'America/Montevideo',
|
|
11069
|
+
'Africa/Windhoek',
|
|
11070
|
+
'Asia/Karachi',
|
|
11071
|
+
'Africa/Mogadishu',
|
|
11072
|
+
'Australia/Perth',
|
|
11073
|
+
'Brazil/East',
|
|
11074
|
+
'Etc/GMT',
|
|
11075
|
+
'Asia/Chita',
|
|
11076
|
+
'Pacific/Easter',
|
|
11077
|
+
'Antarctica/Davis',
|
|
11078
|
+
'Antarctica/McMurdo',
|
|
11079
|
+
'Asia/Macao',
|
|
11080
|
+
'America/Manaus',
|
|
11081
|
+
'Africa/Freetown',
|
|
11082
|
+
'Europe/Bucharest',
|
|
11083
|
+
'Asia/Tomsk',
|
|
11084
|
+
'America/Argentina/Mendoza',
|
|
11085
|
+
'Asia/Macau',
|
|
11086
|
+
'Europe/Malta',
|
|
11087
|
+
'Mexico/BajaSur',
|
|
11088
|
+
'Pacific/Tahiti',
|
|
11089
|
+
'Africa/Asmera',
|
|
11090
|
+
'Europe/Busingen',
|
|
11091
|
+
'America/Argentina/Rio_Gallegos',
|
|
11092
|
+
'Africa/Malabo',
|
|
11093
|
+
'Europe/Skopje',
|
|
11094
|
+
'America/Catamarca',
|
|
11095
|
+
'America/Godthab',
|
|
11096
|
+
'Europe/Sarajevo',
|
|
11097
|
+
'Australia/ACT',
|
|
11098
|
+
'GB-Eire',
|
|
11099
|
+
'Africa/Lagos',
|
|
11100
|
+
'America/Cordoba',
|
|
11101
|
+
'Europe/Rome',
|
|
11102
|
+
'Asia/Dacca',
|
|
11103
|
+
'Indian/Mauritius',
|
|
11104
|
+
'Pacific/Samoa',
|
|
11105
|
+
'America/Regina',
|
|
11106
|
+
'America/Fort_Wayne',
|
|
11107
|
+
'America/Dawson_Creek',
|
|
11108
|
+
'Africa/Algiers',
|
|
11109
|
+
'Europe/Mariehamn',
|
|
11110
|
+
'America/St_Johns',
|
|
11111
|
+
'America/St_Thomas',
|
|
11112
|
+
'Europe/Zurich',
|
|
11113
|
+
'America/Anguilla',
|
|
11114
|
+
'Asia/Dili',
|
|
11115
|
+
'America/Denver',
|
|
11116
|
+
'Africa/Bamako',
|
|
11117
|
+
'Europe/Saratov',
|
|
11118
|
+
'GB',
|
|
11119
|
+
'Mexico/General',
|
|
11120
|
+
'Pacific/Wallis',
|
|
11121
|
+
'Europe/Gibraltar',
|
|
11122
|
+
'Africa/Conakry',
|
|
11123
|
+
'Africa/Lubumbashi',
|
|
11124
|
+
'Asia/Istanbul',
|
|
11125
|
+
'America/Havana',
|
|
11126
|
+
'NZ-CHAT',
|
|
11127
|
+
'Asia/Choibalsan',
|
|
11128
|
+
'America/Porto_Acre',
|
|
11129
|
+
'Asia/Omsk',
|
|
11130
|
+
'Europe/Vaduz',
|
|
11131
|
+
'US/Michigan',
|
|
11132
|
+
'Asia/Dhaka',
|
|
11133
|
+
'America/Barbados',
|
|
11134
|
+
'Europe/Tiraspol',
|
|
11135
|
+
'Atlantic/Cape_Verde',
|
|
11136
|
+
'Asia/Yekaterinburg',
|
|
11137
|
+
'America/Louisville',
|
|
11138
|
+
'Pacific/Johnston',
|
|
11139
|
+
'Pacific/Chatham',
|
|
11140
|
+
'Europe/Ljubljana',
|
|
11141
|
+
'America/Sao_Paulo',
|
|
11142
|
+
'Asia/Jayapura',
|
|
11143
|
+
'America/Curacao',
|
|
11144
|
+
'Asia/Dushanbe',
|
|
11145
|
+
'America/Guyana',
|
|
11146
|
+
'America/Guayaquil',
|
|
11147
|
+
'America/Martinique',
|
|
11148
|
+
'Portugal',
|
|
11149
|
+
'Europe/Berlin',
|
|
11150
|
+
'Europe/Moscow',
|
|
11151
|
+
'Europe/Chisinau',
|
|
11152
|
+
'America/Puerto_Rico',
|
|
11153
|
+
'America/Rankin_Inlet',
|
|
11154
|
+
'Pacific/Ponape',
|
|
11155
|
+
'Europe/Stockholm',
|
|
11156
|
+
'Europe/Budapest',
|
|
11157
|
+
'America/Argentina/Jujuy',
|
|
11158
|
+
'Australia/Eucla',
|
|
11159
|
+
'Asia/Shanghai',
|
|
11160
|
+
'Universal',
|
|
11161
|
+
'Europe/Zagreb',
|
|
11162
|
+
'America/Port_of_Spain',
|
|
11163
|
+
'Europe/Helsinki',
|
|
11164
|
+
'Asia/Beirut',
|
|
11165
|
+
'Asia/Tel_Aviv',
|
|
11166
|
+
'Pacific/Bougainville',
|
|
11167
|
+
'US/Central',
|
|
11168
|
+
'Africa/Sao_Tome',
|
|
11169
|
+
'Indian/Chagos',
|
|
11170
|
+
'America/Cayenne',
|
|
11171
|
+
'Asia/Yakutsk',
|
|
11172
|
+
'Pacific/Galapagos',
|
|
11173
|
+
'Australia/North',
|
|
11174
|
+
'Europe/Paris',
|
|
11175
|
+
'Africa/Ndjamena',
|
|
11176
|
+
'Pacific/Fiji',
|
|
11177
|
+
'America/Rainy_River',
|
|
11178
|
+
'Indian/Maldives',
|
|
11179
|
+
'Australia/Yancowinna',
|
|
11180
|
+
'SystemV/AST4',
|
|
11181
|
+
'Asia/Oral',
|
|
11182
|
+
'America/Yellowknife',
|
|
11183
|
+
'Pacific/Enderbury',
|
|
11184
|
+
'America/Juneau',
|
|
11185
|
+
'Australia/Victoria',
|
|
11186
|
+
'America/Indiana/Vevay',
|
|
11187
|
+
'Asia/Tashkent',
|
|
11188
|
+
'Asia/Jakarta',
|
|
11189
|
+
'Africa/Ceuta',
|
|
11190
|
+
'Asia/Barnaul',
|
|
11191
|
+
'America/Recife',
|
|
11192
|
+
'America/Buenos_Aires',
|
|
11193
|
+
'America/Noronha',
|
|
11194
|
+
'America/Swift_Current',
|
|
11195
|
+
'Australia/Adelaide',
|
|
11196
|
+
'America/Metlakatla',
|
|
11197
|
+
'Africa/Djibouti',
|
|
11198
|
+
'America/Paramaribo',
|
|
11199
|
+
'Asia/Qostanay',
|
|
11200
|
+
'Europe/Simferopol',
|
|
11201
|
+
'Europe/Sofia',
|
|
11202
|
+
'Africa/Nouakchott',
|
|
11203
|
+
'Europe/Prague',
|
|
11204
|
+
'America/Indiana/Vincennes',
|
|
11205
|
+
'Antarctica/Mawson',
|
|
11206
|
+
'America/Kralendijk',
|
|
11207
|
+
'Antarctica/Troll',
|
|
11208
|
+
'Europe/Samara',
|
|
11209
|
+
'Indian/Christmas',
|
|
11210
|
+
'America/Antigua',
|
|
11211
|
+
'Pacific/Gambier',
|
|
11212
|
+
'America/Indianapolis',
|
|
11213
|
+
'America/Inuvik',
|
|
11214
|
+
'America/Iqaluit',
|
|
11215
|
+
'Pacific/Funafuti',
|
|
11216
|
+
'UTC',
|
|
11217
|
+
'Antarctica/Macquarie',
|
|
11218
|
+
'Canada/Pacific',
|
|
11219
|
+
'America/Moncton',
|
|
11220
|
+
'Africa/Gaborone',
|
|
11221
|
+
'Pacific/Chuuk',
|
|
11222
|
+
'Asia/Pyongyang',
|
|
11223
|
+
'America/St_Vincent',
|
|
11224
|
+
'Asia/Gaza',
|
|
11225
|
+
'Etc/Universal',
|
|
11226
|
+
'PST8PDT',
|
|
11227
|
+
'Atlantic/Faeroe',
|
|
11228
|
+
'Asia/Qyzylorda',
|
|
11229
|
+
'Canada/Newfoundland',
|
|
11230
|
+
'America/Kentucky/Louisville',
|
|
11231
|
+
'America/Yakutat',
|
|
11232
|
+
'Asia/Ho_Chi_Minh',
|
|
11233
|
+
'Antarctica/Casey',
|
|
11234
|
+
'Europe/Copenhagen',
|
|
11235
|
+
'Africa/Asmara',
|
|
11236
|
+
'Atlantic/Azores',
|
|
11237
|
+
'Europe/Vienna',
|
|
11238
|
+
'ROK',
|
|
11239
|
+
'Pacific/Pitcairn',
|
|
11240
|
+
'America/Mazatlan',
|
|
11241
|
+
'Australia/Queensland',
|
|
11242
|
+
'Pacific/Nauru',
|
|
11243
|
+
'Europe/Tirane',
|
|
11244
|
+
'Asia/Kolkata',
|
|
11245
|
+
'SystemV/MST7',
|
|
11246
|
+
'Australia/Canberra',
|
|
11247
|
+
'MET',
|
|
11248
|
+
'Australia/Broken_Hill',
|
|
11249
|
+
'Europe/Riga',
|
|
11250
|
+
'America/Dominica',
|
|
11251
|
+
'Africa/Abidjan',
|
|
11252
|
+
'America/Mendoza',
|
|
11253
|
+
'America/Santarem',
|
|
11254
|
+
'Kwajalein',
|
|
11255
|
+
'America/Asuncion',
|
|
11256
|
+
'Asia/Ulan_Bator',
|
|
11257
|
+
'NZ',
|
|
11258
|
+
'America/Boise',
|
|
11259
|
+
'Australia/Currie',
|
|
11260
|
+
'EST5EDT',
|
|
11261
|
+
'Pacific/Guam',
|
|
11262
|
+
'Pacific/Wake',
|
|
11263
|
+
'Atlantic/Bermuda',
|
|
11264
|
+
'America/Costa_Rica',
|
|
11265
|
+
'America/Dawson',
|
|
11266
|
+
'Asia/Chongqing',
|
|
11267
|
+
'Eire',
|
|
11268
|
+
'Europe/Amsterdam',
|
|
11269
|
+
'America/Indiana/Knox',
|
|
11270
|
+
'America/North_Dakota/Beulah',
|
|
11271
|
+
'Africa/Accra',
|
|
11272
|
+
'Atlantic/Faroe',
|
|
11273
|
+
'Mexico/BajaNorte',
|
|
11274
|
+
'America/Maceio',
|
|
11275
|
+
'Etc/UCT',
|
|
11276
|
+
'Pacific/Apia',
|
|
11277
|
+
'GMT0',
|
|
11278
|
+
'America/Atka',
|
|
11279
|
+
'Pacific/Niue',
|
|
11280
|
+
'Australia/Lord_Howe',
|
|
11281
|
+
'Europe/Dublin',
|
|
11282
|
+
'Pacific/Truk',
|
|
11283
|
+
'MST7MDT',
|
|
11284
|
+
'America/Monterrey',
|
|
11285
|
+
'America/Nassau',
|
|
11286
|
+
'America/Jamaica',
|
|
11287
|
+
'Asia/Bishkek',
|
|
11288
|
+
'America/Atikokan',
|
|
11289
|
+
'Atlantic/Stanley',
|
|
11290
|
+
'Australia/NSW',
|
|
11291
|
+
'US/Hawaii',
|
|
11292
|
+
'SystemV/CST6',
|
|
11293
|
+
'Indian/Mahe',
|
|
11294
|
+
'Asia/Aqtobe',
|
|
11295
|
+
'America/Sitka',
|
|
11296
|
+
'Asia/Vladivostok',
|
|
11297
|
+
'Africa/Libreville',
|
|
11298
|
+
'Africa/Maputo',
|
|
11299
|
+
'Zulu',
|
|
11300
|
+
'America/Kentucky/Monticello',
|
|
11301
|
+
'Africa/El_Aaiun',
|
|
11302
|
+
'Africa/Ouagadougou',
|
|
11303
|
+
'America/Coral_Harbour',
|
|
11304
|
+
'Pacific/Marquesas',
|
|
11305
|
+
'Brazil/West',
|
|
11306
|
+
'America/Aruba',
|
|
11307
|
+
'America/North_Dakota/Center',
|
|
11308
|
+
'America/Cayman',
|
|
11309
|
+
'Asia/Ulaanbaatar',
|
|
11310
|
+
'Asia/Baghdad',
|
|
11311
|
+
'Europe/San_Marino',
|
|
11312
|
+
'America/Indiana/Tell_City',
|
|
11313
|
+
'America/Tijuana',
|
|
11314
|
+
'Pacific/Saipan',
|
|
11315
|
+
'SystemV/YST9',
|
|
11316
|
+
'Africa/Douala',
|
|
11317
|
+
'America/Chihuahua',
|
|
11318
|
+
'America/Ojinaga',
|
|
11319
|
+
'Asia/Hovd',
|
|
11320
|
+
'America/Anchorage',
|
|
11321
|
+
'Chile/EasterIsland',
|
|
11322
|
+
'America/Halifax',
|
|
11323
|
+
'Antarctica/Rothera',
|
|
11324
|
+
'America/Indiana/Indianapolis',
|
|
11325
|
+
'US/Mountain',
|
|
11326
|
+
'Asia/Damascus',
|
|
11327
|
+
'America/Argentina/San_Luis',
|
|
11328
|
+
'America/Santiago',
|
|
11329
|
+
'Asia/Baku',
|
|
11330
|
+
'America/Argentina/Ushuaia',
|
|
11331
|
+
'Atlantic/Reykjavik',
|
|
11332
|
+
'Africa/Brazzaville',
|
|
11333
|
+
'Africa/Porto-Novo',
|
|
11334
|
+
'America/La_Paz',
|
|
11335
|
+
'Antarctica/DumontDUrville',
|
|
11336
|
+
'Asia/Taipei',
|
|
11337
|
+
'Antarctica/South_Pole',
|
|
11338
|
+
'Asia/Manila',
|
|
11339
|
+
'Asia/Bangkok',
|
|
11340
|
+
'Africa/Dar_es_Salaam',
|
|
11341
|
+
'Poland',
|
|
11342
|
+
'Atlantic/Madeira',
|
|
11343
|
+
'Antarctica/Palmer',
|
|
11344
|
+
'America/Thunder_Bay',
|
|
11345
|
+
'Africa/Addis_Ababa',
|
|
11346
|
+
'Asia/Yangon',
|
|
11347
|
+
'Europe/Uzhgorod',
|
|
11348
|
+
'Brazil/DeNoronha',
|
|
11349
|
+
'Asia/Ashkhabad',
|
|
11350
|
+
'Etc/Zulu',
|
|
11351
|
+
'America/Indiana/Marengo',
|
|
11352
|
+
'America/Creston',
|
|
11353
|
+
'America/Punta_Arenas',
|
|
11354
|
+
'America/Mexico_City',
|
|
11355
|
+
'Antarctica/Vostok',
|
|
11356
|
+
'Asia/Jerusalem',
|
|
11357
|
+
'Europe/Andorra',
|
|
11358
|
+
'US/Samoa',
|
|
11359
|
+
'PRC',
|
|
11360
|
+
'Asia/Vientiane',
|
|
11361
|
+
'Pacific/Kiritimati',
|
|
11362
|
+
'America/Matamoros',
|
|
11363
|
+
'America/Blanc-Sablon',
|
|
11364
|
+
'Asia/Riyadh',
|
|
11365
|
+
'Iceland',
|
|
11366
|
+
'Pacific/Pohnpei',
|
|
11367
|
+
'Asia/Ujung_Pandang',
|
|
11368
|
+
'Atlantic/South_Georgia',
|
|
11369
|
+
'Europe/Lisbon',
|
|
11370
|
+
'Asia/Harbin',
|
|
11371
|
+
'Europe/Oslo',
|
|
11372
|
+
'Asia/Novokuznetsk',
|
|
11373
|
+
'CST6CDT',
|
|
11374
|
+
'Atlantic/Canary',
|
|
11375
|
+
'America/Knox_IN',
|
|
11376
|
+
'Asia/Kuwait',
|
|
11377
|
+
'SystemV/HST10',
|
|
11378
|
+
'Pacific/Efate',
|
|
11379
|
+
'Africa/Lome',
|
|
11380
|
+
'America/Bogota',
|
|
11381
|
+
'America/Menominee',
|
|
11382
|
+
'America/Adak',
|
|
11383
|
+
'Pacific/Norfolk',
|
|
11384
|
+
'Europe/Kirov',
|
|
11385
|
+
'America/Resolute',
|
|
11386
|
+
'Pacific/Kanton',
|
|
11387
|
+
'Pacific/Tarawa',
|
|
11388
|
+
'Africa/Kampala',
|
|
11389
|
+
'Asia/Krasnoyarsk',
|
|
11390
|
+
'Greenwich',
|
|
11391
|
+
'SystemV/EST5',
|
|
11392
|
+
'America/Edmonton',
|
|
11393
|
+
'Europe/Podgorica',
|
|
11394
|
+
'Australia/South',
|
|
11395
|
+
'Canada/Central',
|
|
11396
|
+
'Africa/Bujumbura',
|
|
11397
|
+
'America/Santo_Domingo',
|
|
11398
|
+
'US/Eastern',
|
|
11399
|
+
'Europe/Minsk',
|
|
11400
|
+
'Pacific/Auckland',
|
|
11401
|
+
'Africa/Casablanca',
|
|
11402
|
+
'America/Glace_Bay',
|
|
11403
|
+
'Canada/Eastern',
|
|
11404
|
+
'Asia/Qatar',
|
|
11405
|
+
'Europe/Kiev',
|
|
11406
|
+
'Singapore',
|
|
11407
|
+
'Asia/Magadan',
|
|
11408
|
+
'SystemV/PST8',
|
|
11409
|
+
'America/Port-au-Prince',
|
|
11410
|
+
'Europe/Belfast',
|
|
11411
|
+
'America/St_Barthelemy',
|
|
11412
|
+
'Asia/Ashgabat',
|
|
11413
|
+
'Africa/Luanda',
|
|
11414
|
+
'America/Nipigon',
|
|
11415
|
+
'Atlantic/Jan_Mayen',
|
|
11416
|
+
'Brazil/Acre',
|
|
11417
|
+
'Asia/Muscat',
|
|
11418
|
+
'Asia/Bahrain',
|
|
11419
|
+
'Europe/Vilnius',
|
|
11420
|
+
'America/Fortaleza',
|
|
11421
|
+
'Etc/GMT0',
|
|
11422
|
+
'US/East-Indiana',
|
|
11423
|
+
'America/Hermosillo',
|
|
11424
|
+
'America/Cancun',
|
|
11425
|
+
'Africa/Maseru',
|
|
11426
|
+
'Pacific/Kosrae',
|
|
11427
|
+
'Africa/Kinshasa',
|
|
11428
|
+
'Asia/Kathmandu',
|
|
11429
|
+
'Asia/Seoul',
|
|
11430
|
+
'Australia/Sydney',
|
|
11431
|
+
'America/Lima',
|
|
11432
|
+
'Australia/LHI',
|
|
11433
|
+
'America/St_Lucia',
|
|
11434
|
+
'Europe/Madrid',
|
|
11435
|
+
'America/Bahia_Banderas',
|
|
11436
|
+
'America/Montserrat',
|
|
11437
|
+
'Asia/Brunei',
|
|
11438
|
+
'America/Santa_Isabel',
|
|
11439
|
+
'Canada/Mountain',
|
|
11440
|
+
'America/Cambridge_Bay',
|
|
11441
|
+
'Asia/Colombo',
|
|
11442
|
+
'Australia/West',
|
|
11443
|
+
'Indian/Antananarivo',
|
|
11444
|
+
'Australia/Brisbane',
|
|
11445
|
+
'Indian/Mayotte',
|
|
11446
|
+
'US/Indiana-Starke',
|
|
11447
|
+
'Asia/Urumqi',
|
|
11448
|
+
'US/Aleutian',
|
|
11449
|
+
'Europe/Volgograd',
|
|
11450
|
+
'America/Lower_Princes',
|
|
11451
|
+
'America/Vancouver',
|
|
11452
|
+
'Africa/Blantyre',
|
|
11453
|
+
'America/Rio_Branco',
|
|
11454
|
+
'America/Danmarkshavn',
|
|
11455
|
+
'America/Detroit',
|
|
11456
|
+
'America/Thule',
|
|
11457
|
+
'Africa/Lusaka',
|
|
11458
|
+
'Asia/Hong_Kong',
|
|
11459
|
+
'Iran',
|
|
11460
|
+
'America/Argentina/La_Rioja',
|
|
11461
|
+
'Africa/Dakar',
|
|
11462
|
+
'SystemV/CST6CDT',
|
|
11463
|
+
'America/Tortola',
|
|
11464
|
+
'America/Porto_Velho',
|
|
11465
|
+
'Asia/Sakhalin',
|
|
11466
|
+
'Etc/GMT+10',
|
|
11467
|
+
'America/Scoresbysund',
|
|
11468
|
+
'Asia/Kamchatka',
|
|
11469
|
+
'Asia/Thimbu',
|
|
11470
|
+
'Africa/Harare',
|
|
11471
|
+
'Etc/GMT+12',
|
|
11472
|
+
'Etc/GMT+11',
|
|
11473
|
+
'Navajo',
|
|
11474
|
+
'America/Nome',
|
|
11475
|
+
'Europe/Tallinn',
|
|
11476
|
+
'Turkey',
|
|
11477
|
+
'Africa/Khartoum',
|
|
11478
|
+
'Africa/Johannesburg',
|
|
11479
|
+
'Africa/Bangui',
|
|
11480
|
+
'Europe/Belgrade',
|
|
11481
|
+
'Jamaica',
|
|
11482
|
+
'Africa/Bissau',
|
|
11483
|
+
'Asia/Tehran',
|
|
11484
|
+
'WET',
|
|
11485
|
+
'Europe/Astrakhan',
|
|
11486
|
+
'Africa/Juba',
|
|
11487
|
+
'America/Campo_Grande',
|
|
11488
|
+
'America/Belem',
|
|
11489
|
+
'Etc/Greenwich',
|
|
11490
|
+
'Asia/Saigon',
|
|
11491
|
+
'America/Ensenada',
|
|
11492
|
+
'Pacific/Midway',
|
|
11493
|
+
'America/Jujuy',
|
|
11494
|
+
'Africa/Timbuktu',
|
|
11495
|
+
'America/Bahia',
|
|
11496
|
+
'America/Goose_Bay',
|
|
11497
|
+
'America/Virgin',
|
|
11498
|
+
'America/Pangnirtung',
|
|
11499
|
+
'Asia/Katmandu',
|
|
11500
|
+
'America/Phoenix',
|
|
11501
|
+
'Africa/Niamey',
|
|
11502
|
+
'America/Whitehorse',
|
|
11503
|
+
'Pacific/Noumea',
|
|
11504
|
+
'Asia/Tbilisi',
|
|
11505
|
+
'America/Montreal',
|
|
11506
|
+
'Asia/Makassar',
|
|
11507
|
+
'America/Argentina/San_Juan',
|
|
11508
|
+
'Hongkong',
|
|
11509
|
+
'UCT',
|
|
11510
|
+
'Asia/Nicosia',
|
|
11511
|
+
'America/Indiana/Winamac',
|
|
11512
|
+
'SystemV/MST7MDT',
|
|
11513
|
+
'America/Argentina/ComodRivadavia',
|
|
11514
|
+
'America/Boa_Vista',
|
|
11515
|
+
'America/Grenada',
|
|
11516
|
+
'Asia/Atyrau',
|
|
11517
|
+
'Australia/Darwin',
|
|
11518
|
+
'Asia/Khandyga',
|
|
11519
|
+
'Asia/Kuala_Lumpur',
|
|
11520
|
+
'Asia/Famagusta',
|
|
11521
|
+
'Asia/Thimphu',
|
|
11522
|
+
'Asia/Rangoon',
|
|
11523
|
+
'Europe/Bratislava',
|
|
11524
|
+
'Asia/Calcutta',
|
|
11525
|
+
'America/Argentina/Tucuman',
|
|
11526
|
+
'Asia/Kabul',
|
|
11527
|
+
'Indian/Cocos',
|
|
11528
|
+
'Japan',
|
|
11529
|
+
'Pacific/Tongatapu',
|
|
11530
|
+
'America/New_York',
|
|
11531
|
+
'Etc/GMT-12',
|
|
11532
|
+
'Etc/GMT-11',
|
|
11533
|
+
'America/Nuuk',
|
|
11534
|
+
'Etc/GMT-10',
|
|
11535
|
+
'SystemV/YST9YDT',
|
|
11536
|
+
'Europe/Ulyanovsk',
|
|
11537
|
+
'Etc/GMT-14',
|
|
11538
|
+
'Etc/GMT-13',
|
|
11539
|
+
'W-SU',
|
|
11540
|
+
'America/Merida',
|
|
11541
|
+
'EET',
|
|
11542
|
+
'America/Rosario',
|
|
11543
|
+
'Canada/Saskatchewan',
|
|
11544
|
+
'America/St_Kitts',
|
|
11545
|
+
'Arctic/Longyearbyen',
|
|
11546
|
+
'America/Fort_Nelson',
|
|
11547
|
+
'America/Caracas',
|
|
11548
|
+
'America/Guadeloupe',
|
|
11549
|
+
'Asia/Hebron',
|
|
11550
|
+
'Indian/Kerguelen',
|
|
11551
|
+
'SystemV/PST8PDT',
|
|
11552
|
+
'Africa/Monrovia',
|
|
11553
|
+
'Asia/Ust-Nera',
|
|
11554
|
+
'Egypt',
|
|
11555
|
+
'Asia/Srednekolymsk',
|
|
11556
|
+
'America/North_Dakota/New_Salem',
|
|
11557
|
+
'Asia/Anadyr',
|
|
11558
|
+
'Australia/Melbourne',
|
|
11559
|
+
'Asia/Irkutsk',
|
|
11560
|
+
'America/Shiprock',
|
|
11561
|
+
'America/Winnipeg',
|
|
11562
|
+
'Europe/Vatican',
|
|
11563
|
+
'Asia/Amman',
|
|
11564
|
+
'Etc/UTC',
|
|
11565
|
+
'SystemV/AST4ADT',
|
|
11566
|
+
'Asia/Tokyo',
|
|
11567
|
+
'America/Toronto',
|
|
11568
|
+
'Asia/Singapore',
|
|
11569
|
+
'Australia/Lindeman',
|
|
11570
|
+
'America/Los_Angeles',
|
|
11571
|
+
'SystemV/EST5EDT',
|
|
11572
|
+
'Pacific/Majuro',
|
|
11573
|
+
'America/Argentina/Buenos_Aires',
|
|
11574
|
+
'Europe/Nicosia',
|
|
11575
|
+
'Pacific/Guadalcanal',
|
|
11576
|
+
'Europe/Athens',
|
|
11577
|
+
'US/Pacific',
|
|
11578
|
+
'Europe/Monaco'
|
|
11579
|
+
];
|
|
11580
|
+
|
|
11581
|
+
const Days = {
|
|
11582
|
+
MON: 'Monday',
|
|
11583
|
+
TUE: 'Tuesday',
|
|
11584
|
+
WED: 'Wednesday',
|
|
11585
|
+
THU: 'Thursday',
|
|
11586
|
+
FRI: 'Friday',
|
|
11587
|
+
SAT: 'Saturday',
|
|
11588
|
+
SUN: 'Sunday'
|
|
11589
|
+
};
|
|
11590
|
+
const MonthWeeks = {
|
|
11591
|
+
'#1': 'First',
|
|
11592
|
+
'#2': 'Second',
|
|
11593
|
+
'#3': 'Third',
|
|
11594
|
+
'#4': 'Fourth',
|
|
11595
|
+
'#5': 'Fifth',
|
|
11596
|
+
L: 'Last'
|
|
11597
|
+
};
|
|
11598
|
+
var Months;
|
|
11599
|
+
(function (Months) {
|
|
11600
|
+
Months[Months["January"] = 1] = "January";
|
|
11601
|
+
Months[Months["February"] = 2] = "February";
|
|
11602
|
+
Months[Months["March"] = 3] = "March";
|
|
11603
|
+
Months[Months["April"] = 4] = "April";
|
|
11604
|
+
Months[Months["May"] = 5] = "May";
|
|
11605
|
+
Months[Months["June"] = 6] = "June";
|
|
11606
|
+
Months[Months["July"] = 7] = "July";
|
|
11607
|
+
Months[Months["August"] = 8] = "August";
|
|
11608
|
+
Months[Months["September"] = 9] = "September";
|
|
11609
|
+
Months[Months["October"] = 10] = "October";
|
|
11610
|
+
Months[Months["November"] = 11] = "November";
|
|
11611
|
+
Months[Months["December"] = 12] = "December";
|
|
11612
|
+
})(Months || (Months = {}));
|
|
11613
|
+
/**
|
|
11614
|
+
* CpsSchedulerComponent is a component designed to facilitate the creation of Amazon EventBridge CRON expressions.
|
|
11615
|
+
* @group Components
|
|
11616
|
+
*/
|
|
11617
|
+
class CpsSchedulerComponent {
|
|
11618
|
+
// eslint-disable-next-line no-useless-constructor
|
|
11619
|
+
constructor(_fb, _cdr) {
|
|
11620
|
+
this._fb = _fb;
|
|
11621
|
+
this._cdr = _cdr;
|
|
11622
|
+
/**
|
|
11623
|
+
* Label of the component.
|
|
11624
|
+
* @group Props
|
|
11625
|
+
*/
|
|
11626
|
+
this.label = '';
|
|
11627
|
+
/**
|
|
11628
|
+
* Cron expression value.
|
|
11629
|
+
* @group Props
|
|
11630
|
+
*/
|
|
11631
|
+
this.cron = '';
|
|
11632
|
+
/**
|
|
11633
|
+
* Time zone value.
|
|
11634
|
+
* @group Props
|
|
11635
|
+
*/
|
|
11636
|
+
this.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC';
|
|
11637
|
+
/**
|
|
11638
|
+
* Determines whether to show the 'Not set' tab.
|
|
11639
|
+
* @group Props
|
|
11640
|
+
*/
|
|
11641
|
+
this.showNotSet = true;
|
|
11642
|
+
/**
|
|
11643
|
+
* Determines whether to show the 'Advanced' tab.
|
|
11644
|
+
* @group Props
|
|
11645
|
+
*/
|
|
11646
|
+
this.showAdvanced = true;
|
|
11647
|
+
/**
|
|
11648
|
+
* Determines whether to show the time zone selector.
|
|
11649
|
+
* @group Props
|
|
11650
|
+
*/
|
|
11651
|
+
this.showTimeZone = false;
|
|
11652
|
+
/**
|
|
11653
|
+
* Default time format for the component.
|
|
11654
|
+
* @group Props
|
|
11655
|
+
*/
|
|
11656
|
+
this.defaultTime = '00:00';
|
|
11657
|
+
/**
|
|
11658
|
+
* Determines whether to use 24-hour time format.
|
|
11659
|
+
* @group Props
|
|
11660
|
+
*/
|
|
11661
|
+
this.use24HourTime = true;
|
|
11662
|
+
/**
|
|
11663
|
+
* Determines whether the component is disabled.
|
|
11664
|
+
* @group Props
|
|
11665
|
+
*/
|
|
11666
|
+
this.disabled = false;
|
|
11667
|
+
/**
|
|
11668
|
+
* Information tooltip for the component.
|
|
11669
|
+
* @group Props
|
|
11670
|
+
*/
|
|
11671
|
+
this.infoTooltip = '';
|
|
11672
|
+
/**
|
|
11673
|
+
* Callback to invoke on cron expression value change.
|
|
11674
|
+
* @param {string} string - cron expression value changed.
|
|
11675
|
+
* @group Emits
|
|
11676
|
+
*/
|
|
11677
|
+
this.cronChange = new EventEmitter();
|
|
11678
|
+
/**
|
|
11679
|
+
* Callback to invoke on time zone change.
|
|
11680
|
+
* @param {string} string - time zone changed.
|
|
11681
|
+
* @group Emits
|
|
11682
|
+
*/
|
|
11683
|
+
this.timeZoneChange = new EventEmitter();
|
|
11684
|
+
this.scheduleTypes = [
|
|
11685
|
+
{ label: 'Not set', value: 'Not set' },
|
|
11686
|
+
{ label: 'Minutes', value: 'Minutes' },
|
|
11687
|
+
{ label: 'Hourly', value: 'Hourly' },
|
|
11688
|
+
{ label: 'Daily', value: 'Daily' },
|
|
11689
|
+
{ label: 'Weekly', value: 'Weekly' },
|
|
11690
|
+
{ label: 'Monthly', value: 'Monthly' },
|
|
11691
|
+
{ label: 'Yearly', value: 'Yearly' },
|
|
11692
|
+
{ label: 'Advanced', value: 'Advanced' }
|
|
11693
|
+
];
|
|
11694
|
+
this.activeScheduleType = 'Not set';
|
|
11695
|
+
this.selectOptions = this._getSelectOptions();
|
|
11696
|
+
this.timeZoneOptions = timeZones.map((tz) => ({ label: tz, value: tz }));
|
|
11697
|
+
this._isDirty = false;
|
|
11698
|
+
this._minutesDefault = '0/1 * 1/1 * ? *';
|
|
11699
|
+
}
|
|
11700
|
+
ngOnInit() {
|
|
11701
|
+
this.state = this._getDefaultState();
|
|
11702
|
+
if (!this.showAdvanced) {
|
|
11703
|
+
this.scheduleTypes.pop();
|
|
11704
|
+
}
|
|
11705
|
+
if (!this.showNotSet) {
|
|
11706
|
+
this.scheduleTypes.shift();
|
|
11707
|
+
if (!this.cron)
|
|
11708
|
+
this.cron = this._minutesDefault;
|
|
11709
|
+
}
|
|
11710
|
+
this._handleModelChange(this.cron);
|
|
11711
|
+
this.form = this._fb.group({
|
|
11712
|
+
advanced: [
|
|
11713
|
+
this.state.advanced.expression ?? '',
|
|
11714
|
+
[this._validateAdvancedExpr]
|
|
11715
|
+
]
|
|
11716
|
+
});
|
|
11717
|
+
}
|
|
11718
|
+
ngOnChanges(changes) {
|
|
11719
|
+
const newCron = changes.value;
|
|
11720
|
+
if (newCron && !newCron.firstChange) {
|
|
11721
|
+
this._handleModelChange(this.cron);
|
|
11722
|
+
}
|
|
11723
|
+
}
|
|
11724
|
+
setActiveScheduleType(value) {
|
|
11725
|
+
if (!this.disabled) {
|
|
11726
|
+
this.activeScheduleType = value;
|
|
11727
|
+
this.regenerateCron(true);
|
|
11728
|
+
}
|
|
11729
|
+
if (value && this.form) {
|
|
11730
|
+
if (value === 'Advanced') {
|
|
11731
|
+
this.form.controls.advanced.addValidators(Validators.required);
|
|
11732
|
+
this.form.controls.advanced.updateValueAndValidity();
|
|
11733
|
+
}
|
|
11734
|
+
else {
|
|
11735
|
+
this.form.controls.advanced.removeValidators(Validators.required);
|
|
11736
|
+
this.form.controls.advanced.setErrors(null);
|
|
11737
|
+
}
|
|
11738
|
+
}
|
|
11739
|
+
}
|
|
11740
|
+
regenerateCron(tabChange) {
|
|
11741
|
+
this._isDirty = true;
|
|
11742
|
+
switch (this.activeScheduleType) {
|
|
11743
|
+
case 'Minutes':
|
|
11744
|
+
this._updateCron(`0/${this.state.minutes.minutes} * 1/1 * ? *`);
|
|
11745
|
+
break;
|
|
11746
|
+
case 'Hourly':
|
|
11747
|
+
this._updateCron(`${this.state.hourly.minutes} 0/${this.state.hourly.hours} 1/1 * ? *`);
|
|
11748
|
+
break;
|
|
11749
|
+
case 'Daily':
|
|
11750
|
+
switch (this.state.daily.subTab) {
|
|
11751
|
+
case 'everyDays':
|
|
11752
|
+
this._updateCron(`${this.state.daily.everyDays.minutes} ${this._hourToCron(this.state.daily.everyDays.hours, this.state.daily.everyDays.hourType)} 1/${this.state.daily.everyDays.days} * ? *`);
|
|
11753
|
+
break;
|
|
11754
|
+
case 'everyWeekDay':
|
|
11755
|
+
this._updateCron(`${this.state.daily.everyWeekDay.minutes} ${this._hourToCron(this.state.daily.everyWeekDay.hours, this.state.daily.everyWeekDay.hourType)} ? * MON-FRI *`);
|
|
11756
|
+
break;
|
|
11757
|
+
default:
|
|
11758
|
+
throw new Error('Invalid cron daily subtab selection');
|
|
11759
|
+
}
|
|
11760
|
+
break;
|
|
11761
|
+
case 'Weekly': {
|
|
11762
|
+
const days = this.selectOptions.days
|
|
11763
|
+
.map((d) => d.value)
|
|
11764
|
+
.reduce((acc, day) => (this.state.weekly[day] ? acc.concat([day]) : acc), [])
|
|
11765
|
+
.join(',');
|
|
11766
|
+
this._updateCron(`${this.state.weekly.minutes} ${this._hourToCron(this.state.weekly.hours, this.state.weekly.hourType)} ? * ${days} *`);
|
|
11767
|
+
break;
|
|
11768
|
+
}
|
|
11769
|
+
case 'Monthly': {
|
|
11770
|
+
switch (this.state.monthly.subTab) {
|
|
11771
|
+
case 'specificDay': {
|
|
11772
|
+
const day = this.state.monthly.runOnWeekday
|
|
11773
|
+
? `${this.state.monthly.specificDay.day}W`
|
|
11774
|
+
: this.state.monthly.specificDay.day;
|
|
11775
|
+
this._updateCron(`${this.state.monthly.specificDay.minutes} ${this._hourToCron(this.state.monthly.specificDay.hours, this.state.monthly.specificDay.hourType)} ${day} 1/${this.state.monthly.specificDay.months} ? *`);
|
|
11776
|
+
break;
|
|
11777
|
+
}
|
|
11778
|
+
case 'specificWeekDay':
|
|
11779
|
+
this._updateCron(`${this.state.monthly.specificWeekDay.minutes} ${this._hourToCron(this.state.monthly.specificWeekDay.hours, this.state.monthly.specificWeekDay.hourType)} ? ${this.state.monthly.specificWeekDay.startMonth}/${this.state.monthly.specificWeekDay.months} ${this.state.monthly.specificWeekDay.day}${this.state.monthly.specificWeekDay.monthWeek} *`);
|
|
11780
|
+
break;
|
|
11781
|
+
default:
|
|
11782
|
+
throw new Error('Invalid cron monthly subtab selection');
|
|
11783
|
+
}
|
|
11784
|
+
break;
|
|
11785
|
+
}
|
|
11786
|
+
case 'Yearly':
|
|
11787
|
+
switch (this.state.yearly.subTab) {
|
|
11788
|
+
case 'specificMonthDay': {
|
|
11789
|
+
const day = this.state.yearly.runOnWeekday
|
|
11790
|
+
? `${this.state.yearly.specificMonthDay.day}W`
|
|
11791
|
+
: this.state.yearly.specificMonthDay.day;
|
|
11792
|
+
this._updateCron(`${this.state.yearly.specificMonthDay.minutes} ${this._hourToCron(this.state.yearly.specificMonthDay.hours, this.state.yearly.specificMonthDay.hourType)} ${day} ${this.state.yearly.specificMonthDay.month} ? *`);
|
|
11793
|
+
break;
|
|
11794
|
+
}
|
|
11795
|
+
case 'specificMonthWeek':
|
|
11796
|
+
this._updateCron(`${this.state.yearly.specificMonthWeek.minutes} ${this._hourToCron(this.state.yearly.specificMonthWeek.hours, this.state.yearly.specificMonthWeek.hourType)} ? ${this.state.yearly.specificMonthWeek.month} ${this.state.yearly.specificMonthWeek.day}${this.state.yearly.specificMonthWeek.monthWeek} *`);
|
|
11797
|
+
break;
|
|
11798
|
+
default:
|
|
11799
|
+
throw new Error('Invalid cron yearly subtab selection');
|
|
11800
|
+
}
|
|
11801
|
+
break;
|
|
11802
|
+
case 'Advanced':
|
|
11803
|
+
if (!tabChange)
|
|
11804
|
+
this._updateCron(this.form.value.advanced || '');
|
|
11805
|
+
this.form.controls.advanced.setValue(this.cron);
|
|
11806
|
+
break;
|
|
11807
|
+
default:
|
|
11808
|
+
if (this.showNotSet)
|
|
11809
|
+
this._updateCron('');
|
|
11810
|
+
else
|
|
11811
|
+
throw new Error('Invalid cron type');
|
|
11812
|
+
}
|
|
11813
|
+
}
|
|
11814
|
+
onTimeZoneChanged(value) {
|
|
11815
|
+
if (!this.showTimeZone)
|
|
11816
|
+
return;
|
|
11817
|
+
this.timeZoneChange.emit(value);
|
|
11818
|
+
}
|
|
11819
|
+
onTimeChanged(value, target) {
|
|
11820
|
+
target.hours = this._stringToNum(value.hours);
|
|
11821
|
+
target.minutes = this._stringToNum(value.minutes);
|
|
11822
|
+
this.regenerateCron();
|
|
11823
|
+
}
|
|
11824
|
+
formatTimeValue(value) {
|
|
11825
|
+
return {
|
|
11826
|
+
hours: this._numToString(value.hours),
|
|
11827
|
+
minutes: this._numToString(value.minutes)
|
|
11828
|
+
};
|
|
11829
|
+
}
|
|
11830
|
+
_updateCron(value) {
|
|
11831
|
+
if (this.cron === value)
|
|
11832
|
+
return;
|
|
11833
|
+
this.cron = value;
|
|
11834
|
+
this.cronChange.emit(this.cron);
|
|
11835
|
+
}
|
|
11836
|
+
_isValidCron(cron) {
|
|
11837
|
+
if (typeof cron !== 'string')
|
|
11838
|
+
return false;
|
|
11839
|
+
if (!this.showNotSet) {
|
|
11840
|
+
if (!cron)
|
|
11841
|
+
return false;
|
|
11842
|
+
}
|
|
11843
|
+
else if (cron === '')
|
|
11844
|
+
return true;
|
|
11845
|
+
const parts = cron.split(' ');
|
|
11846
|
+
if (parts.length !== 6) {
|
|
11847
|
+
return false;
|
|
11848
|
+
}
|
|
11849
|
+
return true;
|
|
11850
|
+
}
|
|
11851
|
+
_validateAdvancedExpr(c) {
|
|
11852
|
+
const cron = c.value;
|
|
11853
|
+
if (!cron)
|
|
11854
|
+
return null;
|
|
11855
|
+
const splits = cron?.split(' ') || [];
|
|
11856
|
+
if (splits.length !== 6)
|
|
11857
|
+
return { invalidExpression: 'Invalid expression' };
|
|
11858
|
+
const cronSeven = `0 ${cron}`;
|
|
11859
|
+
return cronSeven.match(/\d+ 0\/\d+ \* 1\/1 \* \? \*/) ||
|
|
11860
|
+
cronSeven.match(/\d+ \d+ 0\/\d+ 1\/1 \* \? \*/) ||
|
|
11861
|
+
cronSeven.match(/\d+ \d+ \d+ 1\/\d+ \* \? \*/) ||
|
|
11862
|
+
cronSeven.match(/\d+ \d+ \d+ \? \* MON-FRI \*/) ||
|
|
11863
|
+
cronSeven.match(/\d+ \d+ \d+ \? \* (MON|TUE|WED|THU|FRI|SAT|SUN)(,(MON|TUE|WED|THU|FRI|SAT|SUN))* \*/) ||
|
|
11864
|
+
cronSeven.match(/\d+ \d+ \d+ (\d+|L|LW|1W) 1\/\d+ \? \*/) ||
|
|
11865
|
+
cronSeven.match(/\d+ \d+ \d+ \? \d+\/\d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \*/) ||
|
|
11866
|
+
cronSeven.match(/\d+ \d+ \d+ (\d+|L|LW|1W) \d+ \? \*/) ||
|
|
11867
|
+
cronSeven.match(/\d+ \d+ \d+ \? \d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \*/)
|
|
11868
|
+
? null
|
|
11869
|
+
: { invalidExpression: 'Invalid expression' };
|
|
11870
|
+
}
|
|
11871
|
+
_getAmPmHour(hour) {
|
|
11872
|
+
return this.use24HourTime ? hour : ((hour + 11) % 12) + 1;
|
|
11873
|
+
}
|
|
11874
|
+
_getHourType(hour) {
|
|
11875
|
+
return this.use24HourTime ? undefined : hour >= 12 ? 'PM' : 'AM';
|
|
11876
|
+
}
|
|
11877
|
+
_hourToCron(hour, hourType) {
|
|
11878
|
+
if (this.use24HourTime) {
|
|
11879
|
+
return hour;
|
|
11880
|
+
}
|
|
11881
|
+
else {
|
|
11882
|
+
return hourType === 'AM'
|
|
11883
|
+
? hour === 12
|
|
11884
|
+
? 0
|
|
11885
|
+
: hour
|
|
11886
|
+
: hour === 12
|
|
11887
|
+
? 12
|
|
11888
|
+
: hour + 12;
|
|
11889
|
+
}
|
|
11890
|
+
}
|
|
11891
|
+
_handleModelChange(cron) {
|
|
11892
|
+
if (!this._isValidCron(cron)) {
|
|
11893
|
+
console.error('Invalid cron value:', cron);
|
|
11894
|
+
this.cron = this.showNotSet ? '' : this._minutesDefault;
|
|
11895
|
+
return;
|
|
11896
|
+
}
|
|
11897
|
+
if (this._isDirty) {
|
|
11898
|
+
this._isDirty = false;
|
|
11899
|
+
return;
|
|
11900
|
+
}
|
|
11901
|
+
else {
|
|
11902
|
+
this._isDirty = false;
|
|
11903
|
+
}
|
|
11904
|
+
if (!cron || cron.length < 1) {
|
|
11905
|
+
this.activeScheduleType = 'Not set';
|
|
11906
|
+
this._cdr.detectChanges();
|
|
11907
|
+
return;
|
|
11908
|
+
}
|
|
11909
|
+
const cronSeven = `0 ${cron}`;
|
|
11910
|
+
const [minutes, hours, dayOfMonth, month, dayOfWeek] = cron.split(' ');
|
|
11911
|
+
if (cronSeven.match(/\d+ 0\/\d+ \* 1\/1 \* \? \*/)) {
|
|
11912
|
+
this.activeScheduleType = 'Minutes';
|
|
11913
|
+
this.state.minutes.minutes = Number(minutes.substring(2));
|
|
11914
|
+
}
|
|
11915
|
+
else if (cronSeven.match(/\d+ \d+ 0\/\d+ 1\/1 \* \? \*/)) {
|
|
11916
|
+
this.activeScheduleType = 'Hourly';
|
|
11917
|
+
this.state.hourly.hours = Number(hours.substring(2));
|
|
11918
|
+
this.state.hourly.minutes = Number(minutes);
|
|
11919
|
+
}
|
|
11920
|
+
else if (cronSeven.match(/\d+ \d+ \d+ 1\/\d+ \* \? \*/)) {
|
|
11921
|
+
this.activeScheduleType = 'Daily';
|
|
11922
|
+
this.state.daily.subTab = 'everyDays';
|
|
11923
|
+
this.state.daily.everyDays.days = Number(dayOfMonth.substring(2));
|
|
11924
|
+
const parsedHours = Number(hours);
|
|
11925
|
+
this.state.daily.everyDays.hours = this._getAmPmHour(parsedHours);
|
|
11926
|
+
this.state.daily.everyDays.hourType = this._getHourType(parsedHours);
|
|
11927
|
+
this.state.daily.everyDays.minutes = Number(minutes);
|
|
11928
|
+
}
|
|
11929
|
+
else if (cronSeven.match(/\d+ \d+ \d+ \? \* MON-FRI \*/)) {
|
|
11930
|
+
this.activeScheduleType = 'Daily';
|
|
11931
|
+
this.state.daily.subTab = 'everyWeekDay';
|
|
11932
|
+
const parsedHours = Number(hours);
|
|
11933
|
+
this.state.daily.everyWeekDay.hours = this._getAmPmHour(parsedHours);
|
|
11934
|
+
this.state.daily.everyWeekDay.hourType = this._getHourType(parsedHours);
|
|
11935
|
+
this.state.daily.everyWeekDay.minutes = Number(minutes);
|
|
11936
|
+
}
|
|
11937
|
+
else if (cronSeven.match(/\d+ \d+ \d+ \? \* (MON|TUE|WED|THU|FRI|SAT|SUN)(,(MON|TUE|WED|THU|FRI|SAT|SUN))* \*/)) {
|
|
11938
|
+
this.activeScheduleType = 'Weekly';
|
|
11939
|
+
this.selectOptions.days
|
|
11940
|
+
.map((d) => d.value)
|
|
11941
|
+
.forEach((weekDay) => (this.state.weekly[weekDay] = false));
|
|
11942
|
+
dayOfWeek
|
|
11943
|
+
.split(',')
|
|
11944
|
+
.forEach((weekDay) => (this.state.weekly[weekDay] = true));
|
|
11945
|
+
const parsedHours = Number(hours);
|
|
11946
|
+
this.state.weekly.hours = this._getAmPmHour(parsedHours);
|
|
11947
|
+
this.state.weekly.hourType = this._getHourType(parsedHours);
|
|
11948
|
+
this.state.weekly.minutes = Number(minutes);
|
|
11949
|
+
}
|
|
11950
|
+
else if (cronSeven.match(/\d+ \d+ \d+ (\d+|L|LW|1W) 1\/\d+ \? \*/)) {
|
|
11951
|
+
this.activeScheduleType = 'Monthly';
|
|
11952
|
+
this.state.monthly.subTab = 'specificDay';
|
|
11953
|
+
if (dayOfMonth.indexOf('W') !== -1) {
|
|
11954
|
+
this.state.monthly.specificDay.day = dayOfMonth.charAt(0);
|
|
11955
|
+
this.state.monthly.runOnWeekday = true;
|
|
11956
|
+
}
|
|
11957
|
+
else {
|
|
11958
|
+
this.state.monthly.specificDay.day = dayOfMonth;
|
|
11959
|
+
}
|
|
11960
|
+
this.state.monthly.specificDay.months = Number(month.substring(2));
|
|
11961
|
+
const parsedHours = Number(hours);
|
|
11962
|
+
this.state.monthly.specificDay.hours = this._getAmPmHour(parsedHours);
|
|
11963
|
+
this.state.monthly.specificDay.hourType = this._getHourType(parsedHours);
|
|
11964
|
+
this.state.monthly.specificDay.minutes = Number(minutes);
|
|
11965
|
+
}
|
|
11966
|
+
else if (cronSeven.match(/\d+ \d+ \d+ \? \d+\/\d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \*/)) {
|
|
11967
|
+
const day = dayOfWeek.substring(0, 3);
|
|
11968
|
+
const monthWeek = dayOfWeek.substring(3);
|
|
11969
|
+
this.activeScheduleType = 'Monthly';
|
|
11970
|
+
this.state.monthly.subTab = 'specificWeekDay';
|
|
11971
|
+
this.state.monthly.specificWeekDay.monthWeek = monthWeek;
|
|
11972
|
+
this.state.monthly.specificWeekDay.day = day;
|
|
11973
|
+
if (month.indexOf('/') !== -1) {
|
|
11974
|
+
const [startMonth, months] = month.split('/').map(Number);
|
|
11975
|
+
this.state.monthly.specificWeekDay.months = months;
|
|
11976
|
+
this.state.monthly.specificWeekDay.startMonth = startMonth;
|
|
11977
|
+
}
|
|
11978
|
+
const parsedHours = Number(hours);
|
|
11979
|
+
this.state.monthly.specificWeekDay.hours = this._getAmPmHour(parsedHours);
|
|
11980
|
+
this.state.monthly.specificWeekDay.hourType =
|
|
11981
|
+
this._getHourType(parsedHours);
|
|
11982
|
+
this.state.monthly.specificWeekDay.minutes = Number(minutes);
|
|
11983
|
+
}
|
|
11984
|
+
else if (cronSeven.match(/\d+ \d+ \d+ (\d+|L|LW|1W) \d+ \? \*/)) {
|
|
11985
|
+
this.activeScheduleType = 'Yearly';
|
|
11986
|
+
this.state.yearly.subTab = 'specificMonthDay';
|
|
11987
|
+
this.state.yearly.specificMonthDay.month = Number(month);
|
|
11988
|
+
if (dayOfMonth.indexOf('W') !== -1) {
|
|
11989
|
+
this.state.yearly.specificMonthDay.day = dayOfMonth.charAt(0);
|
|
11990
|
+
this.state.yearly.runOnWeekday = true;
|
|
11991
|
+
}
|
|
11992
|
+
else {
|
|
11993
|
+
this.state.yearly.specificMonthDay.day = dayOfMonth;
|
|
11994
|
+
}
|
|
11995
|
+
const parsedHours = Number(hours);
|
|
11996
|
+
this.state.yearly.specificMonthDay.hours = this._getAmPmHour(parsedHours);
|
|
11997
|
+
this.state.yearly.specificMonthDay.hourType =
|
|
11998
|
+
this._getHourType(parsedHours);
|
|
11999
|
+
this.state.yearly.specificMonthDay.minutes = Number(minutes);
|
|
12000
|
+
}
|
|
12001
|
+
else if (cronSeven.match(/\d+ \d+ \d+ \? \d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \*/)) {
|
|
12002
|
+
const day = dayOfWeek.substring(0, 3);
|
|
12003
|
+
const monthWeek = dayOfWeek.substring(3);
|
|
12004
|
+
this.activeScheduleType = 'Yearly';
|
|
12005
|
+
this.state.yearly.subTab = 'specificMonthWeek';
|
|
12006
|
+
this.state.yearly.specificMonthWeek.monthWeek = monthWeek;
|
|
12007
|
+
this.state.yearly.specificMonthWeek.day = day;
|
|
12008
|
+
this.state.yearly.specificMonthWeek.month = Number(month);
|
|
12009
|
+
const parsedHours = Number(hours);
|
|
12010
|
+
this.state.yearly.specificMonthWeek.hours =
|
|
12011
|
+
this._getAmPmHour(parsedHours);
|
|
12012
|
+
this.state.yearly.specificMonthWeek.hourType =
|
|
12013
|
+
this._getHourType(parsedHours);
|
|
12014
|
+
this.state.yearly.specificMonthWeek.minutes = Number(minutes);
|
|
12015
|
+
}
|
|
12016
|
+
else {
|
|
12017
|
+
this.activeScheduleType = 'Advanced';
|
|
12018
|
+
this.form.controls.advanced.setValue(cron);
|
|
12019
|
+
}
|
|
12020
|
+
this._cdr.detectChanges();
|
|
12021
|
+
}
|
|
12022
|
+
_getDefaultState() {
|
|
12023
|
+
const [defaultHours, defaultMinutes] = this.defaultTime
|
|
12024
|
+
.split(':')
|
|
12025
|
+
.map(Number);
|
|
12026
|
+
return {
|
|
12027
|
+
minutes: {
|
|
12028
|
+
minutes: 1
|
|
12029
|
+
},
|
|
12030
|
+
hourly: {
|
|
12031
|
+
hours: 1,
|
|
12032
|
+
minutes: 0
|
|
12033
|
+
},
|
|
12034
|
+
daily: {
|
|
12035
|
+
subTab: 'everyDays',
|
|
12036
|
+
everyDays: {
|
|
12037
|
+
days: 1,
|
|
12038
|
+
hours: this._getAmPmHour(defaultHours),
|
|
12039
|
+
minutes: defaultMinutes,
|
|
12040
|
+
hourType: this._getHourType(defaultHours)
|
|
12041
|
+
},
|
|
12042
|
+
everyWeekDay: {
|
|
12043
|
+
hours: this._getAmPmHour(defaultHours),
|
|
12044
|
+
minutes: defaultMinutes,
|
|
12045
|
+
hourType: this._getHourType(defaultHours)
|
|
12046
|
+
}
|
|
12047
|
+
},
|
|
12048
|
+
weekly: {
|
|
12049
|
+
MON: true,
|
|
12050
|
+
TUE: false,
|
|
12051
|
+
WED: false,
|
|
12052
|
+
THU: false,
|
|
12053
|
+
FRI: false,
|
|
12054
|
+
SAT: false,
|
|
12055
|
+
SUN: false,
|
|
12056
|
+
hours: this._getAmPmHour(defaultHours),
|
|
12057
|
+
minutes: defaultMinutes,
|
|
12058
|
+
hourType: this._getHourType(defaultHours)
|
|
12059
|
+
},
|
|
12060
|
+
monthly: {
|
|
12061
|
+
subTab: 'specificDay',
|
|
12062
|
+
runOnWeekday: false,
|
|
12063
|
+
specificDay: {
|
|
12064
|
+
day: '1',
|
|
12065
|
+
months: 1,
|
|
12066
|
+
hours: this._getAmPmHour(defaultHours),
|
|
12067
|
+
minutes: defaultMinutes,
|
|
12068
|
+
hourType: this._getHourType(defaultHours)
|
|
12069
|
+
},
|
|
12070
|
+
specificWeekDay: {
|
|
12071
|
+
monthWeek: '#1',
|
|
12072
|
+
day: 'MON',
|
|
12073
|
+
startMonth: 1,
|
|
12074
|
+
months: 1,
|
|
12075
|
+
hours: this._getAmPmHour(defaultHours),
|
|
12076
|
+
minutes: defaultMinutes,
|
|
12077
|
+
hourType: this._getHourType(defaultHours)
|
|
12078
|
+
}
|
|
12079
|
+
},
|
|
12080
|
+
yearly: {
|
|
12081
|
+
subTab: 'specificMonthDay',
|
|
12082
|
+
runOnWeekday: false,
|
|
12083
|
+
specificMonthDay: {
|
|
12084
|
+
month: 1,
|
|
12085
|
+
day: '1',
|
|
12086
|
+
hours: this._getAmPmHour(defaultHours),
|
|
12087
|
+
minutes: defaultMinutes,
|
|
12088
|
+
hourType: this._getHourType(defaultHours)
|
|
12089
|
+
},
|
|
12090
|
+
specificMonthWeek: {
|
|
12091
|
+
monthWeek: '#1',
|
|
12092
|
+
day: 'MON',
|
|
12093
|
+
month: 1,
|
|
12094
|
+
hours: this._getAmPmHour(defaultHours),
|
|
12095
|
+
minutes: defaultMinutes,
|
|
12096
|
+
hourType: this._getHourType(defaultHours)
|
|
12097
|
+
}
|
|
12098
|
+
},
|
|
12099
|
+
advanced: {
|
|
12100
|
+
expression: this.cron
|
|
12101
|
+
}
|
|
12102
|
+
};
|
|
12103
|
+
}
|
|
12104
|
+
_getRange(startFrom, until) {
|
|
12105
|
+
return Array.from({ length: until + 1 - startFrom }, (_, k) => k + startFrom);
|
|
12106
|
+
}
|
|
12107
|
+
_getSelectOptions() {
|
|
12108
|
+
return {
|
|
12109
|
+
monthsNumeric: this._getRange(1, 12).map((month) => ({
|
|
12110
|
+
label: month,
|
|
12111
|
+
value: month
|
|
12112
|
+
})),
|
|
12113
|
+
months: this._getRange(1, 12).map((month) => ({
|
|
12114
|
+
label: Months[month],
|
|
12115
|
+
value: month
|
|
12116
|
+
})),
|
|
12117
|
+
monthWeeks: Object.entries(MonthWeeks).map(([key, value]) => ({
|
|
12118
|
+
label: value,
|
|
12119
|
+
value: key
|
|
12120
|
+
})),
|
|
12121
|
+
days: Object.entries(Days).map(([key, value]) => ({
|
|
12122
|
+
label: value,
|
|
12123
|
+
value: key
|
|
12124
|
+
})),
|
|
12125
|
+
minutes: this._getRange(1, 59).map((min) => ({
|
|
12126
|
+
label: min,
|
|
12127
|
+
value: min
|
|
12128
|
+
})),
|
|
12129
|
+
fullMinutes: this._getRange(0, 59).map((min) => ({
|
|
12130
|
+
label: this._numToString(min),
|
|
12131
|
+
value: min
|
|
12132
|
+
})),
|
|
12133
|
+
hours: this._getRange(1, 23).map((hour) => ({
|
|
12134
|
+
label: hour,
|
|
12135
|
+
value: hour
|
|
12136
|
+
})),
|
|
12137
|
+
monthDays: this._getRange(1, 31).map((day) => ({
|
|
12138
|
+
label: day,
|
|
12139
|
+
value: day
|
|
12140
|
+
})),
|
|
12141
|
+
monthDaysWithLasts: [...this._getRange(1, 31).map(String), 'L'].map((mdl) => {
|
|
12142
|
+
return {
|
|
12143
|
+
label: this._getMonthDayLabel(mdl),
|
|
12144
|
+
value: mdl
|
|
12145
|
+
};
|
|
12146
|
+
})
|
|
12147
|
+
};
|
|
12148
|
+
}
|
|
12149
|
+
_getMonthDayLabel(month) {
|
|
12150
|
+
if (month === 'L') {
|
|
12151
|
+
return 'Last Day';
|
|
12152
|
+
}
|
|
12153
|
+
else if (month === 'LW') {
|
|
12154
|
+
return 'Last Weekday';
|
|
12155
|
+
}
|
|
12156
|
+
else if (month === '1W') {
|
|
12157
|
+
return 'First Weekday';
|
|
12158
|
+
}
|
|
12159
|
+
else {
|
|
12160
|
+
let suffix = '';
|
|
12161
|
+
if (month.length > 1) {
|
|
12162
|
+
const secondToLastDigit = month.charAt(month.length - 2);
|
|
12163
|
+
if (secondToLastDigit === '1') {
|
|
12164
|
+
suffix = 'th';
|
|
12165
|
+
}
|
|
12166
|
+
}
|
|
12167
|
+
if (!suffix) {
|
|
12168
|
+
const lastDigit = month.charAt(month.length - 1);
|
|
12169
|
+
switch (lastDigit) {
|
|
12170
|
+
case '1':
|
|
12171
|
+
suffix = 'st';
|
|
12172
|
+
break;
|
|
12173
|
+
case '2':
|
|
12174
|
+
suffix = 'nd';
|
|
12175
|
+
break;
|
|
12176
|
+
case '3':
|
|
12177
|
+
suffix = 'rd';
|
|
12178
|
+
break;
|
|
12179
|
+
default:
|
|
12180
|
+
suffix = 'th';
|
|
12181
|
+
break;
|
|
12182
|
+
}
|
|
12183
|
+
}
|
|
12184
|
+
return `${month}${suffix} day`;
|
|
12185
|
+
}
|
|
12186
|
+
}
|
|
12187
|
+
_numToString(value) {
|
|
12188
|
+
return value >= 0 && value <= 9 ? '0' + value : value.toString();
|
|
12189
|
+
}
|
|
12190
|
+
_stringToNum(value) {
|
|
12191
|
+
const res = Number(value);
|
|
12192
|
+
return isNaN(res) ? 0 : res;
|
|
12193
|
+
}
|
|
12194
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsSchedulerComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12195
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CpsSchedulerComponent, isStandalone: true, selector: "cps-scheduler", inputs: { label: "label", cron: "cron", timeZone: "timeZone", showNotSet: "showNotSet", showAdvanced: "showAdvanced", showTimeZone: "showTimeZone", defaultTime: "defaultTime", use24HourTime: "use24HourTime", disabled: "disabled", infoTooltip: "infoTooltip" }, outputs: { cronChange: "cronChange", timeZoneChange: "timeZoneChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cps-scheduler-selector\">\n <cps-button-toggle\n [options]=\"scheduleTypes\"\n [disabled]=\"disabled\"\n [label]=\"label\"\n [infoTooltip]=\"infoTooltip\"\n [(ngModel)]=\"activeScheduleType\"\n (ngModelChange)=\"setActiveScheduleType($event)\">\n </cps-button-toggle>\n</div>\n\n<div\n [ngSwitch]=\"activeScheduleType\"\n class=\"cps-scheduler-container\"\n [ngClass]=\"{ 'cps-scheduler-container-disabled': disabled }\">\n <div *ngSwitchCase=\"'Not set'\" class=\"cps-scheduler-tab-pane\"></div>\n\n <div *ngSwitchCase=\"'Minutes'\" class=\"cps-scheduler-tab-pane\">\n <div class=\"cps-scheduler-tab-pane-row\">\n Every\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.minutes.minutes\"\n [options]=\"selectOptions.minutes\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n minute(s)\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Hourly'\" class=\"cps-scheduler-tab-pane\">\n <div class=\"cps-scheduler-tab-pane-row\">\n Every\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.hourly.hours\"\n [options]=\"selectOptions.hours\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n hour(s) on minute\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.hourly.minutes\"\n [options]=\"selectOptions.fullMinutes\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Daily'\" class=\"cps-scheduler-tab-pane\">\n <cps-radio-group\n [(ngModel)]=\"state.daily.subTab\"\n (valueChanged)=\"regenerateCron()\"\n [vertical]=\"true\">\n <cps-radio [option]=\"{ value: 'everyDays', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.daily.subTab !== 'everyDays'\n }\">\n Every\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled || state.daily.subTab !== 'everyDays'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.daily.everyDays.days\"\n [options]=\"selectOptions.monthDays\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n day(s) at\n <cps-timepicker\n [disabled]=\"disabled || state.daily.subTab !== 'everyDays'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.daily.everyDays)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"onTimeChanged($event, state.daily.everyDays)\">\n </cps-timepicker>\n </div>\n </cps-radio>\n <cps-radio [option]=\"{ value: 'everyWeekDay', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.daily.subTab !== 'everyWeekDay'\n }\">\n Every working day at\n <cps-timepicker\n [disabled]=\"disabled || state.daily.subTab !== 'everyWeekDay'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.daily.everyWeekDay)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"onTimeChanged($event, state.daily.everyWeekDay)\">\n </cps-timepicker>\n </div>\n </cps-radio>\n </cps-radio-group>\n </div>\n\n <div *ngSwitchCase=\"'Weekly'\" class=\"cps-scheduler-tab-pane\">\n <div class=\"cps-scheduler-days-checkbox-group\">\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Monday\"\n [(ngModel)]=\"state.weekly.MON\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Tuesday\"\n [(ngModel)]=\"state.weekly.TUE\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Wednesday\"\n [(ngModel)]=\"state.weekly.WED\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Thursday\"\n [(ngModel)]=\"state.weekly.THU\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Friday\"\n [(ngModel)]=\"state.weekly.FRI\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Saturday\"\n [(ngModel)]=\"state.weekly.SAT\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Sunday\"\n [(ngModel)]=\"state.weekly.SUN\">\n </cps-checkbox>\n </div>\n <div class=\"cps-scheduler-tab-pane-row\">\n at\n <cps-timepicker\n [disabled]=\"disabled\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.weekly)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"onTimeChanged($event, state.weekly)\">\n </cps-timepicker>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Monthly'\" class=\"cps-scheduler-tab-pane\">\n <cps-radio-group\n [(ngModel)]=\"state.monthly.subTab\"\n (valueChanged)=\"regenerateCron()\"\n [vertical]=\"true\">\n <cps-radio [option]=\"{ value: 'specificDay', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.monthly.subTab !== 'specificDay'\n }\">\n On the\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificDay.day\"\n [options]=\"selectOptions.monthDaysWithLasts\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n of every\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificDay.months\"\n [options]=\"selectOptions.monthsNumeric\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n month(s) at\n <cps-timepicker\n [disabled]=\"disabled || state.monthly.subTab !== 'specificDay'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.monthly.specificDay)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"onTimeChanged($event, state.monthly.specificDay)\">\n </cps-timepicker>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificDay'\"\n label=\"During the nearest weekday\"\n [(ngModel)]=\"state.monthly.runOnWeekday\"\n class=\"cps-scheduler-nearest-weekday-checkbox\">\n </cps-checkbox>\n </div>\n </cps-radio>\n\n <cps-radio [option]=\"{ value: 'specificWeekDay', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.monthly.subTab !== 'specificWeekDay'\n }\">\n On the\n <cps-select\n width=\"106px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificWeekDay.monthWeek\"\n [options]=\"selectOptions.monthWeeks\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n <cps-select\n width=\"130px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificWeekDay.day\"\n [options]=\"selectOptions.days\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n of every\n <cps-select\n width=\"90px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificWeekDay.months\"\n [options]=\"selectOptions.monthsNumeric\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n month(s) starting in\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificWeekDay.startMonth\"\n [options]=\"selectOptions.months\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n at\n <cps-timepicker\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.monthly.specificWeekDay)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"\n onTimeChanged($event, state.monthly.specificWeekDay)\n \">\n </cps-timepicker>\n </div>\n </cps-radio>\n </cps-radio-group>\n </div>\n\n <div *ngSwitchCase=\"'Yearly'\" class=\"cps-scheduler-tab-pane\">\n <cps-radio-group\n [(ngModel)]=\"state.yearly.subTab\"\n (valueChanged)=\"regenerateCron()\"\n [vertical]=\"true\">\n <cps-radio [option]=\"{ value: 'specificMonthDay', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.yearly.subTab !== 'specificMonthDay'\n }\">\n Every\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthDay.month\"\n [options]=\"selectOptions.months\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n on the\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthDay.day\"\n [options]=\"selectOptions.monthDaysWithLasts\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n at\n <cps-timepicker\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthDay'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.yearly.specificMonthDay)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"\n onTimeChanged($event, state.yearly.specificMonthDay)\n \">\n </cps-timepicker>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthDay'\"\n label=\"During the nearest weekday\"\n [(ngModel)]=\"state.yearly.runOnWeekday\"\n class=\"cps-scheduler-nearest-weekday-checkbox\">\n </cps-checkbox>\n </div>\n </cps-radio>\n\n <cps-radio [option]=\"{ value: 'specificMonthWeek', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.yearly.subTab !== 'specificMonthWeek'\n }\">\n On the\n <cps-select\n width=\"106px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthWeek'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthWeek.monthWeek\"\n [options]=\"selectOptions.monthWeeks\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthWeek'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthWeek.day\"\n [options]=\"selectOptions.days\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n of\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthWeek'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthWeek.month\"\n [options]=\"selectOptions.months\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n at\n <cps-timepicker\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthWeek'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.yearly.specificMonthWeek)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"\n onTimeChanged($event, state.yearly.specificMonthWeek)\n \">\n </cps-timepicker>\n </div>\n </cps-radio>\n </cps-radio-group>\n </div>\n\n <div *ngSwitchCase=\"'Advanced'\">\n <form [formGroup]=\"form\">\n <cps-input\n label=\"\"\n [disabled]=\"disabled\"\n width=\"500px\"\n placeholder=\"Please enter\"\n formControlName=\"advanced\"\n (valueChanged)=\"regenerateCron()\">\n </cps-input>\n </form>\n </div>\n <div class=\"cps-scheduler-time-zone\" *ngIf=\"cron && showTimeZone\">\n <cps-autocomplete\n label=\"Time zone\"\n [(ngModel)]=\"timeZone\"\n (valueChanged)=\"onTimeZoneChanged($event)\"\n [returnObject]=\"false\"\n width=\"300\"\n [options]=\"timeZoneOptions\"></cps-autocomplete>\n </div>\n</div>\n", styles: [":host .cps-scheduler-selector{margin-bottom:24px}:host .cps-scheduler-container{margin-top:10px;margin-left:16px}:host .cps-scheduler-container .cps-scheduler-select-control{margin-left:8px;margin-right:8px}:host .cps-scheduler-container .cps-scheduler-days-checkbox-group{max-width:700px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-template-rows:1fr 1fr;grid-gap:20px;margin-bottom:16px}:host .cps-scheduler-container .cps-scheduler-tab-pane{margin-bottom:28px}:host .cps-scheduler-container .cps-scheduler-tab-pane cps-radio-group ::ng-deep .cps-radio-group-content{margin-left:0!important}:host .cps-scheduler-container .cps-scheduler-tab-pane .cps-scheduler-tab-pane-row{display:flex;align-items:center}:host .cps-scheduler-container .cps-scheduler-tab-pane .cps-scheduler-tab-pane-row-disabled{color:var(--cps-color-text-light)}:host .cps-scheduler-container .cps-scheduler-tab-pane .cps-scheduler-nearest-weekday-checkbox{margin-left:16px}:host .cps-scheduler-container .cps-scheduler-tab-pane cps-timepicker{margin-left:8px}:host .cps-scheduler-container-disabled{color:var(--cps-color-text-light)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: CpsButtonToggleComponent, selector: "cps-button-toggle", inputs: ["label", "options", "multiple", "disabled", "mandatory", "equalWidths", "optionTooltipPosition", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsSelectComponent, selector: "cps-select", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "chips", "closableChips", "clearable", "openOnClear", "options", "keepInitialOrder", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "virtualScroll", "numToleratedItems", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "optionsClass", "appearance", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsRadioGroupComponent, selector: "cps-radio-group", inputs: ["options", "groupLabel", "vertical", "disabled", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsRadioComponent, selector: "cps-radio", inputs: ["option"] }, { kind: "component", type: CpsCheckboxComponent, selector: "cps-checkbox", inputs: ["label", "disabled", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "icon", "iconColor", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsInputComponent, selector: "cps-input", inputs: ["label", "hint", "placeholder", "disabled", "readonly", "width", "type", "loading", "clearable", "prefixIcon", "prefixIconClickable", "prefixIconSize", "prefixText", "hideDetails", "persistentClear", "error", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "valueToDisplay", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred", "cleared", "enterClicked"] }, { kind: "component", type: CpsTimepickerComponent, selector: "cps-timepicker", inputs: ["label", "disabled", "use24HourTime", "withSeconds", "hint", "hideDetails", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "mandatoryValue", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsAutocompleteComponent, selector: "cps-autocomplete", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "showChevron", "withOptionsAliases", "useOptionsAliasesWhenNoMatch", "optionAlias", "chips", "closableChips", "clearable", "openOnClear", "options", "keepInitialOrder", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "emptyMessage", "showEmptyMessage", "virtualScroll", "numToleratedItems", "externalError", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "emptyOptionIndex", "value"], outputs: ["valueChanged", "blurred"] }] }); }
|
|
12196
|
+
}
|
|
12197
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CpsSchedulerComponent, decorators: [{
|
|
12198
|
+
type: Component,
|
|
12199
|
+
args: [{ selector: 'cps-scheduler', standalone: true, imports: [
|
|
12200
|
+
CommonModule,
|
|
12201
|
+
FormsModule,
|
|
12202
|
+
ReactiveFormsModule,
|
|
12203
|
+
CpsButtonToggleComponent,
|
|
12204
|
+
CpsSelectComponent,
|
|
12205
|
+
CpsRadioGroupComponent,
|
|
12206
|
+
CpsRadioComponent,
|
|
12207
|
+
CpsCheckboxComponent,
|
|
12208
|
+
CpsInputComponent,
|
|
12209
|
+
CpsTimepickerComponent,
|
|
12210
|
+
CpsAutocompleteComponent
|
|
12211
|
+
], template: "<div class=\"cps-scheduler-selector\">\n <cps-button-toggle\n [options]=\"scheduleTypes\"\n [disabled]=\"disabled\"\n [label]=\"label\"\n [infoTooltip]=\"infoTooltip\"\n [(ngModel)]=\"activeScheduleType\"\n (ngModelChange)=\"setActiveScheduleType($event)\">\n </cps-button-toggle>\n</div>\n\n<div\n [ngSwitch]=\"activeScheduleType\"\n class=\"cps-scheduler-container\"\n [ngClass]=\"{ 'cps-scheduler-container-disabled': disabled }\">\n <div *ngSwitchCase=\"'Not set'\" class=\"cps-scheduler-tab-pane\"></div>\n\n <div *ngSwitchCase=\"'Minutes'\" class=\"cps-scheduler-tab-pane\">\n <div class=\"cps-scheduler-tab-pane-row\">\n Every\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.minutes.minutes\"\n [options]=\"selectOptions.minutes\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n minute(s)\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Hourly'\" class=\"cps-scheduler-tab-pane\">\n <div class=\"cps-scheduler-tab-pane-row\">\n Every\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.hourly.hours\"\n [options]=\"selectOptions.hours\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n hour(s) on minute\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.hourly.minutes\"\n [options]=\"selectOptions.fullMinutes\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Daily'\" class=\"cps-scheduler-tab-pane\">\n <cps-radio-group\n [(ngModel)]=\"state.daily.subTab\"\n (valueChanged)=\"regenerateCron()\"\n [vertical]=\"true\">\n <cps-radio [option]=\"{ value: 'everyDays', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.daily.subTab !== 'everyDays'\n }\">\n Every\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled || state.daily.subTab !== 'everyDays'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.daily.everyDays.days\"\n [options]=\"selectOptions.monthDays\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n day(s) at\n <cps-timepicker\n [disabled]=\"disabled || state.daily.subTab !== 'everyDays'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.daily.everyDays)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"onTimeChanged($event, state.daily.everyDays)\">\n </cps-timepicker>\n </div>\n </cps-radio>\n <cps-radio [option]=\"{ value: 'everyWeekDay', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.daily.subTab !== 'everyWeekDay'\n }\">\n Every working day at\n <cps-timepicker\n [disabled]=\"disabled || state.daily.subTab !== 'everyWeekDay'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.daily.everyWeekDay)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"onTimeChanged($event, state.daily.everyWeekDay)\">\n </cps-timepicker>\n </div>\n </cps-radio>\n </cps-radio-group>\n </div>\n\n <div *ngSwitchCase=\"'Weekly'\" class=\"cps-scheduler-tab-pane\">\n <div class=\"cps-scheduler-days-checkbox-group\">\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Monday\"\n [(ngModel)]=\"state.weekly.MON\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Tuesday\"\n [(ngModel)]=\"state.weekly.TUE\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Wednesday\"\n [(ngModel)]=\"state.weekly.WED\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Thursday\"\n [(ngModel)]=\"state.weekly.THU\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Friday\"\n [(ngModel)]=\"state.weekly.FRI\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Saturday\"\n [(ngModel)]=\"state.weekly.SAT\">\n </cps-checkbox>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled\"\n label=\"Sunday\"\n [(ngModel)]=\"state.weekly.SUN\">\n </cps-checkbox>\n </div>\n <div class=\"cps-scheduler-tab-pane-row\">\n at\n <cps-timepicker\n [disabled]=\"disabled\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.weekly)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"onTimeChanged($event, state.weekly)\">\n </cps-timepicker>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Monthly'\" class=\"cps-scheduler-tab-pane\">\n <cps-radio-group\n [(ngModel)]=\"state.monthly.subTab\"\n (valueChanged)=\"regenerateCron()\"\n [vertical]=\"true\">\n <cps-radio [option]=\"{ value: 'specificDay', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.monthly.subTab !== 'specificDay'\n }\">\n On the\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificDay.day\"\n [options]=\"selectOptions.monthDaysWithLasts\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n of every\n <cps-select\n width=\"70px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificDay.months\"\n [options]=\"selectOptions.monthsNumeric\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n month(s) at\n <cps-timepicker\n [disabled]=\"disabled || state.monthly.subTab !== 'specificDay'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.monthly.specificDay)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"onTimeChanged($event, state.monthly.specificDay)\">\n </cps-timepicker>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificDay'\"\n label=\"During the nearest weekday\"\n [(ngModel)]=\"state.monthly.runOnWeekday\"\n class=\"cps-scheduler-nearest-weekday-checkbox\">\n </cps-checkbox>\n </div>\n </cps-radio>\n\n <cps-radio [option]=\"{ value: 'specificWeekDay', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.monthly.subTab !== 'specificWeekDay'\n }\">\n On the\n <cps-select\n width=\"106px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificWeekDay.monthWeek\"\n [options]=\"selectOptions.monthWeeks\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n <cps-select\n width=\"130px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificWeekDay.day\"\n [options]=\"selectOptions.days\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n of every\n <cps-select\n width=\"90px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificWeekDay.months\"\n [options]=\"selectOptions.monthsNumeric\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n month(s) starting in\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.monthly.specificWeekDay.startMonth\"\n [options]=\"selectOptions.months\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n at\n <cps-timepicker\n [disabled]=\"disabled || state.monthly.subTab !== 'specificWeekDay'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.monthly.specificWeekDay)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"\n onTimeChanged($event, state.monthly.specificWeekDay)\n \">\n </cps-timepicker>\n </div>\n </cps-radio>\n </cps-radio-group>\n </div>\n\n <div *ngSwitchCase=\"'Yearly'\" class=\"cps-scheduler-tab-pane\">\n <cps-radio-group\n [(ngModel)]=\"state.yearly.subTab\"\n (valueChanged)=\"regenerateCron()\"\n [vertical]=\"true\">\n <cps-radio [option]=\"{ value: 'specificMonthDay', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.yearly.subTab !== 'specificMonthDay'\n }\">\n Every\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthDay.month\"\n [options]=\"selectOptions.months\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n on the\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthDay'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthDay.day\"\n [options]=\"selectOptions.monthDaysWithLasts\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n at\n <cps-timepicker\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthDay'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.yearly.specificMonthDay)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"\n onTimeChanged($event, state.yearly.specificMonthDay)\n \">\n </cps-timepicker>\n <cps-checkbox\n (valueChanged)=\"regenerateCron()\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthDay'\"\n label=\"During the nearest weekday\"\n [(ngModel)]=\"state.yearly.runOnWeekday\"\n class=\"cps-scheduler-nearest-weekday-checkbox\">\n </cps-checkbox>\n </div>\n </cps-radio>\n\n <cps-radio [option]=\"{ value: 'specificMonthWeek', disabled: disabled }\">\n <div\n class=\"cps-scheduler-tab-pane-row\"\n [ngClass]=\"{\n 'cps-scheduler-tab-pane-row-disabled':\n state.yearly.subTab !== 'specificMonthWeek'\n }\">\n On the\n <cps-select\n width=\"106px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthWeek'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthWeek.monthWeek\"\n [options]=\"selectOptions.monthWeeks\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthWeek'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthWeek.day\"\n [options]=\"selectOptions.days\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n of\n <cps-select\n width=\"120px\"\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthWeek'\"\n [returnObject]=\"false\"\n [hideDetails]=\"true\"\n (valueChanged)=\"regenerateCron()\"\n [(ngModel)]=\"state.yearly.specificMonthWeek.month\"\n [options]=\"selectOptions.months\"\n class=\"cps-scheduler-select-control\">\n </cps-select>\n at\n <cps-timepicker\n [disabled]=\"disabled || state.yearly.subTab !== 'specificMonthWeek'\"\n [use24HourTime]=\"use24HourTime\"\n [mandatoryValue]=\"true\"\n [value]=\"formatTimeValue(state.yearly.specificMonthWeek)\"\n [hideDetails]=\"true\"\n (valueChanged)=\"\n onTimeChanged($event, state.yearly.specificMonthWeek)\n \">\n </cps-timepicker>\n </div>\n </cps-radio>\n </cps-radio-group>\n </div>\n\n <div *ngSwitchCase=\"'Advanced'\">\n <form [formGroup]=\"form\">\n <cps-input\n label=\"\"\n [disabled]=\"disabled\"\n width=\"500px\"\n placeholder=\"Please enter\"\n formControlName=\"advanced\"\n (valueChanged)=\"regenerateCron()\">\n </cps-input>\n </form>\n </div>\n <div class=\"cps-scheduler-time-zone\" *ngIf=\"cron && showTimeZone\">\n <cps-autocomplete\n label=\"Time zone\"\n [(ngModel)]=\"timeZone\"\n (valueChanged)=\"onTimeZoneChanged($event)\"\n [returnObject]=\"false\"\n width=\"300\"\n [options]=\"timeZoneOptions\"></cps-autocomplete>\n </div>\n</div>\n", styles: [":host .cps-scheduler-selector{margin-bottom:24px}:host .cps-scheduler-container{margin-top:10px;margin-left:16px}:host .cps-scheduler-container .cps-scheduler-select-control{margin-left:8px;margin-right:8px}:host .cps-scheduler-container .cps-scheduler-days-checkbox-group{max-width:700px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-template-rows:1fr 1fr;grid-gap:20px;margin-bottom:16px}:host .cps-scheduler-container .cps-scheduler-tab-pane{margin-bottom:28px}:host .cps-scheduler-container .cps-scheduler-tab-pane cps-radio-group ::ng-deep .cps-radio-group-content{margin-left:0!important}:host .cps-scheduler-container .cps-scheduler-tab-pane .cps-scheduler-tab-pane-row{display:flex;align-items:center}:host .cps-scheduler-container .cps-scheduler-tab-pane .cps-scheduler-tab-pane-row-disabled{color:var(--cps-color-text-light)}:host .cps-scheduler-container .cps-scheduler-tab-pane .cps-scheduler-nearest-weekday-checkbox{margin-left:16px}:host .cps-scheduler-container .cps-scheduler-tab-pane cps-timepicker{margin-left:8px}:host .cps-scheduler-container-disabled{color:var(--cps-color-text-light)}\n"] }]
|
|
12212
|
+
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }], propDecorators: { label: [{
|
|
12213
|
+
type: Input
|
|
12214
|
+
}], cron: [{
|
|
12215
|
+
type: Input
|
|
12216
|
+
}], timeZone: [{
|
|
12217
|
+
type: Input
|
|
12218
|
+
}], showNotSet: [{
|
|
12219
|
+
type: Input
|
|
12220
|
+
}], showAdvanced: [{
|
|
12221
|
+
type: Input
|
|
12222
|
+
}], showTimeZone: [{
|
|
12223
|
+
type: Input
|
|
12224
|
+
}], defaultTime: [{
|
|
12225
|
+
type: Input
|
|
12226
|
+
}], use24HourTime: [{
|
|
12227
|
+
type: Input
|
|
12228
|
+
}], disabled: [{
|
|
12229
|
+
type: Input
|
|
12230
|
+
}], infoTooltip: [{
|
|
12231
|
+
type: Input
|
|
12232
|
+
}], cronChange: [{
|
|
12233
|
+
type: Output
|
|
12234
|
+
}], timeZoneChange: [{
|
|
12235
|
+
type: Output
|
|
12236
|
+
}] } });
|
|
12237
|
+
|
|
10952
12238
|
class CpsDialogRef {
|
|
10953
12239
|
constructor() {
|
|
10954
12240
|
this._onOpen = new Subject();
|
|
@@ -11999,5 +13285,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
11999
13285
|
* Generated bundle index. Do not edit.
|
|
12000
13286
|
*/
|
|
12001
13287
|
|
|
12002
|
-
export { CPS_RADIO_GROUP, CpsAutocompleteComponent, CpsButtonComponent, CpsButtonToggleComponent, CpsCheckboxComponent, CpsChipComponent, CpsColumnFilterMatchMode, CpsDatepickerComponent, CpsDialogConfig, CpsDialogRef, CpsDialogService, CpsExpansionPanelComponent, CpsFileUploadComponent, CpsIconComponent, CpsInfoCircleComponent, CpsInputComponent, CpsLoaderComponent, CpsMenuComponent, CpsNotificationAppearance, CpsNotificationPosition, CpsNotificationService, CpsPaginatePipe, CpsPaginatorComponent, CpsProgressCircularComponent, CpsProgressLinearComponent, CpsRadioComponent, CpsRadioGroupComponent, CpsSelectComponent, CpsSidebarMenuComponent, CpsTabComponent, CpsTabGroupComponent, CpsTableColumnFilterDirective, CpsTableColumnSortableDirective, CpsTableComponent, CpsTableHeaderSelectableDirective, CpsTableRowSelectableDirective, CpsTagComponent, CpsTextareaComponent, CpsTimepickerComponent, CpsTooltipDirective, CpsTreeAutocompleteComponent, CpsTreeSelectComponent, CpsTreeTableColumnFilterDirective, CpsTreeTableColumnSortableDirective, CpsTreeTableComponent, CpsTreeTableHeaderSelectableDirective, CpsTreeTableRowSelectableDirective, CpsTreetableRowTogglerDirective, getCSSColor, getCpsColors, getTextColor, iconNames, tableFactory, treeTableFactory };
|
|
13288
|
+
export { CPS_RADIO_GROUP, CpsAutocompleteComponent, CpsButtonComponent, CpsButtonToggleComponent, CpsCheckboxComponent, CpsChipComponent, CpsColumnFilterMatchMode, CpsDatepickerComponent, CpsDialogConfig, CpsDialogRef, CpsDialogService, CpsExpansionPanelComponent, CpsFileUploadComponent, CpsIconComponent, CpsInfoCircleComponent, CpsInputComponent, CpsLoaderComponent, CpsMenuComponent, CpsNotificationAppearance, CpsNotificationPosition, CpsNotificationService, CpsPaginatePipe, CpsPaginatorComponent, CpsProgressCircularComponent, CpsProgressLinearComponent, CpsRadioComponent, CpsRadioGroupComponent, CpsSchedulerComponent, CpsSelectComponent, CpsSidebarMenuComponent, CpsTabComponent, CpsTabGroupComponent, CpsTableColumnFilterDirective, CpsTableColumnSortableDirective, CpsTableComponent, CpsTableHeaderSelectableDirective, CpsTableRowSelectableDirective, CpsTagComponent, CpsTextareaComponent, CpsTimepickerComponent, CpsTooltipDirective, CpsTreeAutocompleteComponent, CpsTreeSelectComponent, CpsTreeTableColumnFilterDirective, CpsTreeTableColumnSortableDirective, CpsTreeTableComponent, CpsTreeTableHeaderSelectableDirective, CpsTreeTableRowSelectableDirective, CpsTreetableRowTogglerDirective, getCSSColor, getCpsColors, getTextColor, iconNames, tableFactory, treeTableFactory };
|
|
12003
13289
|
//# sourceMappingURL=cps-ui-kit.mjs.map
|