@lblod/ember-rdfa-editor-lblod-plugins 32.8.0 → 33.0.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 (20) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/addon/components/roadsign-regulation-plugin/roadsigns-modal.gts +4 -1
  3. package/addon/components/variable-plugin/location/edit.ts +8 -2
  4. package/addon/plugins/roadsign-regulation-plugin/actions/insert-measure.ts +9 -2
  5. package/addon/plugins/roadsign-regulation-plugin/constants.ts +46 -0
  6. package/addon/plugins/roadsign-regulation-plugin/nodes.ts +54 -11
  7. package/addon/plugins/roadsign-regulation-plugin/queries/mobility-measure-concept.ts +18 -3
  8. package/addon/plugins/roadsign-regulation-plugin/queries/traffic-signal-concept.ts +0 -5
  9. package/addon/plugins/roadsign-regulation-plugin/schemas/traffic-signal-concept.ts +1 -2
  10. package/addon/utils/types.ts +2 -0
  11. package/declarations/addon/components/roadsign-regulation-plugin/roadsigns-modal.d.ts +7 -6
  12. package/declarations/addon/plugins/roadsign-regulation-plugin/constants.d.ts +12 -0
  13. package/declarations/addon/plugins/roadsign-regulation-plugin/nodes.d.ts +1 -0
  14. package/declarations/addon/plugins/roadsign-regulation-plugin/queries/mobility-measure-concept.d.ts +3 -3
  15. package/declarations/addon/plugins/roadsign-regulation-plugin/queries/traffic-signal-concept.d.ts +0 -2
  16. package/declarations/addon/plugins/roadsign-regulation-plugin/schemas/mobility-measure-concept.d.ts +5 -14
  17. package/declarations/addon/plugins/roadsign-regulation-plugin/schemas/traffic-signal-concept.d.ts +0 -7
  18. package/declarations/addon/utils/types.d.ts +1 -0
  19. package/package.json +3 -3
  20. package/pnpm-lock.yaml +411 -309
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @lblod/ember-rdfa-editor-lblod-plugins
2
2
 
