@firestitch/filter 12.8.0 → 12.8.1
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/app/classes/actions-controller.d.ts +38 -38
- package/app/components/action-button/action-button.component.d.ts +7 -7
- package/app/components/action-kebab-actions/action-kebab-actions.component.d.ts +7 -7
- package/app/components/actions/actions.component.d.ts +8 -8
- package/app/components/filter/filter.component.d.ts +192 -192
- package/app/components/filter-chip/filter-chip.component.d.ts +26 -26
- package/app/components/filter-chip-content/filter-chip-content.component.d.ts +18 -18
- package/app/components/filter-chips/filter-chips.component.d.ts +8 -8
- package/app/components/filter-drawer/filter-drawer.component.d.ts +30 -30
- package/app/components/filter-drawer-actions/filter-drawer-actions.component.d.ts +15 -15
- package/app/components/filters-item/autocomplete/autocomplete.component.d.ts +13 -13
- package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +20 -20
- package/app/components/filters-item/base-item/base-item.component.d.ts +23 -23
- package/app/components/filters-item/checkbox/checkbox.component.d.ts +11 -11
- package/app/components/filters-item/chips/chips.component.d.ts +13 -13
- package/app/components/filters-item/date/date.component.d.ts +19 -19
- package/app/components/filters-item/date-range/date-range.component.d.ts +14 -14
- package/app/components/filters-item/filter-item.component.d.ts +15 -15
- package/app/components/filters-item/range/range.component.d.ts +15 -15
- package/app/components/filters-item/select/backdrop/backdrop.component.d.ts +6 -6
- package/app/components/filters-item/select/groups/groups.component.d.ts +12 -12
- package/app/components/filters-item/select/multiple/multiple.component.d.ts +15 -15
- package/app/components/filters-item/select/select.component.d.ts +16 -16
- package/app/components/filters-item/select/simple/simple.component.d.ts +14 -14
- package/app/components/filters-item/text/text.component.d.ts +19 -19
- package/app/components/filters-item/week/week.component.d.ts +12 -12
- package/app/components/saved-filter-edit/saved-filter-edit.component.d.ts +18 -18
- package/app/components/saved-filters-menu/saved-filters-menu.component.d.ts +23 -23
- package/app/consts/query-param-delimiter.d.ts +1 -1
- package/app/directives/focus-to-item/focus-to-item.directive.d.ts +27 -27
- package/app/directives/status-bar/status-bar.directive.d.ts +5 -5
- package/app/enums/action-mode.enum.d.ts +5 -5
- package/app/enums/action-type.enum.d.ts +7 -7
- package/app/enums/item-date-mode.enum.d.ts +5 -5
- package/app/enums/item-type.enum.d.ts +15 -15
- package/app/fs-filter.module.d.ts +64 -64
- package/app/helpers/build-query-params.d.ts +3 -3
- package/app/helpers/compare.d.ts +2 -2
- package/app/helpers/create-filter-item.d.ts +13 -13
- package/app/helpers/find-value.d.ts +1 -1
- package/app/helpers/get-range-name.d.ts +1 -1
- package/app/helpers/parse-date.d.ts +1 -1
- package/app/helpers/parse-item-value-from-stored.d.ts +1 -1
- package/app/helpers/query-param-transformers.d.ts +2 -2
- package/app/helpers/restore-items.d.ts +12 -12
- package/app/helpers/try-convert-to-number.d.ts +1 -1
- package/app/injectors/filter-config.d.ts +2 -2
- package/app/injectors/filter-drawer-data.d.ts +2 -2
- package/app/injectors/filter-drawer-overlay.d.ts +2 -2
- package/app/interfaces/action.interface.d.ts +69 -69
- package/app/interfaces/config.interface.d.ts +61 -61
- package/app/interfaces/external-params.interface.d.ts +3 -3
- package/app/interfaces/filter.interface.d.ts +4 -4
- package/app/interfaces/items/autocomplete-chips.interface.d.ts +12 -12
- package/app/interfaces/items/autocomplete.interface.d.ts +6 -6
- package/app/interfaces/items/base.interface.d.ts +27 -27
- package/app/interfaces/items/checkbox.interface.d.ts +7 -7
- package/app/interfaces/items/chips.interface.d.ts +6 -6
- package/app/interfaces/items/date-range.interface.d.ts +8 -8
- package/app/interfaces/items/date.interface.d.ts +7 -7
- package/app/interfaces/items/range.interface.d.ts +13 -13
- package/app/interfaces/items/select.interface.d.ts +20 -20
- package/app/interfaces/items/text.interface.d.ts +9 -9
- package/app/interfaces/items/week.interface.d.ts +7 -7
- package/app/interfaces/saved-filters.interface.d.ts +18 -18
- package/app/interfaces/update-filter-item.interface.d.ts +4 -4
- package/app/models/action-menu-item.model.d.ts +23 -23
- package/app/models/action.model.d.ts +45 -45
- package/app/models/filter-config.d.ts +30 -30
- package/app/models/items/autocomplete/base-autocomplete-item.d.ts +12 -12
- package/app/models/items/autocomplete-chips-item.d.ts +19 -19
- package/app/models/items/autocomplete-item.d.ts +10 -10
- package/app/models/items/base-item.d.ts +75 -75
- package/app/models/items/checkbox-item.d.ts +16 -16
- package/app/models/items/chips-item.d.ts +17 -17
- package/app/models/items/date/base-date-item.d.ts +14 -14
- package/app/models/items/date-item.d.ts +7 -7
- package/app/models/items/date-range/base-date-range-item.d.ts +21 -21
- package/app/models/items/date-range-item.d.ts +5 -5
- package/app/models/items/date-time-item.d.ts +6 -6
- package/app/models/items/date-time-range-item.d.ts +5 -5
- package/app/models/items/range-item.d.ts +22 -22
- package/app/models/items/select/base-select-item.d.ts +13 -13
- package/app/models/items/select/multiple-select-item.d.ts +13 -13
- package/app/models/items/select/simple-select-item.d.ts +12 -12
- package/app/models/items/select-item.d.ts +7 -7
- package/app/models/items/text-item.d.ts +14 -14
- package/app/models/items/week-item.d.ts +17 -17
- package/app/pipes/remove-isolate-value.pipe.d.ts +8 -8
- package/app/providers/filter-meta.d.ts +5 -5
- package/app/services/external-params/persistance-params-controller.service.d.ts +22 -22
- package/app/services/external-params/query-params-controller.service.d.ts +24 -24
- package/app/services/external-params/saved-filters-controller.service.d.ts +40 -40
- package/app/services/external-params-controller.service.d.ts +42 -42
- package/app/services/filter-overlay.service.d.ts +34 -34
- package/app/services/focus-controller.service.d.ts +18 -18
- package/app/services/items-store.service.d.ts +65 -65
- package/bundles/firestitch-filter.umd.js +5375 -5374
- package/bundles/firestitch-filter.umd.js.map +1 -1
- package/esm2015/app/classes/actions-controller.js +122 -122
- package/esm2015/app/components/action-button/action-button.component.js +23 -23
- package/esm2015/app/components/action-kebab-actions/action-kebab-actions.component.js +21 -21
- package/esm2015/app/components/actions/actions.component.js +29 -29
- package/esm2015/app/components/filter/filter.component.js +616 -616
- package/esm2015/app/components/filter-chip/filter-chip.component.js +90 -90
- package/esm2015/app/components/filter-chip-content/filter-chip-content.component.js +83 -83
- package/esm2015/app/components/filter-chips/filter-chips.component.js +24 -24
- package/esm2015/app/components/filter-drawer/filter-drawer.component.js +75 -75
- package/esm2015/app/components/filter-drawer-actions/filter-drawer-actions.component.js +42 -42
- package/esm2015/app/components/filters-item/autocomplete/autocomplete.component.js +29 -29
- package/esm2015/app/components/filters-item/autocompletechips/autocompletechips.component.js +51 -51
- package/esm2015/app/components/filters-item/base-item/base-item.component.js +58 -58
- package/esm2015/app/components/filters-item/checkbox/checkbox.component.js +24 -24
- package/esm2015/app/components/filters-item/chips/chips.component.js +31 -31
- package/esm2015/app/components/filters-item/date/date.component.js +44 -44
- package/esm2015/app/components/filters-item/date-range/date-range.component.js +35 -35
- package/esm2015/app/components/filters-item/filter-item.component.js +47 -47
- package/esm2015/app/components/filters-item/range/range.component.js +48 -48
- package/esm2015/app/components/filters-item/select/backdrop/backdrop.component.js +16 -16
- package/esm2015/app/components/filters-item/select/groups/groups.component.js +32 -32
- package/esm2015/app/components/filters-item/select/multiple/multiple.component.js +60 -60
- package/esm2015/app/components/filters-item/select/select.component.js +43 -43
- package/esm2015/app/components/filters-item/select/simple/simple.component.js +46 -46
- package/esm2015/app/components/filters-item/text/text.component.js +53 -53
- package/esm2015/app/components/filters-item/week/week.component.js +27 -27
- package/esm2015/app/components/saved-filter-edit/saved-filter-edit.component.js +54 -54
- package/esm2015/app/components/saved-filters-menu/saved-filters-menu.component.js +57 -57
- package/esm2015/app/consts/query-param-delimiter.js +1 -1
- package/esm2015/app/directives/focus-to-item/focus-to-item.directive.js +129 -129
- package/esm2015/app/directives/status-bar/status-bar.directive.js +12 -12
- package/esm2015/app/enums/action-mode.enum.js +6 -6
- package/esm2015/app/enums/action-type.enum.js +8 -8
- package/esm2015/app/enums/item-date-mode.enum.js +6 -6
- package/esm2015/app/enums/item-type.enum.js +16 -16
- package/esm2015/app/fs-filter.module.js +234 -234
- package/esm2015/app/helpers/build-query-params.js +31 -31
- package/esm2015/app/helpers/compare.js +37 -37
- package/esm2015/app/helpers/create-filter-item.js +54 -54
- package/esm2015/app/helpers/find-value.js +12 -12
- package/esm2015/app/helpers/get-range-name.js +8 -8
- package/esm2015/app/helpers/parse-date.js +7 -7
- package/esm2015/app/helpers/parse-item-value-from-stored.js +81 -81
- package/esm2015/app/helpers/query-param-transformers.js +8 -8
- package/esm2015/app/helpers/restore-items.js +48 -48
- package/esm2015/app/helpers/try-convert-to-number.js +5 -5
- package/esm2015/app/injectors/filter-config.js +2 -2
- package/esm2015/app/injectors/filter-drawer-data.js +2 -2
- package/esm2015/app/injectors/filter-drawer-overlay.js +2 -2
- package/esm2015/app/interfaces/action.interface.js +1 -1
- package/esm2015/app/interfaces/config.interface.js +1 -1
- package/esm2015/app/interfaces/external-params.interface.js +1 -1
- package/esm2015/app/interfaces/filter.interface.js +1 -1
- package/esm2015/app/interfaces/items/autocomplete-chips.interface.js +1 -1
- package/esm2015/app/interfaces/items/autocomplete.interface.js +1 -1
- package/esm2015/app/interfaces/items/base.interface.js +1 -1
- package/esm2015/app/interfaces/items/checkbox.interface.js +1 -1
- package/esm2015/app/interfaces/items/chips.interface.js +1 -1
- package/esm2015/app/interfaces/items/date-range.interface.js +1 -1
- package/esm2015/app/interfaces/items/date.interface.js +1 -1
- package/esm2015/app/interfaces/items/range.interface.js +1 -1
- package/esm2015/app/interfaces/items/select.interface.js +1 -1
- package/esm2015/app/interfaces/items/text.interface.js +1 -1
- package/esm2015/app/interfaces/items/week.interface.js +1 -1
- package/esm2015/app/interfaces/saved-filters.interface.js +1 -1
- package/esm2015/app/interfaces/update-filter-item.interface.js +1 -1
- package/esm2015/app/models/action-menu-item.model.js +66 -66
- package/esm2015/app/models/action.model.js +102 -102
- package/esm2015/app/models/filter-config.js +65 -65
- package/esm2015/app/models/items/autocomplete/base-autocomplete-item.js +13 -13
- package/esm2015/app/models/items/autocomplete-chips-item.js +61 -61
- package/esm2015/app/models/items/autocomplete-item.js +31 -31
- package/esm2015/app/models/items/base-item.js +233 -233
- package/esm2015/app/models/items/checkbox-item.js +47 -47
- package/esm2015/app/models/items/chips-item.js +83 -83
- package/esm2015/app/models/items/date/base-date-item.js +47 -47
- package/esm2015/app/models/items/date-item.js +18 -18
- package/esm2015/app/models/items/date-range/base-date-range-item.js +136 -136
- package/esm2015/app/models/items/date-range-item.js +6 -6
- package/esm2015/app/models/items/date-time-item.js +9 -9
- package/esm2015/app/models/items/date-time-range-item.js +6 -6
- package/esm2015/app/models/items/range-item.js +88 -88
- package/esm2015/app/models/items/select/base-select-item.js +33 -33
- package/esm2015/app/models/items/select/multiple-select-item.js +91 -90
- package/esm2015/app/models/items/select/simple-select-item.js +62 -62
- package/esm2015/app/models/items/select-item.js +12 -12
- package/esm2015/app/models/items/text-item.js +29 -29
- package/esm2015/app/models/items/week-item.js +98 -98
- package/esm2015/app/pipes/remove-isolate-value.pipe.js +22 -22
- package/esm2015/app/providers/filter-meta.js +9 -9
- package/esm2015/app/services/external-params/persistance-params-controller.service.js +57 -57
- package/esm2015/app/services/external-params/query-params-controller.service.js +66 -66
- package/esm2015/app/services/external-params/saved-filters-controller.service.js +164 -164
- package/esm2015/app/services/external-params-controller.service.js +162 -162
- package/esm2015/app/services/filter-overlay.service.js +115 -115
- package/esm2015/app/services/focus-controller.service.js +29 -29
- package/esm2015/app/services/items-store.service.js +340 -340
- package/esm2015/firestitch-filter.js +4 -4
- package/esm2015/public_api.js +36 -36
- package/fesm2015/firestitch-filter.js +4290 -4289
- package/fesm2015/firestitch-filter.js.map +1 -1
- package/firestitch-filter.d.ts +5 -5
- package/package.json +1 -1
- package/public_api.d.ts +40 -40
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { BaseDateItem } from './date/base-date-item';
|
|
2
|
-
export class DateTimeItem extends BaseDateItem {
|
|
3
|
-
static create(config) {
|
|
4
|
-
return new DateTimeItem(config, null);
|
|
5
|
-
}
|
|
6
|
-
_clearValue(defaultValue = undefined) {
|
|
7
|
-
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : null;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
1
|
+
import { BaseDateItem } from './date/base-date-item';
|
|
2
|
+
export class DateTimeItem extends BaseDateItem {
|
|
3
|
+
static create(config) {
|
|
4
|
+
return new DateTimeItem(config, null);
|
|
5
|
+
}
|
|
6
|
+
_clearValue(defaultValue = undefined) {
|
|
7
|
+
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : null;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
10
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZGVscy9pdGVtcy9kYXRlLXRpbWUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHckQsTUFBTSxPQUFPLFlBQWEsU0FBUSxZQUFZO0lBRXJDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBNkI7UUFDaEQsT0FBTyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVTLFdBQVcsQ0FBQyxlQUF3QixTQUFTO1FBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxhQUFaLFlBQVksY0FBWixZQUFZLEdBQUksSUFBSSxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElGaWx0ZXJDb25maWdEYXRlSXRlbSxcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pdGVtcy9kYXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2l0ZW0tdHlwZS5lbnVtJztcblxuaW1wb3J0IHsgQmFzZURhdGVJdGVtIH0gZnJvbSAnLi9kYXRlL2Jhc2UtZGF0ZS1pdGVtJztcblxuXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVJdGVtIGV4dGVuZHMgQmFzZURhdGVJdGVtIHtcblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShjb25maWc6IElGaWx0ZXJDb25maWdEYXRlSXRlbSkge1xuICAgIHJldHVybiBuZXcgRGF0ZVRpbWVJdGVtKGNvbmZpZywgbnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2NsZWFyVmFsdWUoZGVmYXVsdFZhbHVlOiB1bmtub3duID0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5tb2RlbCA9IGRlZmF1bHRWYWx1ZSA/PyBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BaseDateRangeItem } from './date-range/base-date-range-item';
|
|
2
|
-
export class DateTimeRangeItem extends BaseDateRangeItem {
|
|
3
|
-
static create(config) {
|
|
4
|
-
return new DateTimeRangeItem(config, null);
|
|
5
|
-
}
|
|
6
|
-
}
|
|
1
|
+
import { BaseDateRangeItem } from './date-range/base-date-range-item';
|
|
2
|
+
export class DateTimeRangeItem extends BaseDateRangeItem {
|
|
3
|
+
static create(config) {
|
|
4
|
+
return new DateTimeRangeItem(config, null);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
7
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXJhbmdlLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZGVscy9pdGVtcy9kYXRlLXRpbWUtcmFuZ2UtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd0RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsaUJBQWlCO0lBRS9DLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBa0M7UUFDckQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmlsdGVyQ29uZmlnRGF0ZVJhbmdlSXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaXRlbXMvZGF0ZS1yYW5nZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9pdGVtLXR5cGUuZW51bSc7XG5cbmltcG9ydCB7IEJhc2VEYXRlUmFuZ2VJdGVtIH0gZnJvbSAnLi9kYXRlLXJhbmdlL2Jhc2UtZGF0ZS1yYW5nZS1pdGVtJztcblxuXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVSYW5nZUl0ZW0gZXh0ZW5kcyBCYXNlRGF0ZVJhbmdlSXRlbSB7XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGUoY29uZmlnOiBJRmlsdGVyQ29uZmlnRGF0ZVJhbmdlSXRlbSkge1xuICAgIHJldHVybiBuZXcgRGF0ZVRpbWVSYW5nZUl0ZW0oY29uZmlnLCBudWxsKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
import { clone, isObject } from 'lodash-es';
|
|
2
|
-
import { isEmpty } from '@firestitch/common';
|
|
3
|
-
import { getRangeName } from '../../helpers/get-range-name';
|
|
4
|
-
import { BaseItem } from './base-item';
|
|
5
|
-
export class RangeItem extends BaseItem {
|
|
6
|
-
static create(config, additionalConfig) {
|
|
7
|
-
return new RangeItem(config, additionalConfig);
|
|
8
|
-
}
|
|
9
|
-
get value() {
|
|
10
|
-
let value = clone(this.model);
|
|
11
|
-
if (!isObject(this.model) ||
|
|
12
|
-
(isEmpty(this.model.max, { zero: true }) && isEmpty(this.model.min, { zero: true }))) {
|
|
13
|
-
value = null;
|
|
14
|
-
}
|
|
15
|
-
return value;
|
|
16
|
-
}
|
|
17
|
-
get queryObject() {
|
|
18
|
-
const value = this.value;
|
|
19
|
-
const name = this.name;
|
|
20
|
-
const params = {};
|
|
21
|
-
const paramMinName = getRangeName(this.case, name, 'min');
|
|
22
|
-
const paramMaxName = getRangeName(this.case, name, 'max');
|
|
23
|
-
if (isObject(value)) {
|
|
24
|
-
params[paramMinName] = value.min || null;
|
|
25
|
-
params[paramMaxName] = value.max || null;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
params[paramMinName] = null;
|
|
29
|
-
params[paramMaxName] = null;
|
|
30
|
-
}
|
|
31
|
-
return params;
|
|
32
|
-
}
|
|
33
|
-
get isChipVisible() {
|
|
34
|
-
return this.model && (this.model.min !== undefined || this.model.max !== undefined);
|
|
35
|
-
}
|
|
36
|
-
getChipsContent(type) {
|
|
37
|
-
if (type === 'from') {
|
|
38
|
-
const min = this.model.min;
|
|
39
|
-
return `${min}`;
|
|
40
|
-
}
|
|
41
|
-
else if (type === 'to') {
|
|
42
|
-
const max = this.model.max;
|
|
43
|
-
return `${max}`;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
clearRange(type = null, defaultValue = undefined) {
|
|
47
|
-
if (type === 'from') {
|
|
48
|
-
delete this.model.min;
|
|
49
|
-
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.min) {
|
|
50
|
-
this.model.min = defaultValue.min;
|
|
51
|
-
}
|
|
52
|
-
this.model = Object.assign({}, this.model);
|
|
53
|
-
}
|
|
54
|
-
else if (type === 'to') {
|
|
55
|
-
delete this.model.max;
|
|
56
|
-
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.max) {
|
|
57
|
-
this.model.max = defaultValue.max;
|
|
58
|
-
}
|
|
59
|
-
this.model = Object.assign({}, this.model);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
if (defaultValue) {
|
|
63
|
-
this.model = Object.assign({}, defaultValue);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
this.model = {};
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
_validateModel() {
|
|
71
|
-
}
|
|
72
|
-
_parseConfig(item) {
|
|
73
|
-
var _a, _b;
|
|
74
|
-
this.options = item.options;
|
|
75
|
-
this.prefix = item.prefix;
|
|
76
|
-
this.suffix = item.suffix;
|
|
77
|
-
this.case = (_b = (_a = this._additionalConfig) === null || _a === void 0 ? void 0 : _a.case) !== null && _b !== void 0 ? _b : 'camel';
|
|
78
|
-
super._parseConfig(item);
|
|
79
|
-
}
|
|
80
|
-
_init() {
|
|
81
|
-
if (!this.label) {
|
|
82
|
-
this.label = ['Min', 'Max'];
|
|
83
|
-
}
|
|
84
|
-
if (!this.model) {
|
|
85
|
-
this.model = this.defaultValue || {};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
1
|
+
import { clone, isObject } from 'lodash-es';
|
|
2
|
+
import { isEmpty } from '@firestitch/common';
|
|
3
|
+
import { getRangeName } from '../../helpers/get-range-name';
|
|
4
|
+
import { BaseItem } from './base-item';
|
|
5
|
+
export class RangeItem extends BaseItem {
|
|
6
|
+
static create(config, additionalConfig) {
|
|
7
|
+
return new RangeItem(config, additionalConfig);
|
|
8
|
+
}
|
|
9
|
+
get value() {
|
|
10
|
+
let value = clone(this.model);
|
|
11
|
+
if (!isObject(this.model) ||
|
|
12
|
+
(isEmpty(this.model.max, { zero: true }) && isEmpty(this.model.min, { zero: true }))) {
|
|
13
|
+
value = null;
|
|
14
|
+
}
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
get queryObject() {
|
|
18
|
+
const value = this.value;
|
|
19
|
+
const name = this.name;
|
|
20
|
+
const params = {};
|
|
21
|
+
const paramMinName = getRangeName(this.case, name, 'min');
|
|
22
|
+
const paramMaxName = getRangeName(this.case, name, 'max');
|
|
23
|
+
if (isObject(value)) {
|
|
24
|
+
params[paramMinName] = value.min || null;
|
|
25
|
+
params[paramMaxName] = value.max || null;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
params[paramMinName] = null;
|
|
29
|
+
params[paramMaxName] = null;
|
|
30
|
+
}
|
|
31
|
+
return params;
|
|
32
|
+
}
|
|
33
|
+
get isChipVisible() {
|
|
34
|
+
return this.model && (this.model.min !== undefined || this.model.max !== undefined);
|
|
35
|
+
}
|
|
36
|
+
getChipsContent(type) {
|
|
37
|
+
if (type === 'from') {
|
|
38
|
+
const min = this.model.min;
|
|
39
|
+
return `${min}`;
|
|
40
|
+
}
|
|
41
|
+
else if (type === 'to') {
|
|
42
|
+
const max = this.model.max;
|
|
43
|
+
return `${max}`;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
clearRange(type = null, defaultValue = undefined) {
|
|
47
|
+
if (type === 'from') {
|
|
48
|
+
delete this.model.min;
|
|
49
|
+
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.min) {
|
|
50
|
+
this.model.min = defaultValue.min;
|
|
51
|
+
}
|
|
52
|
+
this.model = Object.assign({}, this.model);
|
|
53
|
+
}
|
|
54
|
+
else if (type === 'to') {
|
|
55
|
+
delete this.model.max;
|
|
56
|
+
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.max) {
|
|
57
|
+
this.model.max = defaultValue.max;
|
|
58
|
+
}
|
|
59
|
+
this.model = Object.assign({}, this.model);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
if (defaultValue) {
|
|
63
|
+
this.model = Object.assign({}, defaultValue);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.model = {};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
_validateModel() {
|
|
71
|
+
}
|
|
72
|
+
_parseConfig(item) {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
this.options = item.options;
|
|
75
|
+
this.prefix = item.prefix;
|
|
76
|
+
this.suffix = item.suffix;
|
|
77
|
+
this.case = (_b = (_a = this._additionalConfig) === null || _a === void 0 ? void 0 : _a.case) !== null && _b !== void 0 ? _b : 'camel';
|
|
78
|
+
super._parseConfig(item);
|
|
79
|
+
}
|
|
80
|
+
_init() {
|
|
81
|
+
if (!this.label) {
|
|
82
|
+
this.label = ['Min', 'Max'];
|
|
83
|
+
}
|
|
84
|
+
if (!this.model) {
|
|
85
|
+
this.model = this.defaultValue || {};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
89
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kZWxzL2l0ZW1zL3JhbmdlLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU01RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3ZDLE1BQU0sT0FBTyxTQUFVLFNBQVEsUUFBZ0M7SUFFdEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUE4QixFQUFFLGdCQUF5QjtRQUM1RSxPQUFPLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFTRCxJQUFXLEtBQUs7UUFDZCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN2QixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDdEYsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNkO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2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TyxDQUFDO1FBRXBELEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVTLEtBQUs7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbG9uZSwgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IGdldFJhbmdlTmFtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LXJhbmdlLW5hbWUnO1xuaW1wb3J0IHtcbiAgSUZpbHRlckNvbmZpZ1JhbmdlSXRlbSxcbiAgSUZpbHRlckl0ZW1EZWZhdWx0UmFuZ2UsXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaXRlbXMvcmFuZ2UuaW50ZXJmYWNlJztcblxuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuL2Jhc2UtaXRlbSc7XG5cblxuZXhwb3J0IGNsYXNzIFJhbmdlSXRlbSBleHRlbmRzIEJhc2VJdGVtPElGaWx0ZXJDb25maWdSYW5nZUl0ZW0+IHtcblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShjb25maWc6IElGaWx0ZXJDb25maWdSYW5nZUl0ZW0sIGFkZGl0aW9uYWxDb25maWc6IHVua25vd24pIHtcbiAgICByZXR1cm4gbmV3IFJhbmdlSXRlbShjb25maWcsIGFkZGl0aW9uYWxDb25maWcpO1xuICB9XG5cbiAgcHVibGljIGNhc2U6ICdzbmFrZScgfCAnY2FtZWwnO1xuICBwdWJsaWMgb3B0aW9uczogeyBzY2FsZT86IG51bWJlciB9XG4gIHB1YmxpYyBwcmVmaXg6IHN0cmluZztcbiAgcHVibGljIHN1ZmZpeDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfYWRkaXRpb25hbENvbmZpZzogeyBjYXNlOiAnY2FtZWwnIHwgJ3NuYWtlJyB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICBsZXQgdmFsdWUgPSBjbG9uZSh0aGlzLm1vZGVsKTtcblxuICAgIGlmICghaXNPYmplY3QodGhpcy5tb2RlbCkgfHxcbiAgICAgIChpc0VtcHR5KHRoaXMubW9kZWwubWF4LCB7IHplcm86IHRydWUgfSkgJiYgaXNFbXB0eSh0aGlzLm1vZGVsLm1pbiwgeyB6ZXJvOiB0cnVlIH0pKSkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVlcnlPYmplY3QoKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWU7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgY29uc3QgcGFyYW1NaW5OYW1lID0gZ2V0UmFuZ2VOYW1lKHRoaXMuY2FzZSwgbmFtZSwgJ21pbicpO1xuICAgIGNvbnN0IHBhcmFtTWF4TmFtZSA9IGdldFJhbmdlTmFtZSh0aGlzLmNhc2UsIG5hbWUsICdtYXgnKTtcblxuICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHBhcmFtc1twYXJhbU1pbk5hbWVdID0gdmFsdWUubWluIHx8IG51bGw7XG4gICAgICBwYXJhbXNbcGFyYW1NYXhOYW1lXSA9IHZhbHVlLm1heCB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXNbcGFyYW1NaW5OYW1lXSA9IG51bGw7XG4gICAgICBwYXJhbXNbcGFyYW1NYXhOYW1lXSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNDaGlwVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbCAmJiAodGhpcy5tb2RlbC5taW4gIT09IHVuZGVmaW5lZCB8fCB0aGlzLm1vZGVsLm1heCAhPT0gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDaGlwc0NvbnRlbnQodHlwZSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGUgPT09ICdmcm9tJykge1xuICAgICAgY29uc3QgbWluID0gdGhpcy5tb2RlbC5taW47XG4gICAgICByZXR1cm4gYCR7bWlufWA7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAndG8nKSB7XG4gICAgICBjb25zdCBtYXggPSB0aGlzLm1vZGVsLm1heDtcbiAgICAgIHJldHVybiBgJHttYXh9YDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXJSYW5nZSh0eXBlOiAnZnJvbScgfCAndG8nID0gbnVsbCwgZGVmYXVsdFZhbHVlOiBJRmlsdGVySXRlbURlZmF1bHRSYW5nZSA9IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlID09PSAnZnJvbScpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLm1vZGVsLm1pbjtcblxuICAgICAgaWYgKGRlZmF1bHRWYWx1ZT8ubWluKSB7XG4gICAgICAgIHRoaXMubW9kZWwubWluID0gZGVmYXVsdFZhbHVlLm1pbjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5tb2RlbCA9IHsgLi4udGhpcy5tb2RlbCB9O1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3RvJykge1xuICAgICAgZGVsZXRlIHRoaXMubW9kZWwubWF4O1xuXG4gICAgICBpZiAoZGVmYXVsdFZhbHVlPy5tYXgpIHtcbiAgICAgICAgdGhpcy5tb2RlbC5tYXggPSBkZWZhdWx0VmFsdWUubWF4O1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1vZGVsID0geyAuLi50aGlzLm1vZGVsIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgdGhpcy5tb2RlbCA9IHsgLi4uZGVmYXVsdFZhbHVlIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGVsID0ge307XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF92YWxpZGF0ZU1vZGVsKCkge1xuICB9XG5cbiAgcHJvdGVjdGVkIF9wYXJzZUNvbmZpZyhpdGVtOiBJRmlsdGVyQ29uZmlnUmFuZ2VJdGVtKSB7XG4gICAgdGhpcy5vcHRpb25zID0gaXRlbS5vcHRpb25zO1xuICAgIHRoaXMucHJlZml4ID0gaXRlbS5wcmVmaXg7XG4gICAgdGhpcy5zdWZmaXggPSBpdGVtLnN1ZmZpeDtcbiAgICB0aGlzLmNhc2UgPSB0aGlzLl9hZGRpdGlvbmFsQ29uZmlnPy5jYXNlID8/ICdjYW1lbCc7XG5cbiAgICBzdXBlci5fcGFyc2VDb25maWcoaXRlbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmxhYmVsID0gWydNaW4nLCAnTWF4J107XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLm1vZGVsKSB7XG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy5kZWZhdWx0VmFsdWUgfHwge307XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { BaseItem } from '../base-item';
|
|
2
|
-
export class BaseSelectItem extends BaseItem {
|
|
3
|
-
_parseConfig(item) {
|
|
4
|
-
this.multiple = item.multiple;
|
|
5
|
-
this.children = item.children;
|
|
6
|
-
// TODO nullish
|
|
7
|
-
if (item.isolate) {
|
|
8
|
-
this.isolate = Object.assign(Object.assign({}, item.isolate), { enabled: false });
|
|
9
|
-
}
|
|
10
|
-
super._parseConfig(item);
|
|
11
|
-
}
|
|
12
|
-
_init() {
|
|
13
|
-
if (!Array.isArray(this.values)) {
|
|
14
|
-
this.values = [];
|
|
15
|
-
}
|
|
16
|
-
// TODO Refactor
|
|
17
|
-
if (this.isolate) {
|
|
18
|
-
this.values = this.values.filter((item) => {
|
|
19
|
-
if (Array.isArray(this.isolate.value)) {
|
|
20
|
-
return this.isolate.value.indexOf(item.value) === -1;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
return item.value !== this.isolate.value;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
_clearValue(defaultValue = undefined) {
|
|
29
|
-
if (this.isolate) {
|
|
30
|
-
this.isolate.enabled = false;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
1
|
+
import { BaseItem } from '../base-item';
|
|
2
|
+
export class BaseSelectItem extends BaseItem {
|
|
3
|
+
_parseConfig(item) {
|
|
4
|
+
this.multiple = item.multiple;
|
|
5
|
+
this.children = item.children;
|
|
6
|
+
// TODO nullish
|
|
7
|
+
if (item.isolate) {
|
|
8
|
+
this.isolate = Object.assign(Object.assign({}, item.isolate), { enabled: false });
|
|
9
|
+
}
|
|
10
|
+
super._parseConfig(item);
|
|
11
|
+
}
|
|
12
|
+
_init() {
|
|
13
|
+
if (!Array.isArray(this.values)) {
|
|
14
|
+
this.values = [];
|
|
15
|
+
}
|
|
16
|
+
// TODO Refactor
|
|
17
|
+
if (this.isolate) {
|
|
18
|
+
this.values = this.values.filter((item) => {
|
|
19
|
+
if (Array.isArray(this.isolate.value)) {
|
|
20
|
+
return this.isolate.value.indexOf(item.value) === -1;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return item.value !== this.isolate.value;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
_clearValue(defaultValue = undefined) {
|
|
29
|
+
if (this.isolate) {
|
|
30
|
+
this.isolate.enabled = false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
34
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kZWxzL2l0ZW1zL3NlbGVjdC9iYXNlLXNlbGVjdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVeEMsTUFBTSxPQUFnQixjQUFlLFNBQVEsUUFBaUM7SUFNbEUsWUFBWSxDQUFDLElBQTZCO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFOUIsZUFBZTtRQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxtQ0FDUCxJQUFJLENBQUMsT0FBTyxLQUNmLE9BQU8sRUFBRSxLQUFLLEdBQ2YsQ0FBQztTQUNIO1FBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRVMsS0FBSztRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztTQUNsQjtRQUVELGdCQUFnQjtRQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNyQyxPQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNyRTtxQkFBTTtvQkFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7aUJBQzFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFUyxXQUFXLENBQUMsZUFBd0IsU0FBUztRQUNyRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi9iYXNlLWl0ZW0nO1xuaW1wb3J0IHtcbiAgSUZpbHRlckNvbmZpZ1NlbGVjdElzb2xhdGUsXG4gIElGaWx0ZXJDb25maWdTZWxlY3RJdGVtXG59IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvaXRlbXMvc2VsZWN0LmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpbHRlcklzb2xhdGUgZXh0ZW5kcyBJRmlsdGVyQ29uZmlnU2VsZWN0SXNvbGF0ZSB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2VsZWN0SXRlbSBleHRlbmRzIEJhc2VJdGVtPElGaWx0ZXJDb25maWdTZWxlY3RJdGVtPiB7XG5cbiAgcHVibGljIGNoaWxkcmVuOiBzdHJpbmc7XG4gIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbjtcbiAgcHVibGljIGlzb2xhdGU6IElGaWx0ZXJJc29sYXRlO1xuXG4gIHByb3RlY3RlZCBfcGFyc2VDb25maWcoaXRlbTogSUZpbHRlckNvbmZpZ1NlbGVjdEl0ZW0pIHtcbiAgICB0aGlzLm11bHRpcGxlID0gaXRlbS5tdWx0aXBsZTtcbiAgICB0aGlzLmNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbjtcblxuICAgIC8vIFRPRE8gbnVsbGlzaFxuICAgIGlmIChpdGVtLmlzb2xhdGUpIHtcbiAgICAgIHRoaXMuaXNvbGF0ZSA9IHtcbiAgICAgICAgLi4uaXRlbS5pc29sYXRlLFxuICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgc3VwZXIuX3BhcnNlQ29uZmlnKGl0ZW0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9pbml0KCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlcykpIHtcbiAgICAgIHRoaXMudmFsdWVzID0gW107XG4gICAgfVxuXG4gICAgLy8gVE9ETyBSZWZhY3RvclxuICAgICBpZiAodGhpcy5pc29sYXRlKSB7XG4gICAgICB0aGlzLnZhbHVlcyA9IHRoaXMudmFsdWVzLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmlzb2xhdGUudmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuICh0aGlzLmlzb2xhdGUudmFsdWUgYXMgdW5rbm93bltdKS5pbmRleE9mKGl0ZW0udmFsdWUpID09PSAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gaXRlbS52YWx1ZSAhPT0gdGhpcy5pc29sYXRlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2NsZWFyVmFsdWUoZGVmYXVsdFZhbHVlOiB1bmtub3duID0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuaXNvbGF0ZSkge1xuICAgICAgdGhpcy5pc29sYXRlLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxufVxuIl19
|
|
@@ -1,90 +1,91 @@
|
|
|
1
|
-
import { filter, isArrayEqual } from '@firestitch/common';
|
|
2
|
-
import { clone } from 'lodash-es';
|
|
3
|
-
import { BaseSelectItem } from './base-select-item';
|
|
4
|
-
import { arraysAreEquals } from '../../../helpers/compare';
|
|
5
|
-
export class MultipleSelectItem extends BaseSelectItem {
|
|
6
|
-
constructor(itemConfig, _persistedValues) {
|
|
7
|
-
super(itemConfig, _persistedValues);
|
|
8
|
-
}
|
|
9
|
-
get value() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
&&
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
1
|
+
import { filter, isArrayEqual } from '@firestitch/common';
|
|
2
|
+
import { clone } from 'lodash-es';
|
|
3
|
+
import { BaseSelectItem } from './base-select-item';
|
|
4
|
+
import { arraysAreEquals } from '../../../helpers/compare';
|
|
5
|
+
export class MultipleSelectItem extends BaseSelectItem {
|
|
6
|
+
constructor(itemConfig, _persistedValues) {
|
|
7
|
+
super(itemConfig, _persistedValues);
|
|
8
|
+
}
|
|
9
|
+
get value() {
|
|
10
|
+
var _a;
|
|
11
|
+
let value = clone(this.model);
|
|
12
|
+
if (this.isolateOptionNotSelected) {
|
|
13
|
+
value = (_a = this.values) === null || _a === void 0 ? void 0 : _a.map((v) => v.value);
|
|
14
|
+
}
|
|
15
|
+
else if (!Array.isArray(value) || value.length === 0 || value.indexOf('__all') > -1) {
|
|
16
|
+
value = null;
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
get isChipVisible() {
|
|
21
|
+
return Array.isArray(this.model) && this.model.length > 0;
|
|
22
|
+
}
|
|
23
|
+
get isolateOptionNotSelected() {
|
|
24
|
+
const modelValue = this.model;
|
|
25
|
+
const isolate = this.isolate;
|
|
26
|
+
return isolate && !isolate.enabled && (modelValue === null || modelValue === void 0 ? void 0 : modelValue.length) === 0;
|
|
27
|
+
}
|
|
28
|
+
getChipsContent(type = null) {
|
|
29
|
+
const options = this.model.reduce((acc, key) => {
|
|
30
|
+
const itemValue = this.values.find((val) => val.value === key);
|
|
31
|
+
let itemLabel;
|
|
32
|
+
if (itemValue) {
|
|
33
|
+
itemLabel = itemValue.name;
|
|
34
|
+
}
|
|
35
|
+
else if (this.isolate && this.isolate.enabled) {
|
|
36
|
+
itemLabel = this.isolate.label;
|
|
37
|
+
}
|
|
38
|
+
if (!acc.includes(itemLabel)) {
|
|
39
|
+
acc.push(itemLabel);
|
|
40
|
+
}
|
|
41
|
+
return acc;
|
|
42
|
+
}, []);
|
|
43
|
+
return options.join(', ');
|
|
44
|
+
}
|
|
45
|
+
_init() {
|
|
46
|
+
super._init();
|
|
47
|
+
const values = this.values.map((itemv) => itemv.value);
|
|
48
|
+
const wrongDefaultValue = !this.model && !Array.isArray(this.defaultValue);
|
|
49
|
+
/**
|
|
50
|
+
* When multiple select is in isolate mode and have no options selected
|
|
51
|
+
* it should send to the server all it's possible values,
|
|
52
|
+
* but should not show them as selected in interfaces as well as in query params & persistance
|
|
53
|
+
*
|
|
54
|
+
* Code below prevents filling model with values from query params if query params contain all possible values
|
|
55
|
+
*/
|
|
56
|
+
const isolate = !wrongDefaultValue
|
|
57
|
+
&& !this.isolateOptionNotSelected
|
|
58
|
+
&& arraysAreEquals(this.model, values);
|
|
59
|
+
if (wrongDefaultValue || isolate) {
|
|
60
|
+
this.model = [];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
_setModel(value) {
|
|
64
|
+
if (Array.isArray(value)) {
|
|
65
|
+
value = value.map((val) => {
|
|
66
|
+
if (isNaN(val)) {
|
|
67
|
+
return val;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return +val;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
super._setModel(value);
|
|
75
|
+
}
|
|
76
|
+
_validateModel() {
|
|
77
|
+
const possibleValues = filter(this.model || [], (item) => {
|
|
78
|
+
return this.values.find(value => {
|
|
79
|
+
return value.value == item;
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
if (!isArrayEqual(this.model, possibleValues)) {
|
|
83
|
+
this.model = possibleValues;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
_clearValue(defaultValue = undefined) {
|
|
87
|
+
super._clearValue(defaultValue);
|
|
88
|
+
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : [];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtc2VsZWN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZGVscy9pdGVtcy9zZWxlY3QvbXVsdGlwbGUtc2VsZWN0LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFFcEQsWUFDRSxVQUFtQyxFQUNuQyxnQkFBcUI7UUFFckIsS0FBSyxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLEtBQUs7O1FBQ2QsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QixJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNqQyxLQUFLLEdBQUcsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQzthQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDckYsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNkO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sS0FBSyxD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QUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFUyxXQUFXLENBQUMsZUFBd0IsU0FBUztRQUNyRCxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxhQUFaLFlBQVksY0FBWixZQUFZLEdBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlciwgaXNBcnJheUVxdWFsIH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuaW1wb3J0IHsgY2xvbmUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBJRmlsdGVyQ29uZmlnU2VsZWN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvaXRlbXMvc2VsZWN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNlU2VsZWN0SXRlbSB9IGZyb20gJy4vYmFzZS1zZWxlY3QtaXRlbSc7XG5pbXBvcnQgeyBhcnJheXNBcmVFcXVhbHMgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2NvbXBhcmUnO1xuXG5cbmV4cG9ydCBjbGFzcyBNdWx0aXBsZVNlbGVjdEl0ZW0gZXh0ZW5kcyBCYXNlU2VsZWN0SXRlbSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaXRlbUNvbmZpZzogSUZpbHRlckNvbmZpZ1NlbGVjdEl0ZW0sXG4gICAgX3BlcnNpc3RlZFZhbHVlczogYW55XG4gICkge1xuICAgIHN1cGVyKGl0ZW1Db25maWcsIF9wZXJzaXN0ZWRWYWx1ZXMpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICBsZXQgdmFsdWUgPSBjbG9uZSh0aGlzLm1vZGVsKTtcblxuICAgIGlmICh0aGlzLmlzb2xhdGVPcHRpb25Ob3RTZWxlY3RlZCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnZhbHVlcz8ubWFwKCh2KSA9PiB2LnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5sZW5ndGggPT09IDAgfHwgdmFsdWUuaW5kZXhPZignX19hbGwnKSA+IC0xKSB7XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0NoaXBWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMubW9kZWwpICYmIHRoaXMubW9kZWwubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaXNvbGF0ZU9wdGlvbk5vdFNlbGVjdGVkKCkge1xuICAgIGNvbnN0IG1vZGVsVmFsdWUgPSB0aGlzLm1vZGVsO1xuICAgIGNvbnN0IGlzb2xhdGUgPSB0aGlzLmlzb2xhdGU7XG5cbiAgICByZXR1cm4gaXNvbGF0ZSAmJiAhaXNvbGF0ZS5lbmFibGVkICYmIG1vZGVsVmFsdWU/Lmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDaGlwc0NvbnRlbnQodHlwZSA9IG51bGwpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm1vZGVsLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1WYWx1ZSA9IHRoaXMudmFsdWVzLmZpbmQoKHZhbCkgPT4gdmFsLnZhbHVlID09PSBrZXkpO1xuICAgICAgbGV0IGl0ZW1MYWJlbDogc3RyaW5nO1xuXG4gICAgICBpZiAoaXRlbVZhbHVlKSB7XG4gICAgICAgIGl0ZW1MYWJlbCA9IGl0ZW1WYWx1ZS5uYW1lO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzb2xhdGUgJiYgdGhpcy5pc29sYXRlLmVuYWJsZWQpIHtcbiAgICAgICAgaXRlbUxhYmVsID0gdGhpcy5pc29sYXRlLmxhYmVsO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWFjYy5pbmNsdWRlcyhpdGVtTGFiZWwpKSB7XG4gICAgICAgIGFjYy5wdXNoKGl0ZW1MYWJlbClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gb3B0aW9ucy5qb2luKCcsICcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9pbml0KCkge1xuICAgIHN1cGVyLl9pbml0KCk7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZhbHVlcy5tYXAoKGl0ZW12KSA9PiBpdGVtdi52YWx1ZSk7XG4gICAgY29uc3Qgd3JvbmdEZWZhdWx0VmFsdWUgPSAhdGhpcy5tb2RlbCAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLmRlZmF1bHRWYWx1ZSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIG11bHRpcGxlIHNlbGVjdCBpcyBpbiBpc29sYXRlIG1vZGUgYW5kIGhhdmUgbm8gb3B0aW9ucyBzZWxlY3RlZFxuICAgICAqIGl0IHNob3VsZCBzZW5kIHRvIHRoZSBzZXJ2ZXIgYWxsIGl0J3MgcG9zc2libGUgdmFsdWVzLFxuICAgICAqIGJ1dCBzaG91bGQgbm90IHNob3cgdGhlbSBhcyBzZWxlY3RlZCBpbiBpbnRlcmZhY2VzIGFzIHdlbGwgYXMgaW4gcXVlcnkgcGFyYW1zICYgcGVyc2lzdGFuY2VcbiAgICAgKlxuICAgICAqIENvZGUgYmVsb3cgcHJldmVudHMgZmlsbGluZyBtb2RlbCB3aXRoIHZhbHVlcyBmcm9tIHF1ZXJ5IHBhcmFtcyBpZiBxdWVyeSBwYXJhbXMgY29udGFpbiBhbGwgcG9zc2libGUgdmFsdWVzXG4gICAgICovXG4gICAgY29uc3QgaXNvbGF0ZSA9ICF3cm9uZ0RlZmF1bHRWYWx1ZVxuICAgICAgJiYgIXRoaXMuaXNvbGF0ZU9wdGlvbk5vdFNlbGVjdGVkXG4gICAgICAmJiBhcnJheXNBcmVFcXVhbHModGhpcy5tb2RlbCwgdmFsdWVzKTtcblxuICAgIGlmICh3cm9uZ0RlZmF1bHRWYWx1ZSB8fCBpc29sYXRlKSB7XG4gICAgICB0aGlzLm1vZGVsID0gW107XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBfc2V0TW9kZWwodmFsdWUpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUubWFwKCh2YWwpID0+IHtcbiAgICAgICAgaWYgKGlzTmFOKHZhbCkpIHtcbiAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiArdmFsO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIHN1cGVyLl9zZXRNb2RlbCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3ZhbGlkYXRlTW9kZWwoKSB7XG4gICAgY29uc3QgcG9zc2libGVWYWx1ZXMgPSBmaWx0ZXIodGhpcy5tb2RlbCB8fCBbXSwgKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5maW5kKHZhbHVlID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnZhbHVlID09IGl0ZW07XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmICghaXNBcnJheUVxdWFsKHRoaXMubW9kZWwsIHBvc3NpYmxlVmFsdWVzKSkge1xuICAgICAgdGhpcy5tb2RlbCA9IHBvc3NpYmxlVmFsdWVzO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfY2xlYXJWYWx1ZShkZWZhdWx0VmFsdWU6IHVua25vd24gPSB1bmRlZmluZWQpIHtcbiAgICBzdXBlci5fY2xlYXJWYWx1ZShkZWZhdWx0VmFsdWUpO1xuXG4gICAgdGhpcy5tb2RlbCA9IGRlZmF1bHRWYWx1ZSA/PyBbXTtcbiAgfVxufVxuIl19
|