@ogc-maps/storybook-components 0.5.3 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/components/LayerEditor/LayerEditor.d.ts +2 -1
  2. package/dist/components/LayerEditor/LayerEditor.d.ts.map +1 -1
  3. package/dist/components/LayerEditor/LayerList.d.ts +2 -1
  4. package/dist/components/LayerEditor/LayerList.d.ts.map +1 -1
  5. package/dist/components/SpriteEditor/SpriteSourceEditor.d.ts +7 -0
  6. package/dist/components/SpriteEditor/SpriteSourceEditor.d.ts.map +1 -0
  7. package/dist/components/SpriteEditor/SpriteSourceList.d.ts +7 -0
  8. package/dist/components/SpriteEditor/SpriteSourceList.d.ts.map +1 -0
  9. package/dist/components/SpriteEditor/index.d.ts +5 -0
  10. package/dist/components/SpriteEditor/index.d.ts.map +1 -0
  11. package/dist/components/StyleEditor/IconImagePicker.d.ts +8 -0
  12. package/dist/components/StyleEditor/IconImagePicker.d.ts.map +1 -0
  13. package/dist/components/StyleEditor/PropertyField.d.ts +2 -1
  14. package/dist/components/StyleEditor/PropertyField.d.ts.map +1 -1
  15. package/dist/components/StyleEditor/PropertyGroup.d.ts +2 -1
  16. package/dist/components/StyleEditor/PropertyGroup.d.ts.map +1 -1
  17. package/dist/components/StyleEditor/StyleEditor.d.ts +2 -1
  18. package/dist/components/StyleEditor/StyleEditor.d.ts.map +1 -1
  19. package/dist/components/StyleEditor/propertyMetadata.d.ts +1 -1
  20. package/dist/components/StyleEditor/propertyMetadata.d.ts.map +1 -1
  21. package/dist/components/admin/FormField.d.ts +2 -1
  22. package/dist/components/admin/FormField.d.ts.map +1 -1
  23. package/dist/components/admin/InfoTip.d.ts +6 -0
  24. package/dist/components/admin/InfoTip.d.ts.map +1 -0
  25. package/dist/components/admin/index.d.ts +2 -0
  26. package/dist/components/admin/index.d.ts.map +1 -1
  27. package/dist/components/index.d.ts +2 -0
  28. package/dist/components/index.d.ts.map +1 -1
  29. package/dist/cql2-onoyCbps.js +413 -0
  30. package/dist/hooks/index.d.ts +1 -0
  31. package/dist/hooks/index.d.ts.map +1 -1
  32. package/dist/hooks/index.js +18 -17
  33. package/dist/{index-DoToolWp.js → index-B2DIcC-4.js} +33 -28
  34. package/dist/main.js +1156 -832
  35. package/dist/schemas/config.d.ts +40 -0
  36. package/dist/schemas/config.d.ts.map +1 -1
  37. package/dist/schemas/index.js +3 -3
  38. package/dist/style.css +1 -1
  39. package/dist/types/index.d.ts +3 -2
  40. package/dist/types/index.d.ts.map +1 -1
  41. package/dist/types/index.js +16 -15
  42. package/dist/utils/index.d.ts +1 -0
  43. package/dist/utils/index.d.ts.map +1 -1
  44. package/dist/utils/spriteUtils.d.ts +32 -0
  45. package/dist/utils/spriteUtils.d.ts.map +1 -0
  46. package/package.json +1 -1
  47. package/dist/cql2-Dhe6Ny6v.js +0 -352
@@ -3,6 +3,7 @@ export interface LayerEditorProps {
3
3
  value: LayerConfig;
4
4
  onChange: (layer: LayerConfig) => void;
5
5
  availableSources: OgcApiSource[];
6
+ availableIcons?: string[];
6
7
  }