3
+ ## 33.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#604](https://github.com/lblod/ember-rdfa-editor-lblod-plugins/pull/604) [`6299352`](https://github.com/lblod/ember-rdfa-editor-lblod-plugins/commit/629935200df1c15d3094483465dcffc734daf55c) Thanks [@elpoelma](https://github.com/elpoelma)! - Increase `@lblod/ember-rdfa-editor` peerdep requirement to version [12.5.0](https://github.com/lblod/ember-rdfa-editor/releases/tag/%40lblod%2Fember-rdfa-editor%4012.15.0)
8
+ This versions contains `block_rdfa` support for model migrations.
9
+
10
+ ### Minor Changes
11
+
12
+ - [#607](https://github.com/lblod/ember-rdfa-editor-lblod-plugins/pull/607) [`9032503`](https://github.com/lblod/ember-rdfa-editor-lblod-plugins/commit/903250362f411c8c1f49912deb60f80f09c0ef89) Thanks [@piemonkey](https://github.com/piemonkey)! - Update RDFa output of roadsign-regulation-plugin to more closely match the data model
13
+
14
+ ### Patch Changes
15
+
16
+ - [#604](https://github.com/lblod/ember-rdfa-editor-lblod-plugins/pull/604) [`cf02699`](https://github.com/lblod/ember-rdfa-editor-lblod-plugins/commit/cf02699ef6e7811195546eaf9d4c98a873d08ab3) Thanks [@elpoelma](https://github.com/elpoelma)! - Update zonality concept URIs based on new URI bases
17
+
3
18
  ## 32.8.0
4
19
 
5
20
  ### Minor Changes
@@ -43,7 +43,10 @@ type Option = {
43
43
  label: string;
44
44
  };
45
45
 
46
- type Zonality = Option;
46
+ type Zonality = {
47
+ uri: (typeof ZONALITY_OPTIONS)[keyof typeof ZONALITY_OPTIONS];
48
+ label: string;
49
+ };
47
50
  type TypeOption = Option;
48
51
  type Code = Option;
49
52
  type Category = Option;
@@ -12,7 +12,10 @@ import { unwrap } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/option';
12
12
  import { trackedFunction } from 'reactiveweb/function';
13
13
  import { updateCodelistVariable } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/variable-plugin/utils/codelist-utils';
14
14
  import { tracked } from '@glimmer/tracking';
15
- import { ZONALITY_OPTIONS } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/roadsign-regulation-plugin/constants';
15
+ import {
16
+ ZONALITY_OPTIONS,
17
+ ZONALITY_OPTIONS_LEGACY,
18
+ } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/roadsign-regulation-plugin/constants';
16
19
  import {
17
20
  getOutgoingTriple,
18
21
  hasOutgoingNamedNodeTriple,
@@ -109,7 +112,10 @@ export default class LocationEditComponent extends Component<Args> {
109
112
  if (!zonalityTriple) {
110
113
  return false;
111
114
  }
112
- return zonalityTriple.object.value === ZONALITY_OPTIONS.ZONAL;
115
+ return (
116
+ zonalityTriple.object.value === ZONALITY_OPTIONS.ZONAL ||
117
+ zonalityTriple.object.value === ZONALITY_OPTIONS_LEGACY.ZONAL
118
+ );
113
119
  }
114
120
 
115
121
  locationOptions = trackedFunction(this, async () => {
@@ -108,14 +108,19 @@ export default function insertMeasure({
108
108
  object: sayDataFactory.namedNode(measureConcept.uri),
109
109
  },
110
110
  {
111
- //TODO: not sure about this predicate...
111
+ // TODO this should be replaced by MOBILITEIT('zone'), but we need to know what to
112
+ // actually link this to as we have no way to specify zones
112
113
  predicate: EXT('zonality').full,
113
114
  object: sayDataFactory.namedNode(zonality),
114
115
  },
115
116
  {
116
117
  predicate: DCT('description').full,
117
- object: sayDataFactory.contentLiteral(),
118
+ object: sayDataFactory.contentLiteral('nl-BE'),
118
119
  },
120
+ // TODO there are some properties that are missing from the measure that we should define if we can:
121
+ // locn:address, mobiliteit:contactorganisatie, mobiliteit:doelgroep, adms:identifier,
122
+ // mobiliteit:periode, mobiliteit:plaatsbepaling, schema:eventSchedule, mobiliteit:type,
123
+ // mobiliteit:verwijstNaar, mobiliteit:heeftGevolg
119
124
  ],
120
125
  },
121
126
  [measureBody, ...signSection, ...(temporalNode ? [temporalNode] : [])],
@@ -244,6 +249,8 @@ function constructSignNode(
244
249
  predicate: PROV('wasDerivedFrom').full,
245
250
  object: sayDataFactory.namedNode(signConcept.uri),
246
251
  },
252
+ // TODO should include extra Verkeersteken properties? mobiliteit:heeftOnderbord,
253
+ // mobiliteit:isBeginZone, mobiliteit:isEindeZone?
247
254
  ],
248
255
  },
249
256
  schema.text(
@@ -1,13 +1,59 @@
1
1
  import { MOBILITEIT } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/constants';
2
+ import { ValueOf } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/types';
2
3
  import { ValuesOf } from '@lblod/ember-rdfa-editor/utils/_private/types';
3
4
 
4
5
  export const ZONALITY_OPTIONS = {
6
+ POTENTIALLY_ZONAL:
7
+ 'http://register.mobiliteit.vlaanderen.be/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f',
8
+ ZONAL:
9
+ 'http://register.mobiliteit.vlaanderen.be/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d',
10
+ NON_ZONAL:
11
+ 'http://register.mobiliteit.vlaanderen.be/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc',
12
+ } as const;
13
+
14
+ export const ZONALITY_OPTIONS_LEGACY = {
5
15
  POTENTIALLY_ZONAL:
6
16
  'http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f',
7
17
  ZONAL: 'http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d',
8
18
  NON_ZONAL:
9
19
  'http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc',
10
20
  } as const;
21
+
22
+ export type ZonalityUri = ValueOf<typeof ZONALITY_OPTIONS>;
23
+ export type LegacyZonalityUri = ValueOf<typeof ZONALITY_OPTIONS_LEGACY>;
24
+
25
+ export function getLegacyZonalityUri(uri: ZonalityUri | LegacyZonalityUri) {
26
+ if (isLegacyZonalityUri(uri)) {
27
+ return uri;
28
+ }
29
+ const key = (
30
+ Object.keys(ZONALITY_OPTIONS) as (keyof typeof ZONALITY_OPTIONS)[]
31
+ ).find((k) => ZONALITY_OPTIONS[k] === uri) as keyof typeof ZONALITY_OPTIONS;
32
+ return ZONALITY_OPTIONS_LEGACY[key];
33
+ }
34
+
35
+ export function getNewZonalityUri(uri: ZonalityUri | LegacyZonalityUri) {
36
+ if (isNewZonalityUri(uri)) {
37
+ return uri;
38
+ }
39
+ const key = (
40
+ Object.keys(ZONALITY_OPTIONS_LEGACY) as (keyof typeof ZONALITY_OPTIONS)[]
41
+ ).find(
42
+ (k) => ZONALITY_OPTIONS_LEGACY[k] === uri,
43
+ ) as keyof typeof ZONALITY_OPTIONS_LEGACY;
44
+ return ZONALITY_OPTIONS[key];
45
+ }
46
+
47
+ export function isNewZonalityUri(uri: string): uri is ZonalityUri {
48
+ // @ts-expect-error not sure how to handle this correctly
49
+ return Object.values(ZONALITY_OPTIONS).includes(uri);
50
+ }
51
+
52
+ export function isLegacyZonalityUri(uri: string): uri is LegacyZonalityUri {
53
+ // @ts-expect-error not sure how to handle this correctly
54
+ return Object.values(ZONALITY_OPTIONS_LEGACY).includes(uri);
55
+ }
56
+
11
57
  export type ZonalityOption = ValuesOf<typeof ZONALITY_OPTIONS>;
12
58
  export type ZonalOrNot = Exclude<
13
59
  ZonalityOption,
@@ -27,7 +27,11 @@ import {
27
27
  ModelMigrationGenerator,
28
28
  } from '@lblod/ember-rdfa-editor/core/rdfa-types';
29
29
  import { getRdfaContentElement } from '@lblod/ember-rdfa-editor/core/schema';
30
- import { TRAFFIC_SIGNAL_TYPES } from './constants';
30
+ import {
31
+ getNewZonalityUri,
32
+ isLegacyZonalityUri,
33
+ TRAFFIC_SIGNAL_TYPES,
34
+ } from './constants';
31
35
 
32
36
  const CONTENT_SELECTOR = `div[property~='${
33
37
  DCT('description').full
@@ -41,13 +45,10 @@ export const roadsign_regulation: NodeSpec = {
41
45
  resourceUri: {},
42
46
  measureUri: {},
43
47
  zonality: {},
44
- temporal: {
45
- default: false,
46
- },
47
48
  },
48
49
  classNames: ['say-roadsign-regulation'],
49
50
  toDOM(node: PNode) {
50
- const { resourceUri, measureUri, zonality, temporal } = node.attrs;
51
+ const { resourceUri, measureUri, zonality } = node.attrs;
51
52
  return [
52
53
  'div',
53
54
  {
@@ -68,18 +69,21 @@ export const roadsign_regulation: NodeSpec = {
68
69
  'span',
69
70
  {
70
71
  style: 'display:none;',
72
+ // TODO this should be replaced by MOBILITEIT('zone'), but we need to know what to
73
+ // actually link this to as we have no way to specify zones
71
74
  property: EXT('zonality'),
72
75
  resource: zonality as string,
73
76
  },
74
77
  ],
75
78
  [
76
- 'span',
79
+ 'div',
77
80
  {
78
- property: EXT('temporal'),
79
- resource: (temporal as string) ?? false,
81
+ property: DCT('description'),
82
+ datatype: RDF('langString'),
83
+ lang: 'nl-BE',
80
84
  },
85
+ 0,
81
86
  ],
82
- ['div', { property: DCT('description') }, 0],
83
87
  ];
84
88
  },
85
89
  parseDOM: [
@@ -140,7 +144,7 @@ export const roadsign_regulation: NodeSpec = {
140
144
  ],
141
145
  };
142
146
 
143
- const replacements = [
147
+ const trafficSignalRDFTypeReplacements = [
144
148
  [MOBILITEIT('Verkeersbord-Verkeersteken'), TRAFFIC_SIGNAL_TYPES.ROAD_SIGN],
145
149
  [
146
150
  MOBILITEIT('Verkeerslicht-Verkeersteken'),
@@ -154,7 +158,7 @@ const replacements = [
154
158
  **/
155
159
  export const trafficSignalMigration: ModelMigrationGenerator = (attrs) => {
156
160
  const factory = new SayDataFactory();
157
- for (const [source, replacement] of replacements) {
161
+ for (const [source, replacement] of trafficSignalRDFTypeReplacements) {
158
162
  const conceptTriple = getOutgoingTriple(
159
163
  attrs,
160
164
  MOBILITEIT('heeftVerkeersbordconcept'),
@@ -198,3 +202,42 @@ export const trafficSignalMigration: ModelMigrationGenerator = (attrs) => {
198
202
  }
199
203
  return false;
200
204
  };
205
+
206
+ export const trafficMeasureZonalityMigration: ModelMigrationGenerator = (
207
+ attrs,
208
+ ) => {
209
+ const factory = new SayDataFactory();
210
+
211
+ if (
212
+ !isResourceAttrs(attrs) ||
213
+ !hasOutgoingNamedNodeTriple(
214
+ attrs,
215
+ RDF('type'),
216
+ MOBILITEIT('Mobiliteitsmaatregel'),
217
+ )
218
+ ) {
219
+ return false;
220
+ }
221
+ const zonalityTriple = getOutgoingTriple(attrs, EXT('zonality'));
222
+ if (!zonalityTriple) {
223
+ return false;
224
+ }
225
+ if (!isLegacyZonalityUri(zonalityTriple.object.value)) {
226
+ return false;
227
+ }
228
+ const newZonalityProp = {
229
+ predicate: EXT('zonality').full,
230
+ object: factory.namedNode(getNewZonalityUri(zonalityTriple.object.value)),
231
+ };
232
+ const newProps = attrs.properties
233
+ .filter((prop) => !EXT('zonality').matches(prop.predicate))
234
+ .concat([newZonalityProp]);
235
+ return {
236
+ getAttrs: () => {
237
+ return {
238
+ ...attrs,
239
+ properties: newProps,
240
+ };
241
+ },
242
+ } satisfies ModelMigration;
243
+ };
@@ -10,12 +10,18 @@ import {
10
10
  } from '../schemas/mobility-measure-concept';
11
11
  import { z } from 'zod';
12
12
  import { queryTrafficSignalConcepts } from './traffic-signal-concept';
13
- import { ZONALITY_OPTIONS } from '../constants';
13
+ import {
14
+ getLegacyZonalityUri,
15
+ getNewZonalityUri,
16
+ LegacyZonalityUri,
17
+ ZONALITY_OPTIONS,
18
+ ZonalityUri,
19
+ } from '../constants';
14
20
 
15
21
  type QueryOptions<Count extends boolean = boolean> = {
16
22
  imageBaseUrl?: string;
17
23
  searchString?: string;
18
- zonality?: string;
24
+ zonality?: (typeof ZONALITY_OPTIONS)[keyof typeof ZONALITY_OPTIONS];
19
25
  trafficSignalType?: string;
20
26
  codes?: string[];
21
27
  category?: string;
@@ -37,7 +43,13 @@ function _buildFilters(
37
43
  const filters = [];
38
44
  if (zonality) {
39
45
  filters.push(
40
- `FILTER(?zonality IN (${sparqlEscapeUri(zonality)}, ${sparqlEscapeUri(ZONALITY_OPTIONS.POTENTIALLY_ZONAL)}))`,
46
+ `FILTER(?zonality IN (
47
+ ${sparqlEscapeUri(zonality)},
48
+ ${sparqlEscapeUri(getLegacyZonalityUri(zonality))},
49
+ ${sparqlEscapeUri(ZONALITY_OPTIONS.POTENTIALLY_ZONAL)},
50
+ ${sparqlEscapeUri(getLegacyZonalityUri(ZONALITY_OPTIONS.POTENTIALLY_ZONAL))}
51
+ )
52
+ )`,
41
53
  );
42
54
  }
43
55
  if (trafficSignalType) {
@@ -137,6 +149,9 @@ async function _queryMobilityMeasures<Count extends boolean>(
137
149
  variableSignage:
138
150
  objectified.variableSignage === '1' ||
139
151
  objectified.variableSignage === 'true',
152
+ zonality: getNewZonalityUri(
153
+ objectified.zonality as ZonalityUri | LegacyZonalityUri,
154
+ ),
140
155
  };
141
156
  }),
142
157
  );
@@ -36,7 +36,6 @@ export async function queryTrafficSignalConcepts(
36
36
  ?type
37
37
  ?code
38
38
  ?regulatoryNotation
39
- ?zonality
40
39
  ?image
41
40
  ?position
42
41
  WHERE {
@@ -67,10 +66,6 @@ export async function queryTrafficSignalConcepts(
67
66
  BIND(CONCAT(${sparqlEscapeString(imageBaseUrl ?? '')}, "/files/", ?imageId, "/download") AS ?image)
68
67
  }
69
68
 
70
- OPTIONAL {
71
- ?uri ext:zonality ?zonality.
72
- }
73
-
74
69
  OPTIONAL {
75
70
  ?uri ext:regulatoryNotation ?regulatoryNotation.
76
71
  }
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { TRAFFIC_SIGNAL_CONCEPT_TYPES, ZONALITY_OPTIONS } from '../constants';
2
+ import { TRAFFIC_SIGNAL_CONCEPT_TYPES } from '../constants';
3
3
  import { RoadSignCategorySchema } from './road-sign-category';
4
4
 
5
5
  export const TrafficSignalConceptSchema = z
@@ -8,7 +8,6 @@ export const TrafficSignalConceptSchema = z
8
8
  code: z.string(),
9
9
  regulatoryNotation: z.string().optional(),
10
10
  image: z.string(),
11
- zonality: z.nativeEnum(ZONALITY_OPTIONS).optional(),
12
11
  position: z.coerce.number().default(-1),
13
12
  })
14
13
  .and(
@@ -5,3 +5,5 @@ export type SafeString = ReturnType<typeof htmlSafe>;
5
5
 
6
6
  export type AllOrNone<T> = T | { [K in keyof T]?: never };
7
7
  export type ContentSpec = Fragment | PNode | PNode[];
8
+
9
+ export type ValueOf<T> = T[keyof T];
@@ -4,12 +4,15 @@ import { RoadsignRegulationPluginOptions } from '@lblod/ember-rdfa-editor-lblod-
4
4
  import { MobilityMeasureConcept } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/roadsign-regulation-plugin/schemas/mobility-measure-concept';
5
5
  import { Select } from 'ember-power-select/components/power-select';
6
6
  import { TaskInstance } from 'reactiveweb/ember-concurrency';
7
- import { type ZonalOrNot } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/roadsign-regulation-plugin/constants';
7
+ import { ZONALITY_OPTIONS, type ZonalOrNot } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/roadsign-regulation-plugin/constants';
8
8
  type Option = {
9
9
  uri: string;
10
10
  label: string;
11
11
  };
12
- type Zonality = Option;
12
+ type Zonality = {
13
+ uri: (typeof ZONALITY_OPTIONS)[keyof typeof ZONALITY_OPTIONS];
14
+ label: string;
15
+ };
13
16
  type TypeOption = Option;
14
17
  type Code = Option;
15
18
  type Category = Option;
@@ -83,8 +86,8 @@ export default class RoadsignsModal extends Component<Signature> {
83
86
  concepts: {
84
87
  label: string;
85
88
  uri: string;
86
- zonality: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
87
89
  preview: string;
90
+ zonality: "http://register.mobiliteit.vlaanderen.be/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://register.mobiliteit.vlaanderen.be/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://register.mobiliteit.vlaanderen.be/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
88
91
  variableSignage: boolean;
89
92
  trafficSignalConcepts: ({
90
93
  code: string;
@@ -92,7 +95,6 @@ export default class RoadsignsModal extends Component<Signature> {
92
95
  uri: string;
93
96
  position: number;
94
97
  regulatoryNotation?: string | undefined;
95
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
96
98
  } & ({
97
99
  type: "https://data.vlaanderen.be/ns/mobiliteit#Verkeersbordconcept";
98
100
  categories: {
@@ -112,8 +114,8 @@ export default class RoadsignsModal extends Component<Signature> {
112
114
  get measureConcepts(): {
113
115
  label: string;
114
116
  uri: string;
115
- zonality: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
116
117
  preview: string;
118
+ zonality: "http://register.mobiliteit.vlaanderen.be/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://register.mobiliteit.vlaanderen.be/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://register.mobiliteit.vlaanderen.be/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
117
119
  variableSignage: boolean;
118
120
  trafficSignalConcepts: ({
119
121
  code: string;
@@ -121,7 +123,6 @@ export default class RoadsignsModal extends Component<Signature> {
121
123
  uri: string;
122
124
  position: number;
123
125
  regulatoryNotation?: string | undefined;
124
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
125
126
  } & ({
126
127
  type: "https://data.vlaanderen.be/ns/mobiliteit#Verkeersbordconcept";
127
128
  categories: {
@@ -1,9 +1,21 @@
1
+ import { ValueOf } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/types';
1
2
  import { ValuesOf } from '@lblod/ember-rdfa-editor/utils/_private/types';
2
3
  export declare const ZONALITY_OPTIONS: {
4
+ readonly POTENTIALLY_ZONAL: "http://register.mobiliteit.vlaanderen.be/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f";
5
+ readonly ZONAL: "http://register.mobiliteit.vlaanderen.be/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d";
6
+ readonly NON_ZONAL: "http://register.mobiliteit.vlaanderen.be/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
7
+ };
8
+ export declare const ZONALITY_OPTIONS_LEGACY: {
3
9
  readonly POTENTIALLY_ZONAL: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f";
4
10
  readonly ZONAL: "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d";
5
11
  readonly NON_ZONAL: "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
6
12
  };
13
+ export type ZonalityUri = ValueOf<typeof ZONALITY_OPTIONS>;
14
+ export type LegacyZonalityUri = ValueOf<typeof ZONALITY_OPTIONS_LEGACY>;
15
+ export declare function getLegacyZonalityUri(uri: ZonalityUri | LegacyZonalityUri): LegacyZonalityUri;
16
+ export declare function getNewZonalityUri(uri: ZonalityUri | LegacyZonalityUri): ZonalityUri;
17
+ export declare function isNewZonalityUri(uri: string): uri is ZonalityUri;
18
+ export declare function isLegacyZonalityUri(uri: string): uri is LegacyZonalityUri;
7
19
  export type ZonalityOption = ValuesOf<typeof ZONALITY_OPTIONS>;
8
20
  export type ZonalOrNot = Exclude<ZonalityOption, typeof ZONALITY_OPTIONS.POTENTIALLY_ZONAL>;
9
21
  export declare const TRAFFIC_SIGNAL_CONCEPT_TYPES: {
@@ -6,3 +6,4 @@ export declare const roadsign_regulation: NodeSpec;
6
6
  * namedNodes to encode everything in one inline_rdfa
7
7
  **/
8
8
  export declare const trafficSignalMigration: ModelMigrationGenerator;
9
+ export declare const trafficMeasureZonalityMigration: ModelMigrationGenerator;
@@ -1,7 +1,8 @@
1
+ import { ZONALITY_OPTIONS } from '../constants';
1
2
  type QueryOptions<Count extends boolean = boolean> = {
2
3
  imageBaseUrl?: string;
3
4
  searchString?: string;
4
- zonality?: string;
5
+ zonality?: (typeof ZONALITY_OPTIONS)[keyof typeof ZONALITY_OPTIONS];
5
6
  trafficSignalType?: string;
6
7
  codes?: string[];
7
8
  category?: string;
@@ -14,8 +15,8 @@ export type MobilityMeasureQueryOptions = Omit<QueryOptions, 'count'>;
14
15
  export declare function queryMobilityMeasures(endpoint: string, options?: MobilityMeasureQueryOptions): Promise<{
15
16
  label: string;
16
17
  uri: string;
17
- zonality: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
18
18
  preview: string;
19
+ zonality: "http://register.mobiliteit.vlaanderen.be/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://register.mobiliteit.vlaanderen.be/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://register.mobiliteit.vlaanderen.be/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
19
20
  variableSignage: boolean;
20
21
  trafficSignalConcepts: ({
21
22
  code: string;
@@ -23,7 +24,6 @@ export declare function queryMobilityMeasures(endpoint: string, options?: Mobili
23
24
  uri: string;
24
25
  position: number;
25
26
  regulatoryNotation?: string | undefined;
26
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
27
27
  } & ({
28
28
  type: "https://data.vlaanderen.be/ns/mobiliteit#Verkeersbordconcept";
29
29
  categories: {
@@ -9,7 +9,6 @@ export declare function queryTrafficSignalConcepts(endpoint: string, options: Qu
9
9
  uri: string;
10
10
  position: number;
11
11
  regulatoryNotation?: string | undefined;
12
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
13
12
  } & {
14
13
  type: "https://data.vlaanderen.be/ns/mobiliteit#Verkeerslichtconcept" | "https://data.vlaanderen.be/ns/mobiliteit#Wegmarkeringconcept";
15
14
  }) | {
@@ -22,7 +21,6 @@ export declare function queryTrafficSignalConcepts(endpoint: string, options: Qu
22
21
  uri: string;
23
22
  position: number;
24
23
  regulatoryNotation?: string | undefined;
25
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
26
24
  type: "https://data.vlaanderen.be/ns/mobiliteit#Verkeersbordconcept";
27
25
  })[]>;
28
26
  export {};
@@ -4,9 +4,9 @@ export declare const MobilityMeasureConceptSchema: z.ZodObject<{
4
4
  label: z.ZodString;
5
5
  preview: z.ZodString;
6
6
  zonality: z.ZodNativeEnum<{
7
- readonly POTENTIALLY_ZONAL: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f";
8
- readonly ZONAL: "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d";
9
- readonly NON_ZONAL: "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
7
+ readonly POTENTIALLY_ZONAL: "http://register.mobiliteit.vlaanderen.be/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f";
8
+ readonly ZONAL: "http://register.mobiliteit.vlaanderen.be/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d";
9
+ readonly NON_ZONAL: "http://register.mobiliteit.vlaanderen.be/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
10
10
  }>;
11
11
  variableSignage: z.ZodDefault<z.ZodBoolean>;
12
12
  trafficSignalConcepts: z.ZodDefault<z.ZodArray<z.ZodIntersection<z.ZodObject<{
@@ -14,11 +14,6 @@ export declare const MobilityMeasureConceptSchema: z.ZodObject<{
14
14
  code: z.ZodString;
15
15
  regulatoryNotation: z.ZodOptional<z.ZodString>;
16
16
  image: z.ZodString;
17
- zonality: z.ZodOptional<z.ZodNativeEnum<{
18
- readonly POTENTIALLY_ZONAL: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f";
19
- readonly ZONAL: "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d";
20
- readonly NON_ZONAL: "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
21
- }>>;
22
17
  position: z.ZodDefault<z.ZodNumber>;
23
18
  }, "strip", z.ZodTypeAny, {
24
19
  code: string;
@@ -26,14 +21,12 @@ export declare const MobilityMeasureConceptSchema: z.ZodObject<{
26
21
  uri: string;
27
22
  position: number;
28
23
  regulatoryNotation?: string | undefined;
29
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
30
24
  }, {
31
25
  code: string;
32
26
  image: string;
33
27
  uri: string;
34
28
  position?: number | undefined;
35
29
  regulatoryNotation?: string | undefined;
36
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
37
30
  }>, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
38
31
  type: z.ZodLiteral<"https://data.vlaanderen.be/ns/mobiliteit#Verkeersbordconcept">;
39
32
  categories: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -68,8 +61,8 @@ export declare const MobilityMeasureConceptSchema: z.ZodObject<{
68
61
  }, "strip", z.ZodTypeAny, {
69
62
  label: string;
70
63
  uri: string;
71
- zonality: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
72
64
  preview: string;
65
+ zonality: "http://register.mobiliteit.vlaanderen.be/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://register.mobiliteit.vlaanderen.be/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://register.mobiliteit.vlaanderen.be/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
73
66
  variableSignage: boolean;
74
67
  trafficSignalConcepts: ({
75
68
  code: string;
@@ -77,7 +70,6 @@ export declare const MobilityMeasureConceptSchema: z.ZodObject<{
77
70
  uri: string;
78
71
  position: number;
79
72
  regulatoryNotation?: string | undefined;
80
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
81
73
  } & ({
82
74
  type: "https://data.vlaanderen.be/ns/mobiliteit#Verkeersbordconcept";
83
75
  categories: {
@@ -90,8 +82,8 @@ export declare const MobilityMeasureConceptSchema: z.ZodObject<{
90
82
  }, {
91
83
  label: string;
92
84
  uri: string;
93
- zonality: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
94
85
  preview: string;
86
+ zonality: "http://register.mobiliteit.vlaanderen.be/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://register.mobiliteit.vlaanderen.be/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://register.mobiliteit.vlaanderen.be/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
95
87
  variableSignage?: boolean | undefined;
96
88
  trafficSignalConcepts?: ({
97
89
  code: string;
@@ -99,7 +91,6 @@ export declare const MobilityMeasureConceptSchema: z.ZodObject<{
99
91
  uri: string;
100
92
  position?: number | undefined;
101
93
  regulatoryNotation?: string | undefined;
102
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
103
94
  } & ({
104
95
  type: "https://data.vlaanderen.be/ns/mobiliteit#Verkeersbordconcept";
105
96
  categories?: {
@@ -4,11 +4,6 @@ export declare const TrafficSignalConceptSchema: z.ZodIntersection<z.ZodObject<{
4
4
  code: z.ZodString;
5
5
  regulatoryNotation: z.ZodOptional<z.ZodString>;
6
6
  image: z.ZodString;
7
- zonality: z.ZodOptional<z.ZodNativeEnum<{
8
- readonly POTENTIALLY_ZONAL: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f";
9
- readonly ZONAL: "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d";
10
- readonly NON_ZONAL: "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc";
11
- }>>;
12
7
  position: z.ZodDefault<z.ZodNumber>;
13
8
  }, "strip", z.ZodTypeAny, {
14
9
  code: string;
@@ -16,14 +11,12 @@ export declare const TrafficSignalConceptSchema: z.ZodIntersection<z.ZodObject<{
16
11
  uri: string;
17
12
  position: number;
18
13
  regulatoryNotation?: string | undefined;
19
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
20
14
  }, {
21
15
  code: string;
22
16
  image: string;
23
17
  uri: string;
24
18
  position?: number | undefined;
25
19
  regulatoryNotation?: string | undefined;
26
- zonality?: "http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f" | "http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d" | "http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc" | undefined;
27
20
  }>, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
28
21
  type: z.ZodLiteral<"https://data.vlaanderen.be/ns/mobiliteit#Verkeersbordconcept">;
29
22
  categories: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -5,3 +5,4 @@ export type AllOrNone<T> = T | {
5
5
  [K in keyof T]?: never;
6
6
  };
7
7
  export type ContentSpec = Fragment | PNode | PNode[];
8
+ export type ValueOf<T> = T[keyof T];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lblod/ember-rdfa-editor-lblod-plugins",
3
- "version": "32.8.0",
3
+ "version": "33.0.0",
4
4
  "description": "Ember addon providing lblod specific plugins for the ember-rdfa-editor",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -112,7 +112,7 @@
112
112
  "@glint/template": "^1.5.0",
113
113
  "@graphy/content.ttl.write": "^4.3.7",
114
114
  "@graphy/memory.dataset.fast": "4.3.3",
115
- "@lblod/ember-rdfa-editor": "12.14.0",
115
+ "@lblod/ember-rdfa-editor": "12.15.1",
116
116
  "@rdfjs/types": "^1.1.0",
117
117
  "@release-it/keep-a-changelog": "^4.0.0",
118
118
  "@tsconfig/ember": "^3.0.8",
@@ -183,7 +183,7 @@
183
183
  "@appuniversum/ember-appuniversum": "^3.12.0",
184
184
  "@ember/string": "3.x",
185
185
  "@glint/template": "^1.4.0",
186
- "@lblod/ember-rdfa-editor": "^12.12.1",
186
+ "@lblod/ember-rdfa-editor": "^12.15.0",
187
187
  "ember-concurrency": "^4.0.2",
188
188
  "ember-element-helper": "^0.8.6",
189
189
  "ember-intl": "^7.0.0",