@igo2/geo 19.0.0-next.6 → 19.0.0-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/igo2-geo.mjs +416 -154
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/datasource/shared/capabilities.service.d.ts +2 -1
- package/lib/datasource/shared/datasources/wms-datasource.d.ts +2 -0
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -0
- package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +2 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -0
- package/lib/filter/shared/date.utils.d.ts +9 -0
- package/lib/filter/shared/filter.utils.d.ts +26 -0
- package/lib/filter/shared/ogc-filter.d.ts +0 -7
- package/lib/filter/shared/ogc-filter.interface.d.ts +9 -2
- package/lib/filter/shared/ogc-filter.service.d.ts +1 -0
- package/lib/filter/shared/time-filter.interface.d.ts +2 -2
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +10 -5
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -0
- package/package.json +5 -5
package/fesm2022/igo2-geo.mjs
CHANGED
|
@@ -2196,6 +2196,86 @@ class XYZDataSource extends DataSource {
|
|
|
2196
2196
|
}
|
|
2197
2197
|
}
|
|
2198
2198
|
|
|
2199
|
+
const TimeFrame = ['now', 'today'];
|
|
2200
|
+
const TimeUnit = [
|
|
2201
|
+
'years',
|
|
2202
|
+
'months',
|
|
2203
|
+
'weeks',
|
|
2204
|
+
'days',
|
|
2205
|
+
'hours',
|
|
2206
|
+
'seconds'
|
|
2207
|
+
];
|
|
2208
|
+
const ArithmeticSymbol = ['+', '-'];
|
|
2209
|
+
/**
|
|
2210
|
+
* this function to parse date with specific format
|
|
2211
|
+
* exemple 'today' or 'today + 1 days' or 'now + 1 years'
|
|
2212
|
+
* @param value string date
|
|
2213
|
+
* @returns date
|
|
2214
|
+
*/
|
|
2215
|
+
function parseDateOperation(dateOperation) {
|
|
2216
|
+
const normalizedOp = dateOperation.replace(/\s+/g, '');
|
|
2217
|
+
if (normalizedOp === TimeFrame[0]) {
|
|
2218
|
+
return moment().format();
|
|
2219
|
+
}
|
|
2220
|
+
else if (normalizedOp === TimeFrame[1]) {
|
|
2221
|
+
return moment().endOf('day').format();
|
|
2222
|
+
}
|
|
2223
|
+
const regex = new RegExp(`(${TimeFrame.join('|')})([${ArithmeticSymbol.join('|')}]\\d+)(${TimeUnit.join('|')})?`, 'i');
|
|
2224
|
+
const match = normalizedOp.match(regex);
|
|
2225
|
+
if (!match) {
|
|
2226
|
+
console.warn('Invalid format. example: today or today + 1 year...');
|
|
2227
|
+
return moment().toString();
|
|
2228
|
+
}
|
|
2229
|
+
let date = match[1] === TimeFrame[0] ? moment() : moment().endOf('day');
|
|
2230
|
+
if (!match[2]) {
|
|
2231
|
+
console.warn(`Invalid arithmetic symbol or value. Expected one of: ${ArithmeticSymbol.join(', ')}`);
|
|
2232
|
+
return date.format();
|
|
2233
|
+
}
|
|
2234
|
+
const operator = match[2][0];
|
|
2235
|
+
const value = parseInt(match[2].slice(1), 10);
|
|
2236
|
+
const unit = match[3]?.toLowerCase();
|
|
2237
|
+
if (!match[3] && !TimeUnit.includes(unit)) {
|
|
2238
|
+
console.warn(`Invalid time unit. Expected one of: ${TimeUnit.join(', ')}`);
|
|
2239
|
+
return date.format();
|
|
2240
|
+
}
|
|
2241
|
+
if (operator === ArithmeticSymbol['0']) {
|
|
2242
|
+
date = date.add(value, unit);
|
|
2243
|
+
}
|
|
2244
|
+
else {
|
|
2245
|
+
date = date.subtract(value, unit);
|
|
2246
|
+
}
|
|
2247
|
+
return date.format();
|
|
2248
|
+
}
|
|
2249
|
+
function isIgoLogicalArray(filters) {
|
|
2250
|
+
return 'filters' in filters && 'logical' in filters;
|
|
2251
|
+
}
|
|
2252
|
+
function isFilterAttributeOptions(filters) {
|
|
2253
|
+
return 'propertyName' in filters;
|
|
2254
|
+
}
|
|
2255
|
+
/**
|
|
2256
|
+
* Recursive
|
|
2257
|
+
* Search inside filters of OgcFiltersOptions
|
|
2258
|
+
*/
|
|
2259
|
+
function searchFilter(filters, key, value) {
|
|
2260
|
+
if (isIgoLogicalArray(filters)) {
|
|
2261
|
+
if (Array.isArray(filters.filters)) {
|
|
2262
|
+
return filters.filters.find((filter) => searchFilter(filter, key, value));
|
|
2263
|
+
}
|
|
2264
|
+
else {
|
|
2265
|
+
searchFilter(filters, key, value);
|
|
2266
|
+
}
|
|
2267
|
+
}
|
|
2268
|
+
else if (isFilterAttributeOptions(filters)) {
|
|
2269
|
+
if (filters[key] === value) {
|
|
2270
|
+
return filters;
|
|
2271
|
+
}
|
|
2272
|
+
}
|
|
2273
|
+
return undefined;
|
|
2274
|
+
}
|
|
2275
|
+
function isTimeFrame(value) {
|
|
2276
|
+
return TimeFrame.some((timeFrame) => value.toLocaleLowerCase().includes(timeFrame));
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2199
2279
|
var OgcFilterOperatorType;
|
|
2200
2280
|
(function (OgcFilterOperatorType) {
|
|
2201
2281
|
OgcFilterOperatorType["BasicNumericOperator"] = "basicnumericoperator";
|
|
@@ -2923,7 +3003,7 @@ class OgcFilterWriter {
|
|
|
2923
3003
|
}
|
|
2924
3004
|
else if (value.toLowerCase().includes('now') ||
|
|
2925
3005
|
value.toLowerCase().includes('today')) {
|
|
2926
|
-
return
|
|
3006
|
+
return parseDateOperation(value);
|
|
2927
3007
|
}
|
|
2928
3008
|
else if (moment(value).isValid()) {
|
|
2929
3009
|
return value;
|
|
@@ -2932,50 +3012,16 @@ class OgcFilterWriter {
|
|
|
2932
3012
|
return undefined;
|
|
2933
3013
|
}
|
|
2934
3014
|
}
|
|
2935
|
-
/**
|
|
2936
|
-
* this function to parse date with specific format
|
|
2937
|
-
* exemple 'today + 1 days' or 'now + 1 years'
|
|
2938
|
-
* @param value string date
|
|
2939
|
-
* @returns date
|
|
2940
|
-
*/
|
|
2941
|
-
parseDateOperation(value) {
|
|
2942
|
-
const operationSplitted = value.toLowerCase().split(' ');
|
|
2943
|
-
const leftOperand = operationSplitted[0];
|
|
2944
|
-
const operator = ['+', '-'].includes(operationSplitted[1])
|
|
2945
|
-
? operationSplitted[1]
|
|
2946
|
-
: undefined;
|
|
2947
|
-
const rightOperand = /^[0-9]*$/.test(operationSplitted[2])
|
|
2948
|
-
? operationSplitted[2]
|
|
2949
|
-
: undefined;
|
|
2950
|
-
const rightUnitOperand = (['years', 'months', 'weeks', 'days', 'hours', 'seconds'].includes(operationSplitted[3])
|
|
2951
|
-
? operationSplitted[3]
|
|
2952
|
-
: undefined);
|
|
2953
|
-
if (!operator || !rightUnitOperand || !rightOperand) {
|
|
2954
|
-
return leftOperand === 'now'
|
|
2955
|
-
? moment().format()
|
|
2956
|
-
: moment().endOf('day').format();
|
|
2957
|
-
}
|
|
2958
|
-
if (operator === '+') {
|
|
2959
|
-
return leftOperand === 'now'
|
|
2960
|
-
? moment().add(parseInt(rightOperand, 10), rightUnitOperand).format()
|
|
2961
|
-
: moment()
|
|
2962
|
-
.endOf('day')
|
|
2963
|
-
.add(parseInt(rightOperand, 10), rightUnitOperand)
|
|
2964
|
-
.format();
|
|
2965
|
-
}
|
|
2966
|
-
else {
|
|
2967
|
-
return leftOperand === 'now'
|
|
2968
|
-
? moment()
|
|
2969
|
-
.subtract(parseInt(rightOperand, 10), rightUnitOperand)
|
|
2970
|
-
.format()
|
|
2971
|
-
: moment()
|
|
2972
|
-
.endOf('day')
|
|
2973
|
-
.subtract(parseInt(rightOperand, 10), rightUnitOperand)
|
|
2974
|
-
.format();
|
|
2975
|
-
}
|
|
2976
|
-
}
|
|
2977
3015
|
}
|
|
2978
3016
|
|
|
3017
|
+
const OgcSelectorFields = [
|
|
3018
|
+
'pushButtons',
|
|
3019
|
+
'checkboxes',
|
|
3020
|
+
'radioButtons',
|
|
3021
|
+
'select',
|
|
3022
|
+
'autocomplete'
|
|
3023
|
+
];
|
|
3024
|
+
|
|
2979
3025
|
const defaultEpsg = 'EPSG:3857';
|
|
2980
3026
|
const defaultMaxFeatures = 5000;
|
|
2981
3027
|
const defaultWfsVersion = '2.0.0';
|
|
@@ -3193,6 +3239,56 @@ function getFormatFromOptions(options) {
|
|
|
3193
3239
|
}
|
|
3194
3240
|
return new olFormatCls();
|
|
3195
3241
|
}
|
|
3242
|
+
function getSaveableOgcParams(options) {
|
|
3243
|
+
const selectors = OgcSelectorFields.reduce((selector, selectorName) => {
|
|
3244
|
+
if (options[selectorName]) {
|
|
3245
|
+
selector[selectorName] = {
|
|
3246
|
+
groups: options[selectorName].groups
|
|
3247
|
+
};
|
|
3248
|
+
}
|
|
3249
|
+
return selector;
|
|
3250
|
+
}, {});
|
|
3251
|
+
return {
|
|
3252
|
+
...selectors,
|
|
3253
|
+
...(options?.interfaceOgcFilters && {
|
|
3254
|
+
interfaceOgcFilters: options.interfaceOgcFilters.map((interfaceOgc) => {
|
|
3255
|
+
const filters = searchFilter(options.filters, 'filterid', interfaceOgc.filterid);
|
|
3256
|
+
return interfaceOgcFilters(filters, interfaceOgc);
|
|
3257
|
+
})
|
|
3258
|
+
})
|
|
3259
|
+
};
|
|
3260
|
+
}
|
|
3261
|
+
function interfaceOgcFilters(filters, interfaceOgc) {
|
|
3262
|
+
const saveableInterface = {
|
|
3263
|
+
propertyName: interfaceOgc?.propertyName,
|
|
3264
|
+
operator: interfaceOgc?.operator,
|
|
3265
|
+
active: interfaceOgc?.active,
|
|
3266
|
+
expression: interfaceOgc?.expression
|
|
3267
|
+
};
|
|
3268
|
+
Object.keys(saveableInterface).forEach((key) => {
|
|
3269
|
+
if (isEmpty(saveableInterface[key])) {
|
|
3270
|
+
delete saveableInterface[key];
|
|
3271
|
+
}
|
|
3272
|
+
});
|
|
3273
|
+
handleFilterDate(filters, interfaceOgc, saveableInterface);
|
|
3274
|
+
return saveableInterface;
|
|
3275
|
+
}
|
|
3276
|
+
function isEmpty(value) {
|
|
3277
|
+
return value === null || value === undefined || value === '';
|
|
3278
|
+
}
|
|
3279
|
+
function handleFilterDate(filter, interfaceOgc, saveableInterface) {
|
|
3280
|
+
const keys = ['begin', 'end'];
|
|
3281
|
+
const formatDate = (date) => TimeFrame.some((timeFrame) => date.toLocaleLowerCase().includes(timeFrame))
|
|
3282
|
+
? new Date(parseDateOperation(date)).toISOString().split('.')[0] + 'Z'
|
|
3283
|
+
: new Date(date).toISOString().split('.')[0] + 'Z';
|
|
3284
|
+
keys.forEach((key) => {
|
|
3285
|
+
if (filter && !isEmpty(filter[key])) {
|
|
3286
|
+
if (formatDate(filter[key]) !== formatDate(interfaceOgc[key])) {
|
|
3287
|
+
saveableInterface[key] = interfaceOgc[key];
|
|
3288
|
+
}
|
|
3289
|
+
}
|
|
3290
|
+
});
|
|
3291
|
+
}
|
|
3196
3292
|
|
|
3197
3293
|
class WFSDataSource extends DataSource {
|
|
3198
3294
|
options;
|
|
@@ -3208,7 +3304,10 @@ class WFSDataSource extends DataSource {
|
|
|
3208
3304
|
const baseOptions = super.saveableOptions;
|
|
3209
3305
|
return {
|
|
3210
3306
|
...baseOptions,
|
|
3211
|
-
params: this.options.params
|
|
3307
|
+
params: this.options.params,
|
|
3308
|
+
...(this.ogcFilters && {
|
|
3309
|
+
ogcFilters: getSaveableOgcParams(this.ogcFilters)
|
|
3310
|
+
})
|
|
3212
3311
|
};
|
|
3213
3312
|
}
|
|
3214
3313
|
constructor(options, wfsService, authInterceptor) {
|
|
@@ -3485,6 +3584,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
3485
3584
|
}]
|
|
3486
3585
|
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
3487
3586
|
|
|
3587
|
+
/**
|
|
3588
|
+
* @param date: string
|
|
3589
|
+
* @example date = <[2014-08-25, 2018-08-25]>
|
|
3590
|
+
* @example date = 2014-08-25, 2018-08-25
|
|
3591
|
+
* @example date = 2014-08-25/ 2018-08-25
|
|
3592
|
+
* @example date = 2014-08-25
|
|
3593
|
+
*/
|
|
3594
|
+
function parseDateString(date) {
|
|
3595
|
+
let dateStrings;
|
|
3596
|
+
if (Array.isArray(date)) {
|
|
3597
|
+
dateStrings = date;
|
|
3598
|
+
}
|
|
3599
|
+
else {
|
|
3600
|
+
if (date.startsWith('[') && date.endsWith(']')) {
|
|
3601
|
+
dateStrings = date.replace(/[\[\]]/g, '').split(',');
|
|
3602
|
+
}
|
|
3603
|
+
else if (date.includes('/')) {
|
|
3604
|
+
dateStrings = date.split('/');
|
|
3605
|
+
}
|
|
3606
|
+
else {
|
|
3607
|
+
dateStrings = date.split(',');
|
|
3608
|
+
}
|
|
3609
|
+
}
|
|
3610
|
+
const dates = dateStrings.map((date) => moment(date));
|
|
3611
|
+
if (dates.length === 1) {
|
|
3612
|
+
return dates[0].isValid() ? dates[0].toDate() : undefined;
|
|
3613
|
+
}
|
|
3614
|
+
const startDate = dates[0];
|
|
3615
|
+
const endDate = dates[1];
|
|
3616
|
+
if (endDate.isBefore(startDate)) {
|
|
3617
|
+
console.error('Please check the order min and max dates');
|
|
3618
|
+
return undefined;
|
|
3619
|
+
}
|
|
3620
|
+
if (startDate.isValid() && endDate.isValid()) {
|
|
3621
|
+
return [startDate.toDate(), endDate.toDate()];
|
|
3622
|
+
}
|
|
3623
|
+
return undefined;
|
|
3624
|
+
}
|
|
3625
|
+
function isValidAndWithinRange(date, [min, max]) {
|
|
3626
|
+
const value = moment(date);
|
|
3627
|
+
return (value.isValid() &&
|
|
3628
|
+
value.isBetween(moment(min), moment(max), undefined, '[]'));
|
|
3629
|
+
}
|
|
3630
|
+
function isDateOrRangeInRange(dateOrRange, [min, max]) {
|
|
3631
|
+
if (Array.isArray(dateOrRange)) {
|
|
3632
|
+
const [start, end] = dateOrRange;
|
|
3633
|
+
return (isValidAndWithinRange(start, [min, max]) &&
|
|
3634
|
+
isValidAndWithinRange(end, [min, max]));
|
|
3635
|
+
}
|
|
3636
|
+
return isValidAndWithinRange(dateOrRange, [min, max]);
|
|
3637
|
+
}
|
|
3638
|
+
|
|
3488
3639
|
var QueryFormat;
|
|
3489
3640
|
(function (QueryFormat) {
|
|
3490
3641
|
QueryFormat["GML2"] = "gml2";
|
|
@@ -3523,6 +3674,10 @@ class WMSDataSource extends DataSource {
|
|
|
3523
3674
|
get params() {
|
|
3524
3675
|
return this.options.params;
|
|
3525
3676
|
}
|
|
3677
|
+
set stylesParams(value) {
|
|
3678
|
+
this.options.params.STYLES = value;
|
|
3679
|
+
this.ol.updateParams({ value });
|
|
3680
|
+
}
|
|
3526
3681
|
get queryTitle() {
|
|
3527
3682
|
return this.options.queryTitle
|
|
3528
3683
|
? this.options.queryTitle
|
|
@@ -3551,9 +3706,18 @@ class WMSDataSource extends DataSource {
|
|
|
3551
3706
|
timeFilter$ = new BehaviorSubject(undefined);
|
|
3552
3707
|
get saveableOptions() {
|
|
3553
3708
|
const baseOptions = super.saveableOptions;
|
|
3709
|
+
if (this.timeFilter?.value &&
|
|
3710
|
+
this.timeFilter?.value.toString() !== this.timeFilter?.default.toString()) {
|
|
3711
|
+
baseOptions.timeFilter = {
|
|
3712
|
+
value: this.timeFilter.value
|
|
3713
|
+
};
|
|
3714
|
+
}
|
|
3554
3715
|
return {
|
|
3555
3716
|
...baseOptions,
|
|
3556
|
-
params: this.params
|
|
3717
|
+
params: this.params,
|
|
3718
|
+
...(this.ogcFilters && {
|
|
3719
|
+
ogcFilters: getSaveableOgcParams(this.ogcFilters)
|
|
3720
|
+
})
|
|
3557
3721
|
};
|
|
3558
3722
|
}
|
|
3559
3723
|
constructor(options, wfsService) {
|
|
@@ -3653,9 +3817,33 @@ class WMSDataSource extends DataSource {
|
|
|
3653
3817
|
const timeFilterableDataSourceOptions = options;
|
|
3654
3818
|
if (timeFilterableDataSourceOptions?.timeFilterable &&
|
|
3655
3819
|
timeFilterableDataSourceOptions?.timeFilter) {
|
|
3820
|
+
if (timeFilterableDataSourceOptions.timeFilter.value) {
|
|
3821
|
+
const date = this.dateFormat(timeFilterableDataSourceOptions.timeFilter);
|
|
3822
|
+
this.ol.updateParams({
|
|
3823
|
+
TIME: date
|
|
3824
|
+
});
|
|
3825
|
+
}
|
|
3656
3826
|
this.setTimeFilter(timeFilterableDataSourceOptions.timeFilter, true);
|
|
3657
3827
|
}
|
|
3658
3828
|
}
|
|
3829
|
+
dateFormat(timeFilterOptions) {
|
|
3830
|
+
const date = parseDateString(timeFilterOptions.value);
|
|
3831
|
+
const minMax = parseDateString([
|
|
3832
|
+
timeFilterOptions.min,
|
|
3833
|
+
timeFilterOptions.max
|
|
3834
|
+
]);
|
|
3835
|
+
const valueInRange = isDateOrRangeInRange(date, minMax);
|
|
3836
|
+
if (date instanceof Date) {
|
|
3837
|
+
return valueInRange
|
|
3838
|
+
? `${date.toISOString().split('.')[0]}Z`
|
|
3839
|
+
: `${minMax[0].toISOString().split('.')[0]}Z`;
|
|
3840
|
+
}
|
|
3841
|
+
else {
|
|
3842
|
+
return valueInRange
|
|
3843
|
+
? `${date[0].toISOString().split('.')[0]}Z/${date[1].toISOString().split('.')[0]}Z`
|
|
3844
|
+
: `${minMax[0].toISOString().split('.')[0]}Z/${minMax[1].toISOString().split('.')[0]}Z`;
|
|
3845
|
+
}
|
|
3846
|
+
}
|
|
3659
3847
|
refresh() {
|
|
3660
3848
|
this.ol.updateParams({ igoRefresh: Math.random() });
|
|
3661
3849
|
}
|
|
@@ -3677,7 +3865,7 @@ class WMSDataSource extends DataSource {
|
|
|
3677
3865
|
this.timeFilter = timeFilter;
|
|
3678
3866
|
if (triggerEvent) {
|
|
3679
3867
|
this.timeFilter$.next(this.timeFilter);
|
|
3680
|
-
this.ol.notify('timeFilter', this.
|
|
3868
|
+
this.ol.notify('timeFilter', this.timeFilter);
|
|
3681
3869
|
}
|
|
3682
3870
|
}
|
|
3683
3871
|
getLegend(style, view) {
|
|
@@ -9349,6 +9537,12 @@ class CapabilitiesService {
|
|
|
9349
9537
|
if (!queryFormat) {
|
|
9350
9538
|
queryable = false;
|
|
9351
9539
|
}
|
|
9540
|
+
if (baseOptions.params.STYLES) {
|
|
9541
|
+
const style = legendOptions?.stylesAvailable?.find((style) => style.name === baseOptions.params.STYLES);
|
|
9542
|
+
if (!style) {
|
|
9543
|
+
delete baseOptions.params.STYLES;
|
|
9544
|
+
}
|
|
9545
|
+
}
|
|
9352
9546
|
const options = ObjectUtils.removeUndefined({
|
|
9353
9547
|
_layerOptionsFromSource: {
|
|
9354
9548
|
title: layer.Title,
|
|
@@ -9541,7 +9735,7 @@ class CapabilitiesService {
|
|
|
9541
9735
|
timeFilter.step = minMaxDim[2] !== undefined ? minMaxDim[2] : undefined;
|
|
9542
9736
|
}
|
|
9543
9737
|
if (dimension.default) {
|
|
9544
|
-
timeFilter.value = dimension.default;
|
|
9738
|
+
timeFilter.value = timeFilter.default = dimension.default;
|
|
9545
9739
|
}
|
|
9546
9740
|
return timeFilter;
|
|
9547
9741
|
}
|
|
@@ -10279,7 +10473,7 @@ class LayerLegendComponent {
|
|
|
10279
10473
|
.LAYERS.split(',')
|
|
10280
10474
|
.map(() => (STYLES += this.currentStyle + ','));
|
|
10281
10475
|
STYLES = STYLES.slice(0, -1);
|
|
10282
|
-
this.layer.dataSource.
|
|
10476
|
+
this.layer.dataSource.stylesParams = STYLES;
|
|
10283
10477
|
}
|
|
10284
10478
|
}
|
|
10285
10479
|
onLoadImage(id) {
|
|
@@ -17873,23 +18067,11 @@ class TimeFilterService {
|
|
|
17873
18067
|
}
|
|
17874
18068
|
reformatDateTime(value) {
|
|
17875
18069
|
const year = value.getFullYear();
|
|
17876
|
-
let month = value.getMonth() + 1;
|
|
17877
|
-
let day = value.getUTCDate();
|
|
17878
|
-
let hour = value.getUTCHours();
|
|
17879
|
-
let minute = value.getUTCMinutes();
|
|
17880
|
-
|
|
17881
|
-
month = '0' + month;
|
|
17882
|
-
}
|
|
17883
|
-
if (Number(day) < 10) {
|
|
17884
|
-
day = '0' + day;
|
|
17885
|
-
}
|
|
17886
|
-
if (Number(hour) < 10) {
|
|
17887
|
-
hour = '0' + hour;
|
|
17888
|
-
}
|
|
17889
|
-
if (Number(minute) < 10) {
|
|
17890
|
-
minute = '0' + minute;
|
|
17891
|
-
}
|
|
17892
|
-
return year + '-' + month + '-' + day + 'T' + hour + ':' + minute + ':00Z';
|
|
18070
|
+
let month = (value.getMonth() + 1).toString().padStart(2, '0');
|
|
18071
|
+
let day = value.getUTCDate().toString().padStart(2, '0');
|
|
18072
|
+
let hour = value.getUTCHours().toString().padStart(2, '0');
|
|
18073
|
+
let minute = value.getUTCMinutes().toString().padStart(2, '0');
|
|
18074
|
+
return `${year}-${month}-${day}T${hour}:${minute}:00Z`;
|
|
17893
18075
|
}
|
|
17894
18076
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TimeFilterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17895
18077
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TimeFilterService });
|
|
@@ -17912,6 +18094,11 @@ class OGCFilterService {
|
|
|
17912
18094
|
options.ogcFilters.interfaceOgcFilters =
|
|
17913
18095
|
ogcFilterWriter.defineInterfaceFilterSequence(options.ogcFilters.filters, options.paramsWFS.fieldNameGeometry);
|
|
17914
18096
|
}
|
|
18097
|
+
else {
|
|
18098
|
+
const mergedInterfaceOgcFilters = this.mergeInterfaceFilters(options.ogcFilters.filters, options.ogcFilters.interfaceOgcFilters);
|
|
18099
|
+
options.ogcFilters.interfaceOgcFilters =
|
|
18100
|
+
ogcFilterWriter.defineInterfaceFilterSequence(mergedInterfaceOgcFilters, options.paramsWFS.fieldNameGeometry);
|
|
18101
|
+
}
|
|
17915
18102
|
}
|
|
17916
18103
|
}
|
|
17917
18104
|
setOgcWMSFiltersOptions(wmsDatasource) {
|
|
@@ -17925,6 +18112,11 @@ class OGCFilterService {
|
|
|
17925
18112
|
// With some wms server, this param must be set to make spatials call.
|
|
17926
18113
|
options.ogcFilters.filters, options.fieldNameGeometry);
|
|
17927
18114
|
}
|
|
18115
|
+
else {
|
|
18116
|
+
const mergedInterfaceOgcFilters = this.mergeInterfaceFilters(options.ogcFilters.filters, options.ogcFilters.interfaceOgcFilters);
|
|
18117
|
+
options.ogcFilters.interfaceOgcFilters =
|
|
18118
|
+
ogcFilterWriter.defineInterfaceFilterSequence(mergedInterfaceOgcFilters, options.fieldNameGeometry);
|
|
18119
|
+
}
|
|
17928
18120
|
this.filterByOgc(wmsDatasource, ogcFilterWriter.buildFilter(options.ogcFilters.filters, undefined, undefined, undefined, wmsDatasource.options));
|
|
17929
18121
|
options.filtered = true;
|
|
17930
18122
|
}
|
|
@@ -17934,6 +18126,15 @@ class OGCFilterService {
|
|
|
17934
18126
|
options.filtered = false;
|
|
17935
18127
|
}
|
|
17936
18128
|
}
|
|
18129
|
+
mergeInterfaceFilters(filters, interfaceOgcFilters) {
|
|
18130
|
+
return interfaceOgcFilters.map((interfaceOgc) => {
|
|
18131
|
+
const filter = searchFilter(filters, 'propertyName', interfaceOgc.propertyName);
|
|
18132
|
+
if (filter) {
|
|
18133
|
+
return { ...interfaceOgc, filterid: filter.filterid };
|
|
18134
|
+
}
|
|
18135
|
+
return interfaceOgc;
|
|
18136
|
+
});
|
|
18137
|
+
}
|
|
17937
18138
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: OGCFilterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17938
18139
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: OGCFilterService });
|
|
17939
18140
|
}
|
|
@@ -18976,6 +19177,9 @@ class OgcFilterTimeComponent {
|
|
|
18976
19177
|
}
|
|
18977
19178
|
changeTemporalProperty(value, position, refreshFilter = true) {
|
|
18978
19179
|
if (typeof value === 'string') {
|
|
19180
|
+
if (!this.isValidDate(value)) {
|
|
19181
|
+
return;
|
|
19182
|
+
}
|
|
18979
19183
|
value = new Date(value);
|
|
18980
19184
|
}
|
|
18981
19185
|
let valueTmp = this.getDateTime(value, position);
|
|
@@ -19431,6 +19635,13 @@ class OgcFilterTimeComponent {
|
|
|
19431
19635
|
this.setFilterStateDisable();
|
|
19432
19636
|
this.updateValues();
|
|
19433
19637
|
}
|
|
19638
|
+
isValidDate(value) {
|
|
19639
|
+
if (/^\d+$/.test(value)) {
|
|
19640
|
+
return false;
|
|
19641
|
+
}
|
|
19642
|
+
const date = new Date(value);
|
|
19643
|
+
return date instanceof Date && !isNaN(date.getTime());
|
|
19644
|
+
}
|
|
19434
19645
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: OgcFilterTimeComponent, deps: [{ token: OGCFilterTimeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19435
19646
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: OgcFilterTimeComponent, isStandalone: true, selector: "igo-ogc-filter-time", inputs: { datasource: "datasource", currentFilter: "currentFilter" }, outputs: { changeProperty: "changeProperty" }, providers: [OGCFilterTimeService, provideMomentDateAdapter()], viewQueries: [{ propertyName: "endDatepickerTime", first: true, predicate: ["endDatepickerTime"], descendants: true }, { propertyName: "beginDatepickerTime", first: true, predicate: ["beginDatepickerTime"], descendants: true }, { propertyName: "beginTime", first: true, predicate: ["beginTime"], descendants: true }, { propertyName: "endTime", first: true, predicate: ["endTime"], descendants: true }], ngImport: i0, template: "<div class=\"datetime-container\">\n <mat-slide-toggle\n *ngIf=\"this.currentFilter.sliderOptions?.enabled\"\n [(ngModel)]=\"sliderMode\"\n (change)=\"modeChange($event)\"\n >\n {{ 'igo.geo.filter.sliderModeTitle' | translate }}\n </mat-slide-toggle>\n\n <div class=\"slider-container\" *ngIf=\"sliderMode\">\n <igo-ogc-filter-time-slider\n [begin]=\"beginValue\"\n [max]=\"this.restrictedToStep() ? this.maxDate : this.endValue\"\n [currentFilter]=\"currentFilter\"\n [datasource]=\"datasource\"\n (changeProperty)=\"changePropertyByPass($event)\"\n >\n </igo-ogc-filter-time-slider>\n </div>\n\n <div *ngIf=\"!sliderMode\">\n <div class=\"year-input-container\" *ngIf=\"calendarTypeYear\">\n <!-- to emulate a year-picker, 2 input: first input to show user just year and second input hiden and bind \n with the datepicker -->\n <mat-form-field class=\"year-input\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'igo.geo.timeFilter.startYear' | translate }}</mat-label>\n <input\n matInput\n class=\"year-input-only-year\"\n value=\"{{ onlyYearBegin }}\"\n (change)=\"yearOnlyInputChange($event, beginDatepicker, 'begin')\"\n [disabled]=\"filterStateDisable\"\n />\n <mat-datepicker-toggle\n matSuffix\n [for]=\"beginDatepicker\"\n [disabled]=\"filterStateDisable\"\n ></mat-datepicker-toggle>\n\n <mat-datepicker\n panelClass=\"datepicker-year\"\n #beginDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"beginValue\"\n (yearSelected)=\"yearSelected($event, beginDatepicker, 'begin')\"\n >\n </mat-datepicker>\n\n <input\n #beginYear\n class=\"year-input-hide\"\n matInput\n [matDatepicker]=\"beginDatepicker\"\n enabled=\"false\"\n readonly=\"true\"\n [value]=\"\n beginValue ? beginValue : handleDate(datasource.options.minDate)\n \"\n [min]=\"handleDate(datasource.options.minDate)\"\n [max]=\"\n endValue && !restrictedToStep()\n ? endValue\n : handleDate(datasource.options.maxDate)\n \"\n />\n </mat-form-field>\n\n <mat-form-field class=\"year-input\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'igo.geo.timeFilter.endYear' | translate }}</mat-label>\n <input\n matInput\n class=\"year-input-only-year\"\n value=\"{{ onlyYearEnd }}\"\n (change)=\"yearOnlyInputChange($event, endDatepicker, 'end')\"\n [disabled]=\"filterStateDisable\"\n />\n <mat-datepicker-toggle\n matSuffix\n [for]=\"endDatepicker\"\n [disabled]=\"filterStateDisable\"\n ></mat-datepicker-toggle>\n <mat-datepicker\n panelClass=\"datepicker-year\"\n #endDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"endValue\"\n (yearSelected)=\"yearSelected($event, endDatepicker, 'end')\"\n >\n </mat-datepicker>\n\n <input\n #endYear\n class=\"year-input-hide\"\n matInput\n [matDatepicker]=\"endDatepicker\"\n enabled=\"false\"\n readonly=\"true\"\n [value]=\"endValue ? endValue : handleDate(datasource.options.maxDate)\"\n [min]=\"\n beginValue ? beginValue : handleDate(datasource.options.minDate)\n \"\n [max]=\"handleDate(datasource.options.maxDate)\"\n />\n </mat-form-field>\n <div class=\"actions-container\">\n <button\n class=\"reset-button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"resetFilter()\"\n [matTooltip]=\"'igo.geo.filter.resetFilters' | translate\"\n [disabled]=\"filterStateDisable\"\n >\n <mat-icon>{{ resetIcon }}</mat-icon>\n </button>\n <mat-slide-toggle\n class=\"toggle-filter-state\"\n (change)=\"toggleFilterState()\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [checked]=\"!filterStateDisable\"\n >\n </mat-slide-toggle>\n </div>\n </div>\n\n <div class=\"datetime-input-container\" *ngIf=\"calendarType() !== 'year'\">\n <div class=\"datetime-input\">\n <mat-form-field class=\"date-input\" subscriptSizing=\"dynamic\">\n <mat-datepicker-toggle\n matSuffix\n [for]=\"beginDatepicker\"\n [disabled]=\"filterStateDisable\"\n ></mat-datepicker-toggle>\n <input\n #begin\n matInput\n [matDatepicker]=\"beginDatepicker\"\n [placeholder]=\"'igo.geo.timeFilter.startDate' | translate\"\n [attr.disabled]=\"!currentFilter.active\"\n (dateChange)=\"changeTemporalProperty(begin.value, 1)\"\n [matDatepickerFilter]=\"filterBeginFunction\"\n [value]=\"\n beginValue ? beginValue : handleDate(datasource.options.minDate)\n \"\n [min]=\"handleDate(datasource.options.minDate)\"\n [max]=\"\n endValue && !restrictedToStep()\n ? endValue\n : handleDate(datasource.options.maxDate)\n \"\n [disabled]=\"filterStateDisable\"\n />\n <span class=\"filler\"></span>\n <mat-datepicker\n #beginDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"beginValue\"\n (yearSelected)=\"yearSelected($event, beginDatepicker, 'begin')\"\n (monthSelected)=\"monthSelected($event, beginDatepicker, 'begin')\"\n >\n </mat-datepicker>\n </mat-form-field>\n\n <div *ngIf=\"calendarType() === 'datetime'\" class=\"time-input\">\n <mat-form-field class=\"hour-input\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'igo.geo.timeFilter.hour' | translate }}</mat-label>\n <mat-select\n [formControl]=\"beginHourFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(begin.value, 1)\"\n >\n <mat-option *ngFor=\"let hour of beginHours\" [value]=\"hour\">{{\n hour\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"minute-input\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'igo.geo.timeFilter.minute' | translate }}</mat-label>\n <mat-select\n [formControl]=\"beginMinuteFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(begin.value, 1)\"\n >\n <mat-option\n *ngFor=\"let minute of beginMinutes\"\n [value]=\"minute\"\n >{{ minute }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <div *ngIf=\"!restrictedToStep()\" class=\"datetime-input\">\n <mat-form-field class=\"date-input\" subscriptSizing=\"dynamic\">\n <mat-datepicker-toggle\n matSuffix\n [for]=\"endDatepicker\"\n [disabled]=\"filterStateDisable\"\n ></mat-datepicker-toggle>\n <input\n #end\n matInput\n [matDatepicker]=\"endDatepicker\"\n [placeholder]=\"'igo.geo.timeFilter.endDate' | translate\"\n [attr.disabled]=\"!currentFilter.active\"\n (dateChange)=\"changeTemporalProperty(end.value, 2)\"\n [matDatepickerFilter]=\"filterEndFunction\"\n [value]=\"\n endValue ? endValue : handleDate(datasource.options.maxDate)\n \"\n [min]=\"\n beginValue ? beginValue : handleDate(datasource.options.minDate)\n \"\n [max]=\"handleDate(datasource.options.maxDate)\"\n [disabled]=\"filterStateDisable\"\n />\n <span class=\"filler\"></span>\n <mat-datepicker\n #endDatepicker\n [startView]=\"calendarView()\"\n [startAt]=\"endValue\"\n (yearSelected)=\"yearSelected($event, endDatepicker, 'end')\"\n (monthSelected)=\"monthSelected($event, endDatepicker, 'end')\"\n >\n </mat-datepicker>\n </mat-form-field>\n\n <div *ngIf=\"calendarType() === 'datetime'\" class=\"time-input\">\n <mat-form-field class=\"hour-input\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'igo.geo.timeFilter.hour' | translate }}</mat-label>\n <mat-select\n [formControl]=\"endHourFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(end.value, 2)\"\n >\n <mat-option *ngFor=\"let hour of endHours\" [value]=\"hour\">{{\n hour\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"minute-input\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'igo.geo.timeFilter.minute' | translate }}</mat-label>\n <mat-select\n [formControl]=\"endMinuteFormControl\"\n [attr.disabled]=\"!currentFilter.active\"\n (selectionChange)=\"changeTemporalProperty(end.value, 2)\"\n >\n <mat-option *ngFor=\"let minute of endMinutes\" [value]=\"minute\">{{\n minute\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"actions-container\">\n <button\n class=\"reset-button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"resetFilter()\"\n [matTooltip]=\"'igo.geo.filter.resetFilters' | translate\"\n [disabled]=\"filterStateDisable\"\n >\n <mat-icon>{{ resetIcon }}</mat-icon>\n </button>\n <mat-slide-toggle\n class=\"toggle-filter-state\"\n (change)=\"toggleFilterState()\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\n [checked]=\"!filterStateDisable\"\n >\n </mat-slide-toggle>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host ::ng-deep input{text-align:center!important;margin:auto 5px!important}:host .slider-container{text-align:center}:host .datetime-input-container{display:flex;align-items:center;flex-wrap:wrap}:host .datetime-input-container>:not(:last-child){margin-right:8px}:host .datetime-input{display:block}:host .date-input{width:154px}:host .actions-container{display:flex;align-items:center}:host .time-input{margin-top:16px}:host .time-input>:not(:last-child){margin-right:8px}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host .time-input{margin-top:4px}}:host .hour-input,:host .minute-input{width:100px}:host .year-input-container{display:flex;width:100%}:host .year-input-container mat-form-field:not(:last-child){margin-right:4px}:host .year-input-hide{width:120px;margin-right:25px;display:none}:host .year-input-only-year{width:120px;margin-right:25px;text-align:left!important}:host ::ng-deep .datepicker-year ::ng-deep .mat-calendar-arrow{display:none}:host ::ng-deep .datepicker-year ::ng-deep .mat-calendar-period-button{pointer-events:none}:host ::ng-deep .datepicker-year ::ng-deep .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover{background-color:#0000001f;border-radius:999px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i5$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: OgcFilterTimeSliderComponent, selector: "igo-ogc-filter-time-slider", inputs: ["currentFilter", "begin", "max", "datasource"], outputs: ["changeProperty"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i6$3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6$3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
19436
19647
|
}
|
|
@@ -28987,7 +29198,7 @@ class TimeFilterFormComponent {
|
|
|
28987
29198
|
}
|
|
28988
29199
|
}
|
|
28989
29200
|
}
|
|
28990
|
-
|
|
29201
|
+
dateChange = new EventEmitter();
|
|
28991
29202
|
yearChange = new EventEmitter();
|
|
28992
29203
|
mySlider;
|
|
28993
29204
|
get type() {
|
|
@@ -29036,7 +29247,9 @@ class TimeFilterFormComponent {
|
|
|
29036
29247
|
}
|
|
29037
29248
|
get min() {
|
|
29038
29249
|
if (this.options.min) {
|
|
29039
|
-
const min =
|
|
29250
|
+
const min = isTimeFrame(this.options.min)
|
|
29251
|
+
? new Date(parseDateOperation(this.options.min))
|
|
29252
|
+
: new Date(this.options.min);
|
|
29040
29253
|
return new Date(min.getTime() + min.getTimezoneOffset() * 60000);
|
|
29041
29254
|
}
|
|
29042
29255
|
else {
|
|
@@ -29045,7 +29258,9 @@ class TimeFilterFormComponent {
|
|
|
29045
29258
|
}
|
|
29046
29259
|
get max() {
|
|
29047
29260
|
if (this.options.max) {
|
|
29048
|
-
const max =
|
|
29261
|
+
const max = isTimeFrame(this.options.max)
|
|
29262
|
+
? new Date(parseDateOperation(this.options.max))
|
|
29263
|
+
: new Date(this.options.max);
|
|
29049
29264
|
return new Date(max.getTime() + max.getTimezoneOffset() * 60000);
|
|
29050
29265
|
}
|
|
29051
29266
|
else {
|
|
@@ -29055,6 +29270,13 @@ class TimeFilterFormComponent {
|
|
|
29055
29270
|
get is() {
|
|
29056
29271
|
return this.options.range === undefined ? false : this.options.range;
|
|
29057
29272
|
}
|
|
29273
|
+
get allYearsInterval() {
|
|
29274
|
+
const options = [];
|
|
29275
|
+
for (let i = this.initStartYear; i <= this.initEndYear; i++) {
|
|
29276
|
+
options.push(i);
|
|
29277
|
+
}
|
|
29278
|
+
return options;
|
|
29279
|
+
}
|
|
29058
29280
|
constructor(dateAdapter) {
|
|
29059
29281
|
this.dateAdapter = dateAdapter;
|
|
29060
29282
|
this.dateAdapter.setLocale('fr');
|
|
@@ -29074,22 +29296,15 @@ class TimeFilterFormComponent {
|
|
|
29074
29296
|
this.endYear = new Date(this.endDate).getFullYear();
|
|
29075
29297
|
this.initEndYear = this.endYear;
|
|
29076
29298
|
}
|
|
29299
|
+
this.checkFilterValue();
|
|
29077
29300
|
if (!this.isRange) {
|
|
29078
|
-
|
|
29079
|
-
this.listYears.push(i);
|
|
29080
|
-
}
|
|
29301
|
+
this.listYears = this.allYearsInterval;
|
|
29081
29302
|
}
|
|
29082
29303
|
else {
|
|
29083
|
-
|
|
29084
|
-
this.startListYears.push(i);
|
|
29085
|
-
}
|
|
29086
|
-
for (let i = this.startYear + 1; i <= this.endYear; i++) {
|
|
29087
|
-
this.endListYears.push(i);
|
|
29088
|
-
}
|
|
29304
|
+
this.setUpYearsInterval();
|
|
29089
29305
|
}
|
|
29090
29306
|
this.options.enabled =
|
|
29091
29307
|
this.options.enabled === undefined ? true : this.options.enabled;
|
|
29092
|
-
this.checkFilterValue();
|
|
29093
29308
|
if (this.options.enabled) {
|
|
29094
29309
|
if (!this.isRange && this.style === 'slider' && this.type === 'year') {
|
|
29095
29310
|
this.yearChange.emit(this.year);
|
|
@@ -29108,74 +29323,124 @@ class TimeFilterFormComponent {
|
|
|
29108
29323
|
this.options.value = this.year.toString();
|
|
29109
29324
|
}
|
|
29110
29325
|
}
|
|
29111
|
-
|
|
29112
|
-
|
|
29113
|
-
const
|
|
29114
|
-
|
|
29115
|
-
this.
|
|
29116
|
-
|
|
29117
|
-
|
|
29118
|
-
|
|
29326
|
+
processSliderValue() {
|
|
29327
|
+
// if style is Slider the range always false
|
|
29328
|
+
const dateValue = this.getDateValue();
|
|
29329
|
+
const inRange = dateValue
|
|
29330
|
+
? isDateOrRangeInRange(dateValue, [this.min, this.max])
|
|
29331
|
+
: undefined;
|
|
29332
|
+
if (inRange && dateValue instanceof Date) {
|
|
29333
|
+
if (this.type === TimeFilterType.YEAR) {
|
|
29334
|
+
this.year = dateValue.getFullYear();
|
|
29335
|
+
}
|
|
29336
|
+
else {
|
|
29337
|
+
this.date = dateValue;
|
|
29119
29338
|
}
|
|
29120
|
-
|
|
29121
|
-
|
|
29339
|
+
}
|
|
29340
|
+
else {
|
|
29341
|
+
if (this.type === TimeFilterType.YEAR) {
|
|
29342
|
+
this.year = this.min.getFullYear();
|
|
29122
29343
|
}
|
|
29123
29344
|
else {
|
|
29124
|
-
this.
|
|
29345
|
+
this.date = this.min;
|
|
29125
29346
|
}
|
|
29126
29347
|
}
|
|
29127
|
-
|
|
29128
|
-
|
|
29129
|
-
|
|
29130
|
-
|
|
29131
|
-
|
|
29132
|
-
|
|
29133
|
-
|
|
29134
|
-
|
|
29135
|
-
|
|
29136
|
-
|
|
29137
|
-
|
|
29138
|
-
|
|
29139
|
-
newEndListYears.push(i);
|
|
29140
|
-
}
|
|
29141
|
-
this.startListYears = newStartListYears;
|
|
29142
|
-
this.endListYears = newEndListYears;
|
|
29348
|
+
}
|
|
29349
|
+
processCalendarYearType() {
|
|
29350
|
+
const dateValue = this.getDateValue();
|
|
29351
|
+
const inRange = dateValue
|
|
29352
|
+
? isDateOrRangeInRange(dateValue, [this.min, this.max])
|
|
29353
|
+
: undefined;
|
|
29354
|
+
if (!this.isRange) {
|
|
29355
|
+
if (inRange && dateValue instanceof Date) {
|
|
29356
|
+
this.year = dateValue.getFullYear();
|
|
29357
|
+
}
|
|
29358
|
+
else {
|
|
29359
|
+
this.year = this.min.getFullYear();
|
|
29143
29360
|
}
|
|
29144
29361
|
}
|
|
29145
|
-
|
|
29362
|
+
else {
|
|
29363
|
+
if (inRange &&
|
|
29364
|
+
Array.isArray(dateValue) &&
|
|
29365
|
+
dateValue[0].getFullYear() !== dateValue[1].getFullYear()) {
|
|
29366
|
+
this.startYear = dateValue[0].getFullYear();
|
|
29367
|
+
this.endYear = dateValue[1].getFullYear();
|
|
29368
|
+
}
|
|
29369
|
+
}
|
|
29370
|
+
}
|
|
29371
|
+
processCalendarDateType() {
|
|
29372
|
+
const dateValue = this.getDateValue();
|
|
29373
|
+
const inRange = dateValue
|
|
29374
|
+
? isDateOrRangeInRange(dateValue, [this.min, this.max])
|
|
29375
|
+
: undefined;
|
|
29376
|
+
if (!this.isRange) {
|
|
29377
|
+
if (inRange && dateValue instanceof Date) {
|
|
29378
|
+
this.date = dateValue;
|
|
29379
|
+
}
|
|
29380
|
+
else {
|
|
29381
|
+
this.date = this.min;
|
|
29382
|
+
}
|
|
29383
|
+
}
|
|
29384
|
+
else {
|
|
29385
|
+
if (inRange &&
|
|
29386
|
+
Array.isArray(dateValue) &&
|
|
29387
|
+
dateValue[0] !== dateValue[1]) {
|
|
29388
|
+
this.startDate = dateValue[0];
|
|
29389
|
+
this.endDate = dateValue[1];
|
|
29390
|
+
}
|
|
29391
|
+
}
|
|
29392
|
+
}
|
|
29393
|
+
getDateValue() {
|
|
29394
|
+
const olSource = this.layer.dataSource.ol;
|
|
29395
|
+
const timeFromWms = olSource.getParams().TIME
|
|
29396
|
+
? parseDateString(String(olSource.getParams().TIME))
|
|
29397
|
+
: undefined;
|
|
29398
|
+
const dateValue = this.options.value && !timeFromWms
|
|
29399
|
+
? parseDateString(this.options.value)
|
|
29400
|
+
: undefined;
|
|
29401
|
+
return timeFromWms ?? dateValue;
|
|
29402
|
+
}
|
|
29403
|
+
checkCalendarValue() {
|
|
29404
|
+
if (this.type === TimeFilterType.YEAR) {
|
|
29405
|
+
this.processCalendarYearType();
|
|
29406
|
+
}
|
|
29407
|
+
else {
|
|
29408
|
+
this.processCalendarDateType();
|
|
29409
|
+
}
|
|
29410
|
+
}
|
|
29411
|
+
checkFilterValue() {
|
|
29412
|
+
if (this.style === TimeFilterStyle.SLIDER) {
|
|
29413
|
+
this.processSliderValue();
|
|
29414
|
+
}
|
|
29415
|
+
else if (this.style === TimeFilterStyle.CALENDAR) {
|
|
29416
|
+
this.checkCalendarValue();
|
|
29417
|
+
}
|
|
29146
29418
|
}
|
|
29147
29419
|
handleDateChange() {
|
|
29148
29420
|
this.setupDateOutput();
|
|
29149
29421
|
this.applyTypeChange();
|
|
29150
29422
|
// Only if is range, use 2 dates to make the range
|
|
29151
29423
|
if (this.isRange) {
|
|
29152
|
-
this.
|
|
29424
|
+
this.dateChange.emit([this.startDate, this.endDate]);
|
|
29153
29425
|
}
|
|
29154
29426
|
else {
|
|
29155
|
-
this.
|
|
29427
|
+
this.dateChange.emit(this.startDate);
|
|
29156
29428
|
}
|
|
29157
29429
|
}
|
|
29158
29430
|
handleYearChange() {
|
|
29159
29431
|
if (this.isRange) {
|
|
29160
29432
|
this.endListYears = [];
|
|
29161
|
-
for (let i = this.startYear + 1; i <= this.initEndYear; i++) {
|
|
29162
|
-
this.endListYears.push(i);
|
|
29163
|
-
}
|
|
29164
29433
|
this.startListYears = [];
|
|
29165
|
-
|
|
29166
|
-
this.startListYears.push(i);
|
|
29167
|
-
}
|
|
29434
|
+
this.setUpYearsInterval();
|
|
29168
29435
|
this.yearChange.emit([this.startYear, this.endYear]);
|
|
29169
29436
|
}
|
|
29170
29437
|
else {
|
|
29171
29438
|
this.yearChange.emit(this.year);
|
|
29172
29439
|
}
|
|
29173
29440
|
}
|
|
29174
|
-
|
|
29175
|
-
this.
|
|
29176
|
-
|
|
29177
|
-
handleListYearStartChange() {
|
|
29178
|
-
this.change.emit([this.startDate, this.endDate]);
|
|
29441
|
+
setUpYearsInterval() {
|
|
29442
|
+
this.endListYears = this.allYearsInterval.slice(this.startYear + 1 - this.initStartYear);
|
|
29443
|
+
this.startListYears = this.allYearsInterval.slice(0, this.endYear - this.initStartYear);
|
|
29179
29444
|
}
|
|
29180
29445
|
dateToNumber(date) {
|
|
29181
29446
|
let newDate;
|
|
@@ -29217,7 +29482,7 @@ class TimeFilterFormComponent {
|
|
|
29217
29482
|
else {
|
|
29218
29483
|
this.stopFilter();
|
|
29219
29484
|
this.storeCurrentFilterValue();
|
|
29220
|
-
this.
|
|
29485
|
+
this.dateChange.emit(undefined); // TODO: FIX THIS for ALL OTHER TYPES STYLES OR RANGE.
|
|
29221
29486
|
}
|
|
29222
29487
|
}
|
|
29223
29488
|
resetFilter() {
|
|
@@ -29230,7 +29495,7 @@ class TimeFilterFormComponent {
|
|
|
29230
29495
|
}
|
|
29231
29496
|
else {
|
|
29232
29497
|
this.setupDateOutput();
|
|
29233
|
-
this.
|
|
29498
|
+
this.dateChange.emit(undefined); // TODO: FIX THIS for ALL OTHER TYPES STYLES OR RANGE.
|
|
29234
29499
|
}
|
|
29235
29500
|
}
|
|
29236
29501
|
playFilter() {
|
|
@@ -29283,7 +29548,8 @@ class TimeFilterFormComponent {
|
|
|
29283
29548
|
this.playIcon = 'play_circle';
|
|
29284
29549
|
}
|
|
29285
29550
|
handleSliderDateChange(event) {
|
|
29286
|
-
|
|
29551
|
+
const date = new Date(event.value);
|
|
29552
|
+
this.date = new Date(date.getTime() - date.getTimezoneOffset() * 60000);
|
|
29287
29553
|
this.setSliderThumbLabel(this.handleSliderTooltip());
|
|
29288
29554
|
this.handleDateChange();
|
|
29289
29555
|
}
|
|
@@ -29304,36 +29570,22 @@ class TimeFilterFormComponent {
|
|
|
29304
29570
|
}
|
|
29305
29571
|
}
|
|
29306
29572
|
handleSliderTooltip() {
|
|
29307
|
-
|
|
29573
|
+
// 24h = 86400000 ms
|
|
29574
|
+
const oneDayMs = 86400000;
|
|
29575
|
+
const date = this.date === undefined ? this.min : this.date;
|
|
29308
29576
|
switch (this.type) {
|
|
29309
29577
|
case TimeFilterType.DATE:
|
|
29310
|
-
|
|
29311
|
-
this.date === undefined
|
|
29312
|
-
? this.min.toDateString()
|
|
29313
|
-
: this.date.toDateString();
|
|
29314
|
-
break;
|
|
29578
|
+
return this.step >= oneDayMs ? date.toDateString() : date.toUTCString();
|
|
29315
29579
|
case TimeFilterType.TIME:
|
|
29316
|
-
|
|
29317
|
-
this.date === undefined
|
|
29318
|
-
? this.min.toTimeString()
|
|
29319
|
-
: this.date.toTimeString();
|
|
29320
|
-
break;
|
|
29321
|
-
// datetime
|
|
29580
|
+
return date.toTimeString();
|
|
29322
29581
|
default:
|
|
29323
|
-
|
|
29324
|
-
this.date === undefined
|
|
29325
|
-
? this.min.toUTCString()
|
|
29326
|
-
: this.date.toUTCString();
|
|
29327
|
-
break;
|
|
29582
|
+
return this.date.toUTCString();
|
|
29328
29583
|
}
|
|
29329
|
-
return label;
|
|
29330
29584
|
}
|
|
29331
29585
|
setupDateOutput() {
|
|
29332
29586
|
if (this.style === TimeFilterStyle.SLIDER) {
|
|
29333
29587
|
this.startDate = new Date(this.date);
|
|
29334
|
-
this.startDate.setSeconds(-(this.step / 1000));
|
|
29335
29588
|
this.endDate = new Date(this.startDate);
|
|
29336
|
-
this.endDate.setSeconds(this.step / 1000);
|
|
29337
29589
|
}
|
|
29338
29590
|
else if (!this.isRange && !!this.date) {
|
|
29339
29591
|
this.endDate = new Date(this.date);
|
|
@@ -29355,13 +29607,15 @@ class TimeFilterFormComponent {
|
|
|
29355
29607
|
applyTypeChange() {
|
|
29356
29608
|
switch (this.type) {
|
|
29357
29609
|
case TimeFilterType.DATE:
|
|
29358
|
-
if (this.
|
|
29359
|
-
this.startDate.
|
|
29360
|
-
|
|
29361
|
-
|
|
29362
|
-
|
|
29363
|
-
|
|
29364
|
-
|
|
29610
|
+
if (this.style === TimeFilterStyle.CALENDAR) {
|
|
29611
|
+
if (this.startDate !== undefined || this.endDate !== undefined) {
|
|
29612
|
+
this.startDate.setHours(0);
|
|
29613
|
+
this.startDate.setMinutes(0);
|
|
29614
|
+
this.startDate.setSeconds(0);
|
|
29615
|
+
this.endDate.setHours(23);
|
|
29616
|
+
this.endDate.setMinutes(59);
|
|
29617
|
+
this.endDate.setSeconds(59);
|
|
29618
|
+
}
|
|
29365
29619
|
}
|
|
29366
29620
|
break;
|
|
29367
29621
|
case TimeFilterType.TIME:
|
|
@@ -29418,7 +29672,7 @@ class TimeFilterFormComponent {
|
|
|
29418
29672
|
return moment.duration(step).asMilliseconds();
|
|
29419
29673
|
}
|
|
29420
29674
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TimeFilterFormComponent, deps: [{ token: i1$8.DateAdapter }], target: i0.ɵɵFactoryTarget.Component });
|
|
29421
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: TimeFilterFormComponent, isStandalone: true, selector: "igo-time-filter-form", inputs: { layer: "layer", options: "options", currentValue: "currentValue" }, outputs: {
|
|
29675
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: TimeFilterFormComponent, isStandalone: true, selector: "igo-time-filter-form", inputs: { layer: "layer", options: "options", currentValue: "currentValue" }, outputs: { dateChange: "dateChange", yearChange: "yearChange" }, viewQueries: [{ propertyName: "mySlider", first: true, predicate: MatSlider, descendants: true }], ngImport: i0, template: "<div *ngIf=\"style === 'calendar' && type !== 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"datetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #datetimePicker\n [type]=\"type\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [matDatetimepicker]=\"datetimePicker\"\n [(ngModel)]=\"date\"\n [min]=\"min\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange()\"\n />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"minDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #minDatetimePicker\n [type]=\"type\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [matDatetimepicker]=\"minDatetimePicker\"\n [(ngModel)]=\"startDate\"\n [min]=\"min\"\n [max]=\"getRangeMaxDate()\"\n readonly=\"readonly\"\n (input)=\"(startDate)\"\n (dateChange)=\"handleDateChange()\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"maxDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #maxDatetimePicker\n [type]=\"type\"\n [openOnFocus]=\"true\"\n [timeInterval]=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [matDatetimepicker]=\"maxDatetimePicker\"\n [(ngModel)]=\"endDate\"\n [min]=\"getRangeMinDate()\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange()\"\n />\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"style === 'calendar' && type === 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [(ngModel)]=\"year\"\n (selectionChange)=\"handleYearChange()\"\n >\n <mat-option [value]=\"year\" *ngFor=\"let year of listYears\">{{\n year\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [(ngModel)]=\"startYear\"\n (selectionChange)=\"handleYearChange()\"\n >\n <mat-option\n [value]=\"startYear\"\n *ngFor=\"let startYear of startListYears\"\n >{{ startYear }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [(ngModel)]=\"endYear\"\n (selectionChange)=\"handleYearChange()\"\n >\n <mat-option [value]=\"endYear\" *ngFor=\"let endYear of endListYears\">{{\n endYear\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<br />\n<div\n *ngIf=\"!isRange && style === 'slider' && type === 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m mat-typography\"\n>\n <span>{{ startYear }}</span>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"startYear\"\n [max]=\"endYear\"\n [color]=\"color\"\n thumbLabel\n [disabled]=\"!options.enabled || !layer.visible\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n (change)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n />\n </mat-slider>\n <span>{{ endYear }}</span>\n <p *ngIf=\"options.enabled\" class=\"date-below\">{{ year }}</p>\n <div #actions class=\"igo-layer-actions-container\">\n <mat-slide-toggle\n (change)=\"toggleFilterState()\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\n [color]=\"color\"\n [checked]=\"options.enabled\"\n [disabled]=\"!layer.visible\"\n >\n </mat-slide-toggle>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"playYear()\"\n >\n <mat-icon>{{ playIcon }}</mat-icon>\n </button>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"resetFilter()\"\n >\n <mat-icon>{{ resetIcon }}</mat-icon>\n </button>\n </div>\n</div>\n\n<div\n *ngIf=\"style === 'slider' && type !== 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m\"\n>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"dateToNumber(min)\"\n [max]=\"dateToNumber(max)\"\n thumbLabel\n (selectionChange)=\"handleSliderDateChange($event)\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderDateChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n />\n </mat-slider>\n <p class=\"date-below\">{{ handleSliderTooltip() }}</p>\n <button mat-icon-button color=\"primary\" (click)=\"playFilter()\">\n <mat-icon>{{ playIcon }}</mat-icon>\n </button>\n</div>\n", styles: [":host .igo-layer-filters-container{padding-left:5px}:host #time-slider{width:70%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host #time-slider{width:60%}}:host .date-below{margin:0}:host .igo-layer-actions-container{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatetimepickerModule }, { kind: "component", type: i3$6.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i3$6.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i3$6.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "ngmodule", type: MatMomentDateModule }, { kind: "ngmodule", type: MatNativeDatetimeModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: // For the DateAdapter provider
|
|
29422
29676
|
MatInputModule }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$4.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: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatSliderModule }, { kind: "component", type: i7$1.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i7$1.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i5$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
29423
29677
|
}
|
|
29424
29678
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TimeFilterFormComponent, decorators: [{
|
|
@@ -29448,7 +29702,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
29448
29702
|
type: Input
|
|
29449
29703
|
}], currentValue: [{
|
|
29450
29704
|
type: Input
|
|
29451
|
-
}],
|
|
29705
|
+
}], dateChange: [{
|
|
29452
29706
|
type: Output
|
|
29453
29707
|
}], yearChange: [{
|
|
29454
29708
|
type: Output
|
|
@@ -29483,9 +29737,17 @@ class TimeFilterItemComponent {
|
|
|
29483
29737
|
}
|
|
29484
29738
|
handleYearChange(year) {
|
|
29485
29739
|
this.timeFilterService.filterByYear(this.datasource, year);
|
|
29740
|
+
this.datasource.options.timeFilter.value = year.toString();
|
|
29486
29741
|
}
|
|
29487
29742
|
handleDateChange(date) {
|
|
29488
29743
|
this.timeFilterService.filterByDate(this.datasource, date);
|
|
29744
|
+
this.datasource.options.timeFilter.value =
|
|
29745
|
+
date instanceof Date
|
|
29746
|
+
? this.reformDate(date)
|
|
29747
|
+
: [this.reformDate(date[0]), this.reformDate(date[1])];
|
|
29748
|
+
}
|
|
29749
|
+
reformDate(date) {
|
|
29750
|
+
return date.toISOString().split('.')[0] + 'Z';
|
|
29489
29751
|
}
|
|
29490
29752
|
toggleLegend(collapsed) {
|
|
29491
29753
|
this.layer.legendCollapsed = collapsed;
|
|
@@ -29503,7 +29765,7 @@ class TimeFilterItemComponent {
|
|
|
29503
29765
|
this.filtersCollapsed = !this.filtersCollapsed;
|
|
29504
29766
|
}
|
|
29505
29767
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TimeFilterItemComponent, deps: [{ token: TimeFilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
29506
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: TimeFilterItemComponent, isStandalone: true, selector: "igo-time-filter-item", inputs: { header: "header", layer: "layer" }, providers: [TimeFilterService], ngImport: i0, template: "<mat-list-item *ngIf=\"header\">\n <mat-icon\n class=\"igo-chevron\"\n matListItemIcon\n igoCollapse\n [target]=\"filters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n >\n expand_less\n </mat-icon>\n\n <span\n matListItemTitle\n (click)=\"toggleLegendOnClick()\"\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\n >{{ layer.title }}</span\n >\n\n <button\n *ngIf=\"header\"\n mat-icon-button\n matListItemMeta\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"layer.visible = !layer.visible\"\n >\n <mat-icon [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n >{{ layer.visible ? 'visibility' : 'visibility_off' }}\n </mat-icon>\n </button>\n</mat-list-item>\n\n<div #filters class=\"igo-datasource-filters-container\">\n <div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-time-filter-form\n [layer]=\"layer\"\n [options]=\"datasource.options.timeFilter\"\n [currentValue]=\"datasource.options.params.TIME\"\n (
|
|
29768
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: TimeFilterItemComponent, isStandalone: true, selector: "igo-time-filter-item", inputs: { header: "header", layer: "layer" }, providers: [TimeFilterService], ngImport: i0, template: "<mat-list-item *ngIf=\"header\">\n <mat-icon\n class=\"igo-chevron\"\n matListItemIcon\n igoCollapse\n [target]=\"filters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n >\n expand_less\n </mat-icon>\n\n <span\n matListItemTitle\n (click)=\"toggleLegendOnClick()\"\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\n >{{ layer.title }}</span\n >\n\n <button\n *ngIf=\"header\"\n mat-icon-button\n matListItemMeta\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"layer.visible = !layer.visible\"\n >\n <mat-icon [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n >{{ layer.visible ? 'visibility' : 'visibility_off' }}\n </mat-icon>\n </button>\n</mat-list-item>\n\n<div #filters class=\"igo-datasource-filters-container\">\n <div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-time-filter-form\n [layer]=\"layer\"\n [options]=\"datasource.options.timeFilter\"\n [currentValue]=\"datasource.options.params.TIME\"\n (dateChange)=\"handleDateChange($event)\"\n (yearChange)=\"handleYearChange($event)\"\n >\n </igo-time-filter-form>\n</div>\n", styles: [":host{overflow:hidden}:host .igo-datasource-filters-container{text-align:center;width:100%;display:inline-block;padding-top:5px}:host .igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$3.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i1$3.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i1$3.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: CollapseDirective, selector: "[igoCollapse]", inputs: ["target", "collapsed"], outputs: ["toggle"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }, { kind: "component", type: TimeFilterFormComponent, selector: "igo-time-filter-form", inputs: ["layer", "options", "currentValue"], outputs: ["dateChange", "yearChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
29507
29769
|
}
|
|
29508
29770
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TimeFilterItemComponent, decorators: [{
|
|
29509
29771
|
type: Component,
|
|
@@ -29520,7 +29782,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
29520
29782
|
TimeFilterFormComponent,
|
|
29521
29783
|
AsyncPipe,
|
|
29522
29784
|
IgoLanguageModule
|
|
29523
|
-
], providers: [TimeFilterService], template: "<mat-list-item *ngIf=\"header\">\n <mat-icon\n class=\"igo-chevron\"\n matListItemIcon\n igoCollapse\n [target]=\"filters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n >\n expand_less\n </mat-icon>\n\n <span\n matListItemTitle\n (click)=\"toggleLegendOnClick()\"\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\n >{{ layer.title }}</span\n >\n\n <button\n *ngIf=\"header\"\n mat-icon-button\n matListItemMeta\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"layer.visible = !layer.visible\"\n >\n <mat-icon [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n >{{ layer.visible ? 'visibility' : 'visibility_off' }}\n </mat-icon>\n </button>\n</mat-list-item>\n\n<div #filters class=\"igo-datasource-filters-container\">\n <div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-time-filter-form\n [layer]=\"layer\"\n [options]=\"datasource.options.timeFilter\"\n [currentValue]=\"datasource.options.params.TIME\"\n (
|
|
29785
|
+
], providers: [TimeFilterService], template: "<mat-list-item *ngIf=\"header\">\n <mat-icon\n class=\"igo-chevron\"\n matListItemIcon\n igoCollapse\n [target]=\"filters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n >\n expand_less\n </mat-icon>\n\n <span\n matListItemTitle\n (click)=\"toggleLegendOnClick()\"\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\n >{{ layer.title }}</span\n >\n\n <button\n *ngIf=\"header\"\n mat-icon-button\n matListItemMeta\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"layer.visible = !layer.visible\"\n >\n <mat-icon [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n >{{ layer.visible ? 'visibility' : 'visibility_off' }}\n </mat-icon>\n </button>\n</mat-list-item>\n\n<div #filters class=\"igo-datasource-filters-container\">\n <div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-time-filter-form\n [layer]=\"layer\"\n [options]=\"datasource.options.timeFilter\"\n [currentValue]=\"datasource.options.params.TIME\"\n (dateChange)=\"handleDateChange($event)\"\n (yearChange)=\"handleYearChange($event)\"\n >\n </igo-time-filter-form>\n</div>\n", styles: [":host{overflow:hidden}:host .igo-datasource-filters-container{text-align:center;width:100%;display:inline-block;padding-top:5px}:host .igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}\n"] }]
|
|
29524
29786
|
}], ctorParameters: () => [{ type: TimeFilterService }], propDecorators: { header: [{
|
|
29525
29787
|
type: Input
|
|
29526
29788
|
}], layer: [{
|
|
@@ -42633,5 +42895,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
42633
42895
|
* Generated bundle index. Do not edit.
|
|
42634
42896
|
*/
|
|
42635
42897
|
|
|
42636
|
-
export { AddCatalogDialogComponent, ArcGISRestCapabilitiesLayerTypes, ArcGISRestDataSource, BaseLayersSwitcherComponent, CATALOG_DIRECTIVES, CATALOG_LIBRARY_DIRECTIVES, CadastreSearchSource, CapabilitiesService, CartoDataSource, Catalog, CatalogBrowserComponent, CatalogItemType, CatalogLibaryComponent, CatalogService, ClusterDataSource, ConfigFileToGeoDBService, ConfirmationPopupComponent, CoordinatesReverseSearchSource, CoordinatesReverseSearchSourceFactory, CoordinatesSearchResultFormatter, CoordinatesUnit, CsvSeparator, DDtoDMS, DataService, DataSource, DataSourceService, DirectionRelativePositionType, DirectionSourceKind, DirectionsButtonsComponent, DirectionsComponent, DirectionsFormat, DirectionsInputsComponent, DirectionsResultsComponent, DirectionsService, DirectionsSource, DirectionsType, DownloadButtonComponent, DownloadService, DrawComponent, DrawControl, DrawIconService, DrawStyleService, DropGeoFileDirective, EditionWorkspace, EditionWorkspaceService, EsriStyleGenerator, ExportButtonComponent, ExportError, ExportFormat, ExportFormatLegacy, ExportInvalidFileError, ExportNothingToExportError, ExportService, FEATURE, FEATURE_DETAILS_DIRECTIVES, FEATURE_DIRECTIVES, FILTER_DIRECTIVES, FeatureDataSource, FeatureDetailsComponent, FeatureDetailsDirective, FeatureFormComponent, FeatureMotion, FeatureStore, FeatureStoreInMapExtentStrategy, FeatureStoreInMapResolutionStrategy, FeatureStoreLoadingLayerStrategy, FeatureStoreLoadingStrategy, FeatureStoreSearchIndexStrategy, FeatureStoreSelectionStrategy, FeatureWorkspace, FeatureWorkspaceService, FilterableDataSourcePipe, GEOMETRY_FORM_FIELD_DIRECTIVES, GeoDBService, GeoNetworkService, GeoPropertiesStrategy, GeolocateButtonComponent, GeolocationOverlayType, GeometryFormFieldComponent, GeometryFormFieldInputComponent, GeometrySliceError, GeometrySliceLineStringError, GeometrySliceMultiPolygonError, GeometrySliceTooManyIntersectionError, GeometryType, GoogleLinks, HomeExtentButtonComponent, HoverFeatureDirective, IChercheReverseSearchSource, IChercheSearchResultFormatter, IChercheSearchSource, ILayerSearchResultFormatter, ILayerSearchSource, IMPORT_EXPORT_DIRECTIVES, IgoCatalogBrowserModule, IgoCatalogLibraryModule, IgoCatalogModule, IgoConfirmationPopupModule, IgoDirectionsModule, IgoDownloadModule, IgoDrawModule, IgoDrawingToolModule, IgoFeatureDetailsModule, IgoFeatureFormModule, IgoFeatureModule, IgoFilterModule, IgoGeoModule, IgoGeoWorkspaceModule, IgoGeometryFormFieldModule, IgoGeometryModule, IgoHttpParameterCodec, IgoImportExportModule, IgoLayerModule, IgoMap, IgoMapModule, IgoMeasureModule, IgoMeasurerModule, IgoMetadataModule, IgoOgcFilterModule, IgoPrintModule, IgoQueryModule, IgoSearchBarModule, IgoSearchModule, IgoSearchResultsModule, IgoSearchSelectorModule, IgoSearchSettingsModule, IgoStyleListModule, IgoStyleModule, IgoToastModule, IgoWktModule, IgoWorkspaceSelectorModule, IgoWorkspaceUpdatorModule, ImageArcGISRestDataSource, ImageLayer, ImageWatcher, ImportError, ImportExportComponent, ImportInvalidFileError, ImportNothingToImportError, ImportOgreServerError, ImportSRSError, ImportService, ImportSizeError, ImportUnreadableFileError, InfoSectionComponent, InsertSourceInsertDBEnum, LAYER, LAYER_DIRECTIVES, LabelType, LaneType, Layer, LayerBase, LayerController, LayerDBService, LayerGroup, LayerGroupBase, LayerGroupComponent, LayerItemComponent, LayerLegendComponent, LayerLegendItemComponent, LayerLegendListBindingDirective, LayerLegendListComponent, LayerListComponent, LayerListControlsEnum, LayerListToolComponent, LayerListToolService, LayerSearchComponent, LayerService, LayerUnavailableComponent, LayerUnavailableListComponent, LayerViewerBottomActionsComponent, LayerViewerComponent, LayerVisibilityButtonComponent, Linked, LinkedProperties, MAP_DIRECTIVES, MEASURER_DIRECTIVES, MEASURE_UNIT_AUTO, METADATA_DIRECTIVES, MVTDataSource, ManeuverModifier, ManeuverType, MapBase, MapBrowserComponent, MapCenterComponent, MapController, MapGeolocationController, MapOfflineDirective, MapService, MapViewAction, MapViewController, MeasureAreaUnit, MeasureAreaUnitAbbreviation, MeasureFormatPipe, MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureType, MeasurerComponent, MenuButtonComponent, MetadataAbstractComponent, MetadataButtonComponent, MetadataService, MiniBaseMapComponent, ModifyControl, NominatimSearchSource, OGCFilterService, OSMDataSource, OfflineButtonComponent, OgcFilterButtonComponent, OgcFilterComponent, OgcFilterFormComponent, OgcFilterOperator, OgcFilterOperatorType, OgcFilterSelectionComponent, OgcFilterTimeComponent, OgcFilterTimeSliderComponent, OgcFilterWidget, OgcFilterWriter, OgcFilterableFormComponent, OgcFilterableItemComponent, OgcFilterableListBindingDirective, OgcFilterableListComponent, OlDragSelectInteraction, OptionsApiService, OptionsService, OsmLinks, OsrmDirectionsSource, Overlay, OverlayAction, PointerPositionDirective, PrintComponent, PrintFormComponent, PrintLegendPosition, PrintOrientation, PrintOutputFormat, PrintPaperFormat, PrintResolution, PrintSaveImageFormat, PrintService, ProjectionService, PropertyTypeDetectorService, ProposalType, QueryDirective, QueryFormat, QueryFormatMimeType, QueryHtmlTarget, QuerySearchSource, QueryService, ResponseType, RotationButtonComponent, RoutesFeatureStore, SEARCH_DIRECTIVES, SEARCH_RESULTS_DIRECTIVES, SEARCH_TYPES, STYLELIST_OPTIONS, SearchBarComponent, SearchPointerSummaryDirective, SearchResultAddButtonComponent, SearchResultMode, SearchResultsComponent, SearchSelectorComponent, SearchService, SearchSettingsComponent, SearchSource, SearchSourceKind, SearchSourceService, SliceControl, SourceDirectionsType, SpatialFilterItemComponent, SpatialFilterItemType, SpatialFilterListComponent, SpatialFilterQueryType, SpatialFilterService, SpatialFilterType, SpatialFilterTypeComponent, StepsFeatureStore, StopsFeatureStore, StopsStore, StoredQueriesReverseSearchSource, StoredQueriesSearchSource, StyleListService, StyleModalDrawingComponent, StyleModalLayerButtonComponent, StyleModalLayerComponent, StyleService, SwipeControlComponent, TileArcGISRestDataSource, TileDebugDataSource, TileLayer, TileWatcher, TimeFilterButtonComponent, TimeFilterFormComponent, TimeFilterItemComponent, TimeFilterListBindingDirective, TimeFilterListComponent, TimeFilterService, TimeFilterStyle, TimeFilterType, ToastComponent, TooltipType, TrackFeatureButtonComponent, TypeCapabilities, TypeCatalog, VectorLayer, VectorTileLayer, VectorWatcher, WFSDataSource, WFSService, WMSDataSource, WMTSDataSource, WakeLockButtonComponent, WebSocketDataSource, WfsWorkspace, WfsWorkspaceService, WktService, WorkspaceSearchSource, WorkspaceSelectorDirective, WorkspaceUpdatorDirective, XYZDataSource, ZoomButtonComponent, addLayerAndFeaturesStyledToMap, addLayerAndFeaturesToMap, addLinearRingToOlPolygon, addOrRemoveLayer, addRouteToRoutesFeatureStore, addStopToStopsFeatureStore, addStopToStore, buildUrl, cadastreSearchSourceFactory, checkWfsParams, clearOlGeometryMidpoints, computeBestAreaUnit, computeBestLengthUnit, computeLayerTitleFromFile, computeMVTOptionsOnHover, computeOlFeatureExtent, computeOlFeaturesDiff, computeOlFeaturesExtent, computeProjectionsConstraints, computeRelativePosition, computeStopsPosition, computeTermSimilarity, convertDDToDMS, createDefaultTileGrid, createDrawHoleInteractionStyle, createDrawInteractionStyle, createFilterInMapExtentOrResolutionStrategy, createInteractionStyle, createMeasureInteractionStyle, createMeasureLayerStyle, createOlTooltipAtPoint, createOlTooltipDrawAtPoint, createOverlayDefaultStyle, createOverlayLayer, createOverlayLayerStyle, createOverlayMarkerStyle, createTableTemplate, ctrlKeyDown, defaultCoordinatesSearchResultFormatterFactory, defaultEpsg, defaultFieldNameGeometry, defaultIChercheSearchResultFormatterFactory, defaultMaxFeatures, defaultWfsVersion, detectFileEPSG, directionsStyle, entitiesToRowData, exportToCSV, featureFromOl, featureRandomStyle, featureRandomStyleFunction, featureToOl, featureToSearchResult, featuresAreOutOfView, featuresAreTooDeepInView, findDiff, findLayerByLinkId, formatDistance, formatDuration, formatMeasure, formatScale, formatStep, formatWFSQueryString, generateArcgisRestIdFromSourceOptions, generateFeatureIdFromSourceOptions, generateId, generateIdFromSourceOptions, generateWMSIdFromSourceOptions, generateWMTSIdFromSourceOptions, generateWfsIdFromSourceOptions, generateXYZIdFromSourceOptions, getAllChildLayersByDeletion, getAllChildLayersByProperty, getCommonVectorSelectedStyle, getCommonVectorStyle, getFileExtension, getFormatFromOptions, getGeoServiceAction, getLayersByDeletion, getLayersLegends, getLinkedLayersOptions, getMousePositionFromOlGeometryEvent, getOlTooltipAtCenter, getOlTooltipsAtMidpoints, getResolutionFromScale, getRootParentByDeletion, getRootParentByProperty, getRowsInMapExtent, getScaleFromResolution, getSelectedOnly, getTooltipsOfOlGeometry, gmlRegex, handleFileExportError, handleFileExportSuccess, handleFileImportError, handleFileImportSuccess, handleInvalidFileImportError, handleLayerPropertyChange, handleNothingToExportError, handleNothingToImportError, handleOgreServerImportError, handleSRSImportError, handleSizeFileImportError, handleUnreadbleFileImportError, hideOlFeature, hoverFeatureMarkerStyle, ichercheReverseSearchSourceFactory, ichercheSearchSourceFactory, ilayerSearchResultFormatterFactory, ilayerSearchSourceFactory, initRoutesFeatureStore, initStepsFeatureStore, initStopsFeatureStore, isBaseLayer, isBaseLayerLinked, isCsvExport, isLayerGroup, isLayerGroupOptions, isLayerItem, isLayerItemOptions, isLayerLinked, isLayerLinkedOptions, isLayerLinkedTogether, isLinkMaster, isSaveableLayer, jsonRegex, layerFeatureIsQueryable, layerIsQueryable, lonLatConversion, mapExtentStrategyActiveToolTip, measureOlGeometry, measureOlGeometryArea, measureOlGeometryLength, metersToFeet, metersToKilometers, metersToMiles, metersToUnit, moveToOlFeatures, mtmZoneFromLonLat, noElementSelected, nominatimSearchSourceFactory, ogcFilterWidgetFactory, olLayerFeatureIsQueryable, olLayerIsQueryable, olStyleToBasicIgoStyle, optionsApiFactory, osrmDirectionsSourcesFactory, pointerPositionSummaryMarkerStyle, provideCadastreSearchSource, provideCoordinatesReverseSearchSource, provideDefaultCoordinatesSearchResultFormatter, provideDefaultIChercheSearchResultFormatter, provideDirection, provideIChercheReverseSearchSource, provideIChercheSearchSource, provideILayerSearchResultFormatter, provideILayerSearchSource, provideNominatimSearchSource, provideOffline, provideOgcFilterWidget, provideOptionsApi, provideOsrmDirectionsSource, provideQuerySearchSource, provideSearch, provideSearchSourceService, provideStoredQueriesReverseSearchSource, provideStoredQueriesSearchSource, provideStyleListLoader, provideStyleListOptions, provideWorkspaceSearchSource, querySearchSourceFactory, removeStopFromStore, renderFeatureFromOl, roundCoordTo, roundCoordToString, scaleExtent, searchSourceServiceFactory, setRowsInMapExtent, setSelectedOnly, sliceOlGeometry, sliceOlPolygon, sortLayersByZindex, sourceCanReverseSearch, sourceCanReverseSearchAsSummary, sourceCanSearch, squareMetersToAcres, squareMetersToHectares, squareMetersToSquareFeet, squareMetersToSquareKilometers, squareMetersToSquareMiles, squareMetersToUnit, standardizeUrl, storedqueriesReverseSearchSourceFactory, storedqueriesSearchSourceFactory, stringToLonLat, translateManeuverBearing, translateManeuverModifier, tryAddLoadingStrategy, tryAddSelectionStrategy, tryBindStoreLayer, updateOlGeometryCenter, updateOlGeometryMidpoints, updateOlTooltipAtCenter, updateOlTooltipDrawAtCenter, updateOlTooltipsAtMidpoints, updateOlTooltipsDrawAtMidpoints, updateStoreSorting, utmZoneFromLonLat, viewStatesAreEqual, withCadastreSource, withCoordinatesReverseSource, withIChercheReverseSource, withIChercheSource, withILayerSource, withNominatimSource, withOsrmSource, withStoredQueriesReverseSource, withStoredQueriesSource, withWorkspaceSource, workspaceSearchSourceFactory, zoneMtm, zoneUtm };
|
|
42898
|
+
export { AddCatalogDialogComponent, ArcGISRestCapabilitiesLayerTypes, ArcGISRestDataSource, BaseLayersSwitcherComponent, CATALOG_DIRECTIVES, CATALOG_LIBRARY_DIRECTIVES, CadastreSearchSource, CapabilitiesService, CartoDataSource, Catalog, CatalogBrowserComponent, CatalogItemType, CatalogLibaryComponent, CatalogService, ClusterDataSource, ConfigFileToGeoDBService, ConfirmationPopupComponent, CoordinatesReverseSearchSource, CoordinatesReverseSearchSourceFactory, CoordinatesSearchResultFormatter, CoordinatesUnit, CsvSeparator, DDtoDMS, DataService, DataSource, DataSourceService, DirectionRelativePositionType, DirectionSourceKind, DirectionsButtonsComponent, DirectionsComponent, DirectionsFormat, DirectionsInputsComponent, DirectionsResultsComponent, DirectionsService, DirectionsSource, DirectionsType, DownloadButtonComponent, DownloadService, DrawComponent, DrawControl, DrawIconService, DrawStyleService, DropGeoFileDirective, EditionWorkspace, EditionWorkspaceService, EsriStyleGenerator, ExportButtonComponent, ExportError, ExportFormat, ExportFormatLegacy, ExportInvalidFileError, ExportNothingToExportError, ExportService, FEATURE, FEATURE_DETAILS_DIRECTIVES, FEATURE_DIRECTIVES, FILTER_DIRECTIVES, FeatureDataSource, FeatureDetailsComponent, FeatureDetailsDirective, FeatureFormComponent, FeatureMotion, FeatureStore, FeatureStoreInMapExtentStrategy, FeatureStoreInMapResolutionStrategy, FeatureStoreLoadingLayerStrategy, FeatureStoreLoadingStrategy, FeatureStoreSearchIndexStrategy, FeatureStoreSelectionStrategy, FeatureWorkspace, FeatureWorkspaceService, FilterableDataSourcePipe, GEOMETRY_FORM_FIELD_DIRECTIVES, GeoDBService, GeoNetworkService, GeoPropertiesStrategy, GeolocateButtonComponent, GeolocationOverlayType, GeometryFormFieldComponent, GeometryFormFieldInputComponent, GeometrySliceError, GeometrySliceLineStringError, GeometrySliceMultiPolygonError, GeometrySliceTooManyIntersectionError, GeometryType, GoogleLinks, HomeExtentButtonComponent, HoverFeatureDirective, IChercheReverseSearchSource, IChercheSearchResultFormatter, IChercheSearchSource, ILayerSearchResultFormatter, ILayerSearchSource, IMPORT_EXPORT_DIRECTIVES, IgoCatalogBrowserModule, IgoCatalogLibraryModule, IgoCatalogModule, IgoConfirmationPopupModule, IgoDirectionsModule, IgoDownloadModule, IgoDrawModule, IgoDrawingToolModule, IgoFeatureDetailsModule, IgoFeatureFormModule, IgoFeatureModule, IgoFilterModule, IgoGeoModule, IgoGeoWorkspaceModule, IgoGeometryFormFieldModule, IgoGeometryModule, IgoHttpParameterCodec, IgoImportExportModule, IgoLayerModule, IgoMap, IgoMapModule, IgoMeasureModule, IgoMeasurerModule, IgoMetadataModule, IgoOgcFilterModule, IgoPrintModule, IgoQueryModule, IgoSearchBarModule, IgoSearchModule, IgoSearchResultsModule, IgoSearchSelectorModule, IgoSearchSettingsModule, IgoStyleListModule, IgoStyleModule, IgoToastModule, IgoWktModule, IgoWorkspaceSelectorModule, IgoWorkspaceUpdatorModule, ImageArcGISRestDataSource, ImageLayer, ImageWatcher, ImportError, ImportExportComponent, ImportInvalidFileError, ImportNothingToImportError, ImportOgreServerError, ImportSRSError, ImportService, ImportSizeError, ImportUnreadableFileError, InfoSectionComponent, InsertSourceInsertDBEnum, LAYER, LAYER_DIRECTIVES, LabelType, LaneType, Layer, LayerBase, LayerController, LayerDBService, LayerGroup, LayerGroupBase, LayerGroupComponent, LayerItemComponent, LayerLegendComponent, LayerLegendItemComponent, LayerLegendListBindingDirective, LayerLegendListComponent, LayerListComponent, LayerListControlsEnum, LayerListToolComponent, LayerListToolService, LayerSearchComponent, LayerService, LayerUnavailableComponent, LayerUnavailableListComponent, LayerViewerBottomActionsComponent, LayerViewerComponent, LayerVisibilityButtonComponent, Linked, LinkedProperties, MAP_DIRECTIVES, MEASURER_DIRECTIVES, MEASURE_UNIT_AUTO, METADATA_DIRECTIVES, MVTDataSource, ManeuverModifier, ManeuverType, MapBase, MapBrowserComponent, MapCenterComponent, MapController, MapGeolocationController, MapOfflineDirective, MapService, MapViewAction, MapViewController, MeasureAreaUnit, MeasureAreaUnitAbbreviation, MeasureFormatPipe, MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureType, MeasurerComponent, MenuButtonComponent, MetadataAbstractComponent, MetadataButtonComponent, MetadataService, MiniBaseMapComponent, ModifyControl, NominatimSearchSource, OGCFilterService, OSMDataSource, OfflineButtonComponent, OgcFilterButtonComponent, OgcFilterComponent, OgcFilterFormComponent, OgcFilterOperator, OgcFilterOperatorType, OgcFilterSelectionComponent, OgcFilterTimeComponent, OgcFilterTimeSliderComponent, OgcFilterWidget, OgcFilterWriter, OgcFilterableFormComponent, OgcFilterableItemComponent, OgcFilterableListBindingDirective, OgcFilterableListComponent, OgcSelectorFields, OlDragSelectInteraction, OptionsApiService, OptionsService, OsmLinks, OsrmDirectionsSource, Overlay, OverlayAction, PointerPositionDirective, PrintComponent, PrintFormComponent, PrintLegendPosition, PrintOrientation, PrintOutputFormat, PrintPaperFormat, PrintResolution, PrintSaveImageFormat, PrintService, ProjectionService, PropertyTypeDetectorService, ProposalType, QueryDirective, QueryFormat, QueryFormatMimeType, QueryHtmlTarget, QuerySearchSource, QueryService, ResponseType, RotationButtonComponent, RoutesFeatureStore, SEARCH_DIRECTIVES, SEARCH_RESULTS_DIRECTIVES, SEARCH_TYPES, STYLELIST_OPTIONS, SearchBarComponent, SearchPointerSummaryDirective, SearchResultAddButtonComponent, SearchResultMode, SearchResultsComponent, SearchSelectorComponent, SearchService, SearchSettingsComponent, SearchSource, SearchSourceKind, SearchSourceService, SliceControl, SourceDirectionsType, SpatialFilterItemComponent, SpatialFilterItemType, SpatialFilterListComponent, SpatialFilterQueryType, SpatialFilterService, SpatialFilterType, SpatialFilterTypeComponent, StepsFeatureStore, StopsFeatureStore, StopsStore, StoredQueriesReverseSearchSource, StoredQueriesSearchSource, StyleListService, StyleModalDrawingComponent, StyleModalLayerButtonComponent, StyleModalLayerComponent, StyleService, SwipeControlComponent, TileArcGISRestDataSource, TileDebugDataSource, TileLayer, TileWatcher, TimeFilterButtonComponent, TimeFilterFormComponent, TimeFilterItemComponent, TimeFilterListBindingDirective, TimeFilterListComponent, TimeFilterService, TimeFilterStyle, TimeFilterType, ToastComponent, TooltipType, TrackFeatureButtonComponent, TypeCapabilities, TypeCatalog, VectorLayer, VectorTileLayer, VectorWatcher, WFSDataSource, WFSService, WMSDataSource, WMTSDataSource, WakeLockButtonComponent, WebSocketDataSource, WfsWorkspace, WfsWorkspaceService, WktService, WorkspaceSearchSource, WorkspaceSelectorDirective, WorkspaceUpdatorDirective, XYZDataSource, ZoomButtonComponent, addLayerAndFeaturesStyledToMap, addLayerAndFeaturesToMap, addLinearRingToOlPolygon, addOrRemoveLayer, addRouteToRoutesFeatureStore, addStopToStopsFeatureStore, addStopToStore, buildUrl, cadastreSearchSourceFactory, checkWfsParams, clearOlGeometryMidpoints, computeBestAreaUnit, computeBestLengthUnit, computeLayerTitleFromFile, computeMVTOptionsOnHover, computeOlFeatureExtent, computeOlFeaturesDiff, computeOlFeaturesExtent, computeProjectionsConstraints, computeRelativePosition, computeStopsPosition, computeTermSimilarity, convertDDToDMS, createDefaultTileGrid, createDrawHoleInteractionStyle, createDrawInteractionStyle, createFilterInMapExtentOrResolutionStrategy, createInteractionStyle, createMeasureInteractionStyle, createMeasureLayerStyle, createOlTooltipAtPoint, createOlTooltipDrawAtPoint, createOverlayDefaultStyle, createOverlayLayer, createOverlayLayerStyle, createOverlayMarkerStyle, createTableTemplate, ctrlKeyDown, defaultCoordinatesSearchResultFormatterFactory, defaultEpsg, defaultFieldNameGeometry, defaultIChercheSearchResultFormatterFactory, defaultMaxFeatures, defaultWfsVersion, detectFileEPSG, directionsStyle, entitiesToRowData, exportToCSV, featureFromOl, featureRandomStyle, featureRandomStyleFunction, featureToOl, featureToSearchResult, featuresAreOutOfView, featuresAreTooDeepInView, findDiff, findLayerByLinkId, formatDistance, formatDuration, formatMeasure, formatScale, formatStep, formatWFSQueryString, generateArcgisRestIdFromSourceOptions, generateFeatureIdFromSourceOptions, generateId, generateIdFromSourceOptions, generateWMSIdFromSourceOptions, generateWMTSIdFromSourceOptions, generateWfsIdFromSourceOptions, generateXYZIdFromSourceOptions, getAllChildLayersByDeletion, getAllChildLayersByProperty, getCommonVectorSelectedStyle, getCommonVectorStyle, getFileExtension, getFormatFromOptions, getGeoServiceAction, getLayersByDeletion, getLayersLegends, getLinkedLayersOptions, getMousePositionFromOlGeometryEvent, getOlTooltipAtCenter, getOlTooltipsAtMidpoints, getResolutionFromScale, getRootParentByDeletion, getRootParentByProperty, getRowsInMapExtent, getSaveableOgcParams, getScaleFromResolution, getSelectedOnly, getTooltipsOfOlGeometry, gmlRegex, handleFileExportError, handleFileExportSuccess, handleFileImportError, handleFileImportSuccess, handleInvalidFileImportError, handleLayerPropertyChange, handleNothingToExportError, handleNothingToImportError, handleOgreServerImportError, handleSRSImportError, handleSizeFileImportError, handleUnreadbleFileImportError, hideOlFeature, hoverFeatureMarkerStyle, ichercheReverseSearchSourceFactory, ichercheSearchSourceFactory, ilayerSearchResultFormatterFactory, ilayerSearchSourceFactory, initRoutesFeatureStore, initStepsFeatureStore, initStopsFeatureStore, isBaseLayer, isBaseLayerLinked, isCsvExport, isLayerGroup, isLayerGroupOptions, isLayerItem, isLayerItemOptions, isLayerLinked, isLayerLinkedOptions, isLayerLinkedTogether, isLinkMaster, isSaveableLayer, jsonRegex, layerFeatureIsQueryable, layerIsQueryable, lonLatConversion, mapExtentStrategyActiveToolTip, measureOlGeometry, measureOlGeometryArea, measureOlGeometryLength, metersToFeet, metersToKilometers, metersToMiles, metersToUnit, moveToOlFeatures, mtmZoneFromLonLat, noElementSelected, nominatimSearchSourceFactory, ogcFilterWidgetFactory, olLayerFeatureIsQueryable, olLayerIsQueryable, olStyleToBasicIgoStyle, optionsApiFactory, osrmDirectionsSourcesFactory, pointerPositionSummaryMarkerStyle, provideCadastreSearchSource, provideCoordinatesReverseSearchSource, provideDefaultCoordinatesSearchResultFormatter, provideDefaultIChercheSearchResultFormatter, provideDirection, provideIChercheReverseSearchSource, provideIChercheSearchSource, provideILayerSearchResultFormatter, provideILayerSearchSource, provideNominatimSearchSource, provideOffline, provideOgcFilterWidget, provideOptionsApi, provideOsrmDirectionsSource, provideQuerySearchSource, provideSearch, provideSearchSourceService, provideStoredQueriesReverseSearchSource, provideStoredQueriesSearchSource, provideStyleListLoader, provideStyleListOptions, provideWorkspaceSearchSource, querySearchSourceFactory, removeStopFromStore, renderFeatureFromOl, roundCoordTo, roundCoordToString, scaleExtent, searchSourceServiceFactory, setRowsInMapExtent, setSelectedOnly, sliceOlGeometry, sliceOlPolygon, sortLayersByZindex, sourceCanReverseSearch, sourceCanReverseSearchAsSummary, sourceCanSearch, squareMetersToAcres, squareMetersToHectares, squareMetersToSquareFeet, squareMetersToSquareKilometers, squareMetersToSquareMiles, squareMetersToUnit, standardizeUrl, storedqueriesReverseSearchSourceFactory, storedqueriesSearchSourceFactory, stringToLonLat, translateManeuverBearing, translateManeuverModifier, tryAddLoadingStrategy, tryAddSelectionStrategy, tryBindStoreLayer, updateOlGeometryCenter, updateOlGeometryMidpoints, updateOlTooltipAtCenter, updateOlTooltipDrawAtCenter, updateOlTooltipsAtMidpoints, updateOlTooltipsDrawAtMidpoints, updateStoreSorting, utmZoneFromLonLat, viewStatesAreEqual, withCadastreSource, withCoordinatesReverseSource, withIChercheReverseSource, withIChercheSource, withILayerSource, withNominatimSource, withOsrmSource, withStoredQueriesReverseSource, withStoredQueriesSource, withWorkspaceSource, workspaceSearchSourceFactory, zoneMtm, zoneUtm };
|
|
42637
42899
|
//# sourceMappingURL=igo2-geo.mjs.map
|