7
- export declare function LayerEditor({ value, onChange, availableSources }: LayerEditorProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function LayerEditor({ value, onChange, availableSources, availableIcons }: LayerEditorProps): import("react/jsx-runtime").JSX.Element;
8
9
  //# sourceMappingURL=LayerEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LayerEditor.d.ts","sourceRoot":"","sources":["../../../src/components/LayerEditor/LayerEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAgBhF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,YAAY,EAAE,CAAC;CAClC;AAKD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,2CA4NlF"}
1
+ {"version":3,"file":"LayerEditor.d.ts","sourceRoot":"","sources":["../../../src/components/LayerEditor/LayerEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAgBhF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAKD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,gBAAgB,2CA6NlG"}
@@ -3,6 +3,7 @@ export interface LayerListProps {
3
3
  layers: LayerConfig[];
4
4
  onChange: (layers: LayerConfig[]) => void;
5
5
  availableSources: OgcApiSource[];
6
+ availableIcons?: string[];
6
7
  }
7
- export declare function LayerList({ layers, onChange, availableSources }: LayerListProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function LayerList({ layers, onChange, availableSources, availableIcons }: LayerListProps): import("react/jsx-runtime").JSX.Element;
8
9
  //# sourceMappingURL=LayerList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LayerList.d.ts","sourceRoot":"","sources":["../../../src/components/LayerEditor/LayerList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI7D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1C,gBAAgB,EAAE,YAAY,EAAE,CAAC;CAClC;AAWD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,cAAc,2CA2P/E"}
1
+ {"version":3,"file":"LayerList.d.ts","sourceRoot":"","sources":["../../../src/components/LayerEditor/LayerList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI7D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1C,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAWD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,cAAc,2CA6P/F"}
@@ -0,0 +1,7 @@
1
+ import { SpriteSource } from '../../types';
2
+ export interface SpriteSourceEditorProps {
3
+ value: SpriteSource;
4
+ onChange: (sprite: SpriteSource) => void;
5
+ }
6
+ export declare function SpriteSourceEditor({ value, onChange }: SpriteSourceEditorProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=SpriteSourceEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpriteSourceEditor.d.ts","sourceRoot":"","sources":["../../../src/components/SpriteEditor/SpriteSourceEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C;AAKD,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,uBAAuB,2CA6B9E"}
@@ -0,0 +1,7 @@
1
+ import { SpriteSource } from '../../types';
2
+ export interface SpriteSourceListProps {
3
+ sprites: SpriteSource[];
4
+ onChange: (sprites: SpriteSource[]) => void;
5
+ }
6
+ export declare function SpriteSourceList({ sprites, onChange }: SpriteSourceListProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=SpriteSourceList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpriteSourceList.d.ts","sourceRoot":"","sources":["../../../src/components/SpriteEditor/SpriteSourceList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;CAC7C;AAQD,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,qBAAqB,2CA+H5E"}
@@ -0,0 +1,5 @@
1
+ export { SpriteSourceList } from './SpriteSourceList';
2
+ export type { SpriteSourceListProps } from './SpriteSourceList';
3
+ export { SpriteSourceEditor } from './SpriteSourceEditor';
4
+ export type { SpriteSourceEditorProps } from './SpriteSourceEditor';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SpriteEditor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface IconImagePickerProps {
2
+ value: string;
3
+ onChange: (value: string) => void;
4
+ availableIcons?: string[];
5
+ }
6
+ export declare function IconImagePicker({ value, onChange, availableIcons }: IconImagePickerProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=IconImagePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconImagePicker.d.ts","sourceRoot":"","sources":["../../../src/components/StyleEditor/IconImagePicker.tsx"],"names":[],"mappings":"AAEA,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,oBAAoB,2CAuHxF"}
@@ -3,7 +3,8 @@ interface PropertyFieldProps {
3
3
  def: PropertyDefinition;
4
4
  value: unknown;
5
5
  onChange: (key: string, value: unknown) => void;
6
+ availableIcons?: string[];
6
7
  }
7
- export declare function PropertyField({ def, value, onChange }: PropertyFieldProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function PropertyField({ def, value, onChange, availableIcons }: PropertyFieldProps): import("react/jsx-runtime").JSX.Element;
8
9
  export {};
9
10
  //# sourceMappingURL=PropertyField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyField.d.ts","sourceRoot":"","sources":["../../../src/components/StyleEditor/PropertyField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAO7D,UAAU,kBAAkB;IAC1B,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACjD;AAiLD,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAiCzE"}
1
+ {"version":3,"file":"PropertyField.d.ts","sourceRoot":"","sources":["../../../src/components/StyleEditor/PropertyField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAQ7D,UAAU,kBAAkB;IAC1B,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AA4LD,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,kBAAkB,2CAkDzF"}
@@ -5,7 +5,8 @@ interface PropertyGroupProps {
5
5
  values: Record<string, unknown>;
6
6
  onChange: (key: string, value: unknown) => void;
7
7
  defaultOpen?: boolean;
8
+ availableIcons?: string[];
8
9
  }
9
- export declare function PropertyGroup({ title, properties, values, onChange, defaultOpen, }: PropertyGroupProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function PropertyGroup({ title, properties, values, onChange, defaultOpen, availableIcons, }: PropertyGroupProps): import("react/jsx-runtime").JSX.Element;
10
11
  export {};
11
12
  //# sourceMappingURL=PropertyGroup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyGroup.d.ts","sourceRoot":"","sources":["../../../src/components/StyleEditor/PropertyGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,UAAU,EACV,MAAM,EACN,QAAQ,EACR,WAAmB,GACpB,EAAE,kBAAkB,2CAcpB"}
1
+ {"version":3,"file":"PropertyGroup.d.ts","sourceRoot":"","sources":["../../../src/components/StyleEditor/PropertyGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,UAAU,EACV,MAAM,EACN,QAAQ,EACR,WAAmB,EACnB,cAAc,GACf,EAAE,kBAAkB,2CAcpB"}
@@ -3,10 +3,11 @@ export interface StyleEditorProps {
3
3
  value: StyleConfig;
4
4
  onChange: (style: StyleConfig) => void;
5
5
  suggestedType?: 'fill' | 'line' | 'circle' | 'symbol' | null;
6
+ availableIcons?: string[];
6
7
  }
7
8
  export declare const defaultFill: FillStyle;
8
9
  export declare const defaultLine: LineStyle;
9
10
  export declare const defaultCircle: CircleStyle;
10
11
  export declare const defaultSymbol: SymbolStyle;
11
- export declare function StyleEditor({ value, onChange, suggestedType }: StyleEditorProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function StyleEditor({ value, onChange, suggestedType, availableIcons }: StyleEditorProps): import("react/jsx-runtime").JSX.Element;
12
13
  //# sourceMappingURL=StyleEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StyleEditor.d.ts","sourceRoot":"","sources":["../../../src/components/StyleEditor/StyleEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;CAC9D;AAED,eAAO,MAAM,WAAW,EAAE,SAGzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,SAGzB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAG3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAI3B,CAAC;AAYF,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,gBAAgB,2CAgH/E"}
1
+ {"version":3,"file":"StyleEditor.d.ts","sourceRoot":"","sources":["../../../src/components/StyleEditor/StyleEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/F,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC7D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,WAAW,EAAE,SAGzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,SAGzB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAG3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAI3B,CAAC;AAgCF,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE,gBAAgB,2CAmM/F"}
@@ -1,4 +1,4 @@
1
- export type EditorWidget = 'color' | 'opacity' | 'number' | 'boolean' | 'enum' | 'translate' | 'padding' | 'dasharray' | 'stringArray' | 'text';
1
+ export type EditorWidget = 'color' | 'opacity' | 'number' | 'boolean' | 'enum' | 'translate' | 'padding' | 'dasharray' | 'stringArray' | 'text' | 'icon-image';
2
2
  export interface PropertyDefinition {
3
3
  key: string;
4
4
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"propertyMetadata.d.ts","sourceRoot":"","sources":["../../../src/components/StyleEditor/propertyMetadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,GACN,WAAW,GACX,SAAS,GACT,WAAW,GACX,aAAa,GACb,MAAM,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,sGAAsG;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
1
+ {"version":3,"file":"propertyMetadata.d.ts","sourceRoot":"","sources":["../../../src/components/StyleEditor/propertyMetadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,GACN,WAAW,GACX,SAAS,GACT,WAAW,GACX,aAAa,GACb,MAAM,GACN,YAAY,CAAC;AAEjB,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,sGAAsG;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
@@ -3,8 +3,9 @@ export interface FormFieldProps {
3
3
  label: string;
4
4
  error?: string;
5
5
  required?: boolean;
6
+ description?: string;
6
7
  htmlFor?: string;
7
8
  children: ReactNode;
8
9
  }
9
- export declare function FormField({ label, error, required, htmlFor, children }: FormFieldProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function FormField({ label, error, required, description, htmlFor, children }: FormFieldProps): import("react/jsx-runtime").JSX.Element;
10
11
  //# sourceMappingURL=FormField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/admin/FormField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAmBtF"}
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/admin/FormField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAsBnG"}
@@ -0,0 +1,6 @@
1
+ export interface InfoTipProps {
2
+ text: string;
3
+ id?: string;
4
+ }
5
+ export declare function InfoTip({ text, id }: InfoTipProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=InfoTip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoTip.d.ts","sourceRoot":"","sources":["../../../src/components/admin/InfoTip.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,2CAwBjD"}
@@ -1,5 +1,7 @@
1
1
  export { FormField } from './FormField';
2
2
  export type { FormFieldProps } from './FormField';
3
+ export { InfoTip } from './InfoTip';
4
+ export type { InfoTipProps } from './InfoTip';
3
5
  export { ColorPicker } from './ColorPicker';
4
6
  export type { ColorPickerProps } from './ColorPicker';
5
7
  export { ConfirmDialog } from './ConfirmDialog';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -34,6 +34,8 @@ export { LayerEditor, LayerList } from './LayerEditor';
34
34
  export type { LayerEditorProps, LayerListProps } from './LayerEditor';
35
35
  export { BasemapEditor, BasemapList } from './BasemapEditor';
36
36
  export type { BasemapEditorProps, BasemapListProps } from './BasemapEditor';
37
+ export { SpriteSourceList, SpriteSourceEditor } from './SpriteEditor';
38
+ export type { SpriteSourceListProps, SpriteSourceEditorProps } from './SpriteEditor';
37
39
  export { UIConfigEditor } from './UIConfigEditor';
38
40
  export type { UIConfigEditorProps } from './UIConfigEditor';
39
41
  export { ViewEditor } from './ViewEditor';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,413 @@
1
+ import { useState as f, useEffect as j, useCallback as x } from "react";
2
+ function d(e) {
3
+ return e.endsWith("/") ? e.slice(0, -1) : e;
4
+ }
5
+ async function y(e) {
6
+ const t = await fetch(e);
7
+ if (!t.ok)
8
+ throw new Error(`OGC API request failed: ${t.status} ${t.statusText} (${e})`);
9
+ return t.json();
10
+ }
11
+ async function M(e) {
12
+ const t = `${d(e)}/collections?f=json`;
13
+ return (await y(t)).collections;
14
+ }
15
+ async function $(e, t, n = {}) {
16
+ var a;
17
+ const s = d(e), r = new URLSearchParams({ f: "geojson" });
18
+ if (n.limit != null && r.set("limit", String(n.limit)), n.offset != null && r.set("offset", String(n.offset)), n.bbox && r.set("bbox", n.bbox.join(",")), (a = n.properties) != null && a.length && r.set("properties", n.properties.join(",")), n.datetime && r.set("datetime", n.datetime), n.cql2Filter)
19
+ r.set("filter-lang", "cql2-json"), r.set("filter", JSON.stringify(n.cql2Filter));
20
+ else if (n.filter)
21
+ for (const [o, c] of Object.entries(n.filter))
22
+ r.set(o, String(c));
23
+ const i = `${s}/collections/${encodeURIComponent(t)}/items?${r}`;
24
+ return y(i);
25
+ }
26
+ async function R(e, t) {
27
+ const s = `${d(e)}/collections/${encodeURIComponent(t)}/queryables?f=schemajson`;
28
+ return y(s);
29
+ }
30
+ async function U(e, t) {
31
+ const s = `${d(e)}/collections/${encodeURIComponent(t)}?f=json`;
32
+ return y(s);
33
+ }
34
+ async function G(e) {
35
+ const t = `${d(e)}/conformance?f=json`;
36
+ return y(t);
37
+ }
38
+ async function K(e, t, n = "WebMercatorQuad") {
39
+ const s = q(e, t, n);
40
+ return y(s);
41
+ }
42
+ async function _(e, t, n = {}) {
43
+ return (await $(e, t, {
44
+ ...n,
45
+ limit: 0
46
+ })).numberMatched ?? null;
47
+ }
48
+ function q(e, t, n = "WebMercatorQuad") {
49
+ return `${d(e)}/collections/${encodeURIComponent(t)}/tiles/${encodeURIComponent(n)}/tilejson.json`;
50
+ }
51
+ function H(e, t, n = "WebMercatorQuad") {
52
+ return `${d(e)}/collections/${encodeURIComponent(t)}/tiles/${encodeURIComponent(n)}/{z}/{x}/{y}`;
53
+ }
54
+ function X(e, t, n, s = "WebMercatorQuad") {
55
+ const i = `${d(e)}/collections/${encodeURIComponent(t)}/tiles/${encodeURIComponent(s)}/{z}/{x}/{y}`;
56
+ if (!n || Object.keys(n).length === 0) return i;
57
+ const a = new URLSearchParams();
58
+ for (const [o, c] of Object.entries(n))
59
+ a.set(o, String(c));
60
+ return `${i}?${a}`;
61
+ }
62
+ async function Y(e, t, n, s) {
63
+ var o;
64
+ const r = s != null && s.query ? { op: "like", args: [{ property: n }, `%${s.query}%`] } : void 0, i = await $(e, t, {
65
+ properties: [n],
66
+ limit: (s == null ? void 0 : s.limit) ?? 50,
67
+ cql2Filter: r
68
+ }), a = /* @__PURE__ */ new Set();
69
+ for (const c of i.features) {
70
+ const l = (o = c.properties) == null ? void 0 : o[n];
71
+ l != null && typeof l == "string" && a.add(l);
72
+ }
73
+ return Array.from(a).sort();
74
+ }
75
+ function Z(e, t, n, s = "WebMercatorQuad") {
76
+ const i = `${d(e)}/collections/${encodeURIComponent(t)}/tiles/${encodeURIComponent(s)}/{z}/{x}/{y}`;
77
+ if (!n) return i;
78
+ const a = new URLSearchParams({
79
+ "filter-lang": "cql2-json",
80
+ filter: JSON.stringify(n)
81
+ });
82
+ return `${i}?${a}`;
83
+ }
84
+ function ee(e) {
85
+ const [t, n] = f([]), [s, r] = f(!1), [i, a] = f(null);
86
+ return j(() => {
87
+ if (!e) return;
88
+ let o = !1;
89
+ return r(!0), a(null), M(e).then((c) => {
90
+ o || n(c);
91
+ }).catch((c) => {
92
+ o || a(c instanceof Error ? c : new Error(String(c)));
93
+ }).finally(() => {
94
+ o || r(!1);
95
+ }), () => {
96
+ o = !0;
97
+ };
98
+ }, [e]), { collections: t, loading: s, error: i };
99
+ }
100
+ function te(e, t) {
101
+ const [n, s] = f(null), [r, i] = f(!1), [a, o] = f(null);
102
+ return j(() => {
103
+ if (!e || !t) return;
104
+ let c = !1;
105
+ return i(!0), o(null), R(e, t).then((l) => {
106
+ c || s(l);
107
+ }).catch((l) => {
108
+ c || o(l instanceof Error ? l : new Error(String(l)));
109
+ }).finally(() => {
110
+ c || i(!1);
111
+ }), () => {
112
+ c = !0;
113
+ };
114
+ }, [e, t]), { queryables: n, loading: r, error: a };
115
+ }
116
+ function ne(e, t, n = {}) {
117
+ const [s, r] = f([]), [i, a] = f(!1), [o, c] = f(null), [l, g] = f(!1), m = JSON.stringify(n);
118
+ return j(() => {
119
+ if (!e || !t) return;
120
+ let p = !1;
121
+ a(!0), c(null);
122
+ const h = JSON.parse(m);
123
+ return $(e, t, h).then((u) => {
124
+ if (!p) {
125
+ r(u.features);
126
+ const C = h.limit ?? 10, S = h.offset ?? 0;
127
+ u.numberMatched != null ? g(S + u.features.length < u.numberMatched) : g(u.features.length >= C);
128
+ }
129
+ }).catch((u) => {
130
+ p || (c(u instanceof Error ? u : new Error(String(u))), r([]), g(!1));
131
+ }).finally(() => {
132
+ p || a(!1);
133
+ }), () => {
134
+ p = !0;
135
+ };
136
+ }, [e, t, m]), { features: s, loading: i, error: o, hasMore: l };
137
+ }
138
+ function O(e, t) {
139
+ return e.includes('"') || e.includes(t) || e.includes(`
140
+ `) ? `"${e.replace(/"/g, '""')}"` : e;
141
+ }
142
+ function L(e, t) {
143
+ const n = (e.properties ?? {})[t];
144
+ return n == null ? "" : typeof n == "object" ? JSON.stringify(n) : String(n);
145
+ }
146
+ function F(e, t = {}) {
147
+ const { fields: n, includeGeometry: s = !1, delimiter: r = "," } = t;
148
+ if (e.length === 0) return "";
149
+ const i = n ?? [...new Set(e.flatMap((c) => Object.keys(c.properties ?? {})))], a = s ? [...i, "geometry"] : i, o = e.map((c) => {
150
+ const l = i.map(
151
+ (g) => O(L(c, g), r)
152
+ );
153
+ return s && l.push(O(JSON.stringify(c.geometry), r)), l.join(r);
154
+ });
155
+ return [a.map((c) => O(c, r)).join(r), ...o].join(`
156
+ `);
157
+ }
158
+ function v(e, t) {
159
+ const n = new Blob([e], { type: "text/csv;charset=utf-8;" }), s = URL.createObjectURL(n), r = document.createElement("a");
160
+ r.href = s, r.download = t, r.style.display = "none", document.body.appendChild(r), r.click(), document.body.removeChild(r), URL.revokeObjectURL(s);
161
+ }
162
+ function re({
163
+ baseUrl: e,
164
+ limit: t = 1e3,
165
+ csvOptions: n
166
+ }) {
167
+ const [s, r] = f(!1), [i, a] = f(null);
168
+ return { exportCsv: x(
169
+ async (c, l = `${c}.csv`, g) => {
170
+ r(!0), a(null);
171
+ const m = [], p = Math.min(t, 1e3);
172
+ let h = 0;
173
+ try {
174
+ for (; m.length < t; ) {
175
+ const C = t - m.length, S = Math.min(p, C), b = await $(e, c, {
176
+ limit: S,
177
+ offset: h,
178
+ cql2Filter: g
179
+ });
180
+ if (m.push(...b.features), h += b.features.length, b.features.length < S || b.numberMatched != null && h >= b.numberMatched) break;
181
+ }
182
+ const u = F(m, n);
183
+ v(u, l);
184
+ } catch (u) {
185
+ a(u instanceof Error ? u : new Error(String(u)));
186
+ } finally {
187
+ r(!1);
188
+ }
189
+ },
190
+ [e, t, n]
191
+ ), loading: s, error: i };
192
+ }
193
+ function se(e, t) {
194
+ const [n, s] = f(null), [r, i] = f(!1), [a, o] = f(null);
195
+ return j(() => {
196
+ if (!e || !t) return;
197
+ let c = !1;
198
+ return i(!0), o(null), U(e, t).then((l) => {
199
+ c || s(l);
200
+ }).catch((l) => {
201
+ c || o(l instanceof Error ? l : new Error(String(l)));
202
+ }).finally(() => {
203
+ c || i(!1);
204
+ }), () => {
205
+ c = !0;
206
+ };
207
+ }, [e, t]), { collection: n, loading: r, error: a };
208
+ }
209
+ function ie(e) {
210
+ if (!e) return;
211
+ const t = [], n = {};
212
+ for (const [s, r] of Object.entries(e))
213
+ r.visible !== !1 && (t.push(s), r.label && (n[s] = r.label));
214
+ return { fields: t, labels: n };
215
+ }
216
+ async function oe(e) {
217
+ try {
218
+ const t = await fetch(e);
219
+ if (!t.ok) return null;
220
+ const n = await t.json();
221
+ return n.sprite ? typeof n.sprite == "string" ? n.sprite : Array.isArray(n.sprite) && n.sprite.length > 0 ? n.sprite[0].url : null : null;
222
+ } catch {
223
+ return null;
224
+ }
225
+ }
226
+ async function N(e) {
227
+ try {
228
+ const t = await fetch(`${e}.json`);
229
+ if (!t.ok) return [];
230
+ const n = await t.json();
231
+ return Object.keys(n).sort();
232
+ } catch {
233
+ return [];
234
+ }
235
+ }
236
+ async function ce(e, t) {
237
+ const n = await fetch(e);
238
+ if (!n.ok) throw new Error(`Failed to fetch style: ${n.status}`);
239
+ const s = await n.json();
240
+ if (!t.length) return s;
241
+ const r = Array.isArray(s.sprite) ? s.sprite : s.sprite ? [{ id: "default", url: s.sprite }] : [], i = new Set(t.map((o) => o.id)), a = [
242
+ ...r.filter((o) => !i.has(o.id)),
243
+ ...t.map((o) => ({ id: o.id, url: o.url }))
244
+ ];
245
+ return { ...s, sprite: a };
246
+ }
247
+ async function A(e) {
248
+ try {
249
+ const t = await fetch(e);
250
+ if (!t.ok) return [];
251
+ const n = await t.json();
252
+ return n.sprite ? typeof n.sprite == "string" ? [{ id: "default", url: n.sprite }] : Array.isArray(n.sprite) ? n.sprite : [] : [];
253
+ } catch {
254
+ return [];
255
+ }
256
+ }
257
+ async function E(e) {
258
+ const t = await N(e.url);
259
+ return e.id === "default" ? t : t.map((n) => `${e.id}:${n}`);
260
+ }
261
+ async function ae(e, t = []) {
262
+ const n = [];
263
+ e && n.push(
264
+ A(e).then(
265
+ (r) => Promise.all(r.map(E)).then((i) => i.flat())
266
+ )
267
+ );
268
+ for (const r of t)
269
+ n.push(E(r));
270
+ const s = await Promise.all(n);
271
+ return [...new Set(s.flat())].sort();
272
+ }
273
+ function w(e, t) {
274
+ return { op: "=", args: [{ property: e }, t] };
275
+ }
276
+ function le(e, t) {
277
+ return { op: "<>", args: [{ property: e }, t] };
278
+ }
279
+ function J(e, t) {
280
+ return { op: ">", args: [{ property: e }, t] };
281
+ }
282
+ function I(e, t) {
283
+ return { op: ">=", args: [{ property: e }, t] };
284
+ }
285
+ function P(e, t) {
286
+ return { op: "<", args: [{ property: e }, t] };
287
+ }
288
+ function Q(e, t) {
289
+ return { op: "<=", args: [{ property: e }, t] };
290
+ }
291
+ function T(e, t, n) {
292
+ return { op: "between", args: [{ property: e }, t, n] };
293
+ }
294
+ function ue(e, t) {
295
+ return { op: "like", args: [{ property: e }, t] };
296
+ }
297
+ function fe(e, t) {
298
+ return { op: "in", args: [{ property: e }, t] };
299
+ }
300
+ function de(e) {
301
+ return { op: "isNull", args: [{ property: e }] };
302
+ }
303
+ function k(...e) {
304
+ const t = e.filter((n) => n != null);
305
+ return t.length === 0 ? null : t.length === 1 ? t[0] : { op: "and", args: t };
306
+ }
307
+ function ge(...e) {
308
+ const t = e.filter((n) => n != null);
309
+ return t.length === 0 ? null : t.length === 1 ? t[0] : { op: "or", args: t };
310
+ }
311
+ function me(e) {
312
+ return { op: "not", args: [e] };
313
+ }
314
+ function z(e, t) {
315
+ return { op: "t_after", args: [{ property: e }, t] };
316
+ }
317
+ function W(e, t) {
318
+ return { op: "t_before", args: [{ property: e }, t] };
319
+ }
320
+ function D(e, t, n) {
321
+ const s = "date" in t ? t.date : t.timestamp, r = "date" in n ? n.date : n.timestamp;
322
+ return { op: "t_during", args: [{ property: e }, { interval: [s, r] }] };
323
+ }
324
+ function he(e) {
325
+ const t = Object.entries(e).filter(([, n]) => n !== void 0 && n !== "").map(([n, s]) => w(n, s));
326
+ return k(...t);
327
+ }
328
+ function pe(e, t) {
329
+ const n = new Map(t.map((r) => [r.property, r])), s = Object.entries(e).map(([r, i]) => {
330
+ if (i === void 0) return null;
331
+ const a = n.get(r);
332
+ if (typeof i == "string")
333
+ return i === "" ? null : (a == null ? void 0 : a.type) === "datetime" ? w(r, { timestamp: i }) : w(r, i);
334
+ if (typeof i == "number")
335
+ return w(r, i);
336
+ if (typeof i == "object") {
337
+ if ("start" in i || "end" in i) {
338
+ const { start: o, end: c } = i;
339
+ return o && c ? D(r, { timestamp: o }, { timestamp: c }) : o ? z(r, { timestamp: o }) : c ? W(r, { timestamp: c }) : null;
340
+ }
341
+ if ("value" in i && "operator" in i) {
342
+ const { value: o, operator: c } = i;
343
+ if (o == null || String(o) === "") return null;
344
+ switch (c) {
345
+ case "gt":
346
+ return J(r, o);
347
+ case "lt":
348
+ return P(r, o);
349
+ case "gte":
350
+ return I(r, o);
351
+ case "lte":
352
+ return Q(r, o);
353
+ default:
354
+ return w(r, o);
355
+ }
356
+ }
357
+ if ("min" in i && "max" in i) {
358
+ const { min: o, max: c } = i;
359
+ return o === void 0 || c === void 0 ? null : T(r, o, c);
360
+ }
361
+ }
362
+ return null;
363
+ });
364
+ return k(...s);
365
+ }
366
+ function ye(e) {
367
+ return JSON.stringify(e);
368
+ }
369
+ export {
370
+ ge as A,
371
+ ie as B,
372
+ ce as C,
373
+ ye as D,
374
+ z as E,
375
+ W as F,
376
+ D as G,
377
+ re as H,
378
+ se as I,
379
+ ee as J,
380
+ ne as K,
381
+ te as L,
382
+ v as M,
383
+ F as N,
384
+ N as O,
385
+ oe as P,
386
+ ae as Q,
387
+ k as a,
388
+ T as b,
389
+ M as c,
390
+ G as d,
391
+ w as e,
392
+ U as f,
393
+ Y as g,
394
+ _ as h,
395
+ $ as i,
396
+ R as j,
397
+ K as k,
398
+ he as l,
399
+ pe as m,
400
+ Z as n,
401
+ X as o,
402
+ q as p,
403
+ H as q,
404
+ J as r,
405
+ I as s,
406
+ fe as t,
407
+ de as u,
408
+ ue as v,
409
+ P as w,
410
+ Q as x,
411
+ le as y,
412
+ me as z
413
+ };
@@ -6,6 +6,7 @@ export { useOgcQueryables, type UseOgcQueryablesResult } from './useOgcQueryable
6
6
  export { useOgcCollectionDetail, type UseOgcCollectionDetailResult } from './useOgcCollectionDetail';
7
7
  export type { OgcApiSource, LayerConfig, MapConfig, UIConfig, ViewConfig, StyleConfig, FilterConfig, LegendConfig, SearchConfig, SearchField, TextSearchField, NumberSearchField, DatetimeSearchField, SelectSearchField, PropertyDisplay, PropertyDisplayConfig, } from '../types';
8
8
  export { resolvePropertyDisplay } from '../utils/propertyDisplay';
9
+ export { resolveStyleWithSprites } from '../utils/spriteUtils';
9
10
  export type SearchFieldType = SearchField['type'];
10
11
  export { fetchCollections, fetchFeatures, fetchQueryables, fetchCollectionDetail, fetchConformance, fetchTileJson, fetchFeatureCount, fetchDistinctValues, getFilteredVectorTileUrl, getCql2FilteredVectorTileUrl, getTileJsonUrl, getVectorTileUrl, type OgcCollection, type OgcCollectionsResponse, type GeoJsonFeature, type OgcFeatureCollection, type OgcQueryables, type OgcConformance, type TileJson, type QueryableProperty, type FetchFeaturesOptions, } from '../utils/ogcApi';
11
12
  export { eq, neq, gt, gte, lt, lte, between, like, inList, isNull, and, or, not, tAfter, tBefore, tDuring, fromSimpleFilters, fromStructuredFilters, serializeCql2, type CQL2Expression, type CQL2PropertyRef, type CQL2Date, type CQL2Timestamp, type CQL2Interval, } from '../utils/cql2';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,KAAK,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAErG,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,cAAc,EACd,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACN,GAAG,EACH,EAAE,EACF,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,KAAK,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAErG,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,cAAc,EACd,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,OAAO,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACN,GAAG,EACH,EAAE,EACF,GAAG,EACH,MAAM,EACN,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC"}