@fieldia/core 0.15.0 → 0.17.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 (38) hide show
  1. package/package.json +1 -1
  2. package/schema/page.schema.json +413 -66
  3. package/src/lib/format/layout.d.mts +950 -39
  4. package/src/lib/format/layout.d.ts +950 -39
  5. package/src/lib/format/layout.js +96 -29
  6. package/src/lib/format/layout.js.map +1 -1
  7. package/src/lib/format/layout.mjs +95 -28
  8. package/src/lib/format/layout.mjs.map +1 -1
  9. package/src/lib/format/page.d.mts +17 -0
  10. package/src/lib/format/page.d.ts +17 -0
  11. package/src/lib/format/references.d.mts +11 -0
  12. package/src/lib/format/references.d.ts +11 -0
  13. package/src/lib/format/references.js +138 -20
  14. package/src/lib/format/references.js.map +1 -1
  15. package/src/lib/format/references.mjs +138 -20
  16. package/src/lib/format/references.mjs.map +1 -1
  17. package/src/lib/format/translate.js +8 -2
  18. package/src/lib/format/translate.js.map +1 -1
  19. package/src/lib/format/translate.mjs +8 -2
  20. package/src/lib/format/translate.mjs.map +1 -1
  21. package/src/lib/record/data-source.d.mts +10 -0
  22. package/src/lib/record/data-source.d.ts +10 -0
  23. package/src/lib/record/data-source.js.map +1 -1
  24. package/src/lib/record/data-source.mjs.map +1 -1
  25. package/src/lib/record/filter.d.mts +6 -0
  26. package/src/lib/record/filter.d.ts +6 -0
  27. package/src/lib/record/filter.js +26 -14
  28. package/src/lib/record/filter.js.map +1 -1
  29. package/src/lib/record/filter.mjs +25 -14
  30. package/src/lib/record/filter.mjs.map +1 -1
  31. package/src/lib/record/memory-data-source.js +4 -1
  32. package/src/lib/record/memory-data-source.js.map +1 -1
  33. package/src/lib/record/memory-data-source.mjs +5 -2
  34. package/src/lib/record/memory-data-source.mjs.map +1 -1
  35. package/src/runtime.d.mts +1 -1
  36. package/src/runtime.d.ts +1 -1
  37. package/src/runtime.js.map +1 -1
  38. package/src/runtime.mjs.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fieldia/core",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "description": "Headless form model for Fieldia: the page format, modifiers, validation and record state. No DOM.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://fieldia.dev",
@@ -6902,6 +6902,9 @@
6902
6902
  "name"
6903
6903
  ],
6904
6904
  "additionalProperties": false
6905
+ },
6906
+ {
6907
+ "$ref": "#/$defs/MapNode"
6905
6908
  }
6906
6909
  ]
6907
6910
  },
@@ -7112,6 +7115,359 @@
7112
7115
  ],
7113
7116
  "additionalProperties": false
7114
7117
  },
7118
+ "MapNode": {
7119
+ "type": "object",
7120
+ "properties": {
7121
+ "type": {
7122
+ "type": "string",
7123
+ "const": "map"
7124
+ },
7125
+ "id": {
7126
+ "type": "string",
7127
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7128
+ },
7129
+ "label": {
7130
+ "type": "string"
7131
+ },
7132
+ "layers": {
7133
+ "minItems": 1,
7134
+ "type": "array",
7135
+ "items": {
7136
+ "$ref": "#/$defs/MapLayer"
7137
+ }
7138
+ },
7139
+ "height": {
7140
+ "type": "integer",
7141
+ "minimum": 160,
7142
+ "maximum": 1200
7143
+ },
7144
+ "tools": {
7145
+ "type": "array",
7146
+ "items": {
7147
+ "type": "string",
7148
+ "enum": [
7149
+ "satellite",
7150
+ "fullscreen",
7151
+ "measure"
7152
+ ]
7153
+ }
7154
+ },
7155
+ "fences": {
7156
+ "minItems": 1,
7157
+ "type": "array",
7158
+ "items": {
7159
+ "$ref": "#/$defs/MapFence"
7160
+ }
7161
+ },
7162
+ "colspan": {
7163
+ "type": "integer",
7164
+ "minimum": 1,
7165
+ "maximum": 12
7166
+ },
7167
+ "invisible": {
7168
+ "$ref": "#/$defs/Modifier"
7169
+ },
7170
+ "roles": {
7171
+ "$ref": "#/$defs/Roles"
7172
+ },
7173
+ "hideOn": {
7174
+ "minItems": 1,
7175
+ "type": "array",
7176
+ "items": {
7177
+ "$ref": "#/$defs/ScreenWidth"
7178
+ }
7179
+ }
7180
+ },
7181
+ "required": [
7182
+ "type",
7183
+ "id",
7184
+ "layers"
7185
+ ],
7186
+ "additionalProperties": false
7187
+ },
7188
+ "MapLayer": {
7189
+ "type": "object",
7190
+ "properties": {
7191
+ "id": {
7192
+ "type": "string",
7193
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7194
+ },
7195
+ "label": {
7196
+ "type": "string"
7197
+ },
7198
+ "point": {
7199
+ "type": "string",
7200
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7201
+ },
7202
+ "latitude": {
7203
+ "type": "string",
7204
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7205
+ },
7206
+ "longitude": {
7207
+ "type": "string",
7208
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7209
+ },
7210
+ "lines": {
7211
+ "type": "string",
7212
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7213
+ },
7214
+ "pin": {
7215
+ "$ref": "#/$defs/Pin"
7216
+ },
7217
+ "card": {
7218
+ "$ref": "#/$defs/MapCard"
7219
+ },
7220
+ "live": {
7221
+ "type": "object",
7222
+ "properties": {
7223
+ "staleAfter": {
7224
+ "type": "integer",
7225
+ "minimum": 5,
7226
+ "maximum": 86400
7227
+ },
7228
+ "follow": {
7229
+ "type": "boolean"
7230
+ }
7231
+ },
7232
+ "additionalProperties": false
7233
+ },
7234
+ "route": {
7235
+ "$ref": "#/$defs/MapRoute"
7236
+ },
7237
+ "myLocation": {
7238
+ "type": "boolean"
7239
+ },
7240
+ "regions": {
7241
+ "type": "object",
7242
+ "properties": {
7243
+ "from": {
7244
+ "type": "string",
7245
+ "minLength": 1
7246
+ },
7247
+ "key": {
7248
+ "type": "string",
7249
+ "minLength": 1
7250
+ },
7251
+ "name": {
7252
+ "type": "string",
7253
+ "minLength": 1
7254
+ },
7255
+ "shade": {
7256
+ "type": "string",
7257
+ "minLength": 1
7258
+ },
7259
+ "legend": {
7260
+ "type": "boolean"
7261
+ },
7262
+ "choose": {
7263
+ "type": "string",
7264
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7265
+ }
7266
+ },
7267
+ "required": [
7268
+ "from",
7269
+ "key"
7270
+ ],
7271
+ "additionalProperties": false
7272
+ },
7273
+ "reachable": {
7274
+ "$ref": "#/$defs/MapReach"
7275
+ },
7276
+ "invisible": {
7277
+ "$ref": "#/$defs/Modifier"
7278
+ }
7279
+ },
7280
+ "required": [
7281
+ "id"
7282
+ ],
7283
+ "additionalProperties": false
7284
+ },
7285
+ "Pin": {
7286
+ "type": "object",
7287
+ "properties": {
7288
+ "look": {
7289
+ "type": "string",
7290
+ "enum": [
7291
+ "pin",
7292
+ "icon",
7293
+ "photo",
7294
+ "label",
7295
+ "dot"
7296
+ ]
7297
+ },
7298
+ "icon": {
7299
+ "type": "string",
7300
+ "minLength": 1
7301
+ },
7302
+ "iconField": {
7303
+ "type": "string",
7304
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7305
+ },
7306
+ "image": {
7307
+ "type": "string",
7308
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7309
+ },
7310
+ "label": {
7311
+ "type": "string",
7312
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7313
+ },
7314
+ "tones": {
7315
+ "minItems": 1,
7316
+ "type": "array",
7317
+ "items": {
7318
+ "$ref": "#/$defs/ToneWhen"
7319
+ }
7320
+ },
7321
+ "turn": {
7322
+ "type": "string",
7323
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7324
+ },
7325
+ "widget": {
7326
+ "type": "string",
7327
+ "minLength": 1
7328
+ }
7329
+ },
7330
+ "additionalProperties": false
7331
+ },
7332
+ "MapCard": {
7333
+ "type": "object",
7334
+ "properties": {
7335
+ "title": {
7336
+ "type": "string",
7337
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7338
+ },
7339
+ "image": {
7340
+ "type": "string",
7341
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7342
+ },
7343
+ "fields": {
7344
+ "minItems": 1,
7345
+ "type": "array",
7346
+ "items": {
7347
+ "type": "string",
7348
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7349
+ }
7350
+ },
7351
+ "open": {
7352
+ "type": "boolean"
7353
+ }
7354
+ },
7355
+ "additionalProperties": false
7356
+ },
7357
+ "MapRoute": {
7358
+ "type": "object",
7359
+ "properties": {
7360
+ "from": {
7361
+ "type": "string",
7362
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7363
+ },
7364
+ "to": {
7365
+ "type": "string",
7366
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7367
+ },
7368
+ "through": {
7369
+ "type": "string",
7370
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7371
+ },
7372
+ "mode": {
7373
+ "type": "string",
7374
+ "enum": [
7375
+ "car",
7376
+ "bike",
7377
+ "foot"
7378
+ ]
7379
+ },
7380
+ "progress": {
7381
+ "type": "boolean"
7382
+ },
7383
+ "write": {
7384
+ "type": "object",
7385
+ "properties": {
7386
+ "seconds": {
7387
+ "type": "string",
7388
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7389
+ },
7390
+ "metres": {
7391
+ "type": "string",
7392
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7393
+ },
7394
+ "line": {
7395
+ "type": "string",
7396
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7397
+ }
7398
+ },
7399
+ "additionalProperties": false
7400
+ }
7401
+ },
7402
+ "required": [
7403
+ "from"
7404
+ ],
7405
+ "additionalProperties": false
7406
+ },
7407
+ "MapReach": {
7408
+ "type": "object",
7409
+ "properties": {
7410
+ "from": {
7411
+ "type": "string",
7412
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7413
+ },
7414
+ "minutes": {
7415
+ "type": "number",
7416
+ "exclusiveMinimum": 0,
7417
+ "maximum": 120
7418
+ },
7419
+ "mode": {
7420
+ "type": "string",
7421
+ "enum": [
7422
+ "car",
7423
+ "bike",
7424
+ "foot"
7425
+ ]
7426
+ }
7427
+ },
7428
+ "required": [
7429
+ "from",
7430
+ "minutes"
7431
+ ],
7432
+ "additionalProperties": false
7433
+ },
7434
+ "MapFence": {
7435
+ "type": "object",
7436
+ "properties": {
7437
+ "layer": {
7438
+ "type": "string",
7439
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7440
+ },
7441
+ "area": {
7442
+ "type": "string",
7443
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7444
+ },
7445
+ "within": {
7446
+ "type": "string",
7447
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
7448
+ },
7449
+ "when": {
7450
+ "type": "string",
7451
+ "enum": [
7452
+ "enter",
7453
+ "leave"
7454
+ ]
7455
+ },
7456
+ "steps": {
7457
+ "minItems": 1,
7458
+ "type": "array",
7459
+ "items": {
7460
+ "$ref": "#/$defs/ActionStep"
7461
+ }
7462
+ }
7463
+ },
7464
+ "required": [
7465
+ "layer",
7466
+ "when",
7467
+ "steps"
7468
+ ],
7469
+ "additionalProperties": false
7470
+ },
7115
7471
  "HelpShown": {
7116
7472
  "type": "string",
7117
7473
  "enum": [
@@ -7667,78 +8023,69 @@
7667
8023
  "type": "integer",
7668
8024
  "minimum": 1,
7669
8025
  "maximum": 5000
7670
- }
7671
- },
7672
- "additionalProperties": false
7673
- },
7674
- "Pin": {
7675
- "type": "object",
7676
- "properties": {
7677
- "look": {
7678
- "type": "string",
7679
- "enum": [
7680
- "pin",
7681
- "icon",
7682
- "photo",
7683
- "label",
7684
- "dot"
7685
- ]
7686
- },
7687
- "icon": {
7688
- "type": "string",
7689
- "minLength": 1
7690
- },
7691
- "iconField": {
7692
- "type": "string",
7693
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7694
- },
7695
- "image": {
7696
- "type": "string",
7697
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7698
- },
7699
- "label": {
7700
- "type": "string",
7701
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7702
- },
7703
- "tones": {
7704
- "minItems": 1,
7705
- "type": "array",
7706
- "items": {
7707
- "$ref": "#/$defs/ToneWhen"
7708
- }
7709
- },
7710
- "turn": {
7711
- "type": "string",
7712
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7713
- },
7714
- "widget": {
7715
- "type": "string",
7716
- "minLength": 1
7717
- }
7718
- },
7719
- "additionalProperties": false
7720
- },
7721
- "MapCard": {
7722
- "type": "object",
7723
- "properties": {
7724
- "title": {
7725
- "type": "string",
7726
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7727
- },
7728
- "image": {
7729
- "type": "string",
7730
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
7731
8026
  },
7732
- "fields": {
7733
- "minItems": 1,
8027
+ "tools": {
7734
8028
  "type": "array",
7735
8029
  "items": {
7736
8030
  "type": "string",
7737
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
8031
+ "enum": [
8032
+ "satellite",
8033
+ "fullscreen",
8034
+ "measure",
8035
+ "nearest"
8036
+ ]
7738
8037
  }
7739
8038
  },
7740
- "open": {
7741
- "type": "boolean"
8039
+ "regions": {
8040
+ "type": "object",
8041
+ "properties": {
8042
+ "from": {
8043
+ "type": "string",
8044
+ "minLength": 1
8045
+ },
8046
+ "key": {
8047
+ "type": "string",
8048
+ "minLength": 1
8049
+ },
8050
+ "name": {
8051
+ "type": "string",
8052
+ "minLength": 1
8053
+ },
8054
+ "shade": {
8055
+ "type": "string",
8056
+ "minLength": 1
8057
+ },
8058
+ "legend": {
8059
+ "type": "boolean"
8060
+ },
8061
+ "field": {
8062
+ "type": "string",
8063
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
8064
+ }
8065
+ },
8066
+ "required": [
8067
+ "from",
8068
+ "key",
8069
+ "field"
8070
+ ],
8071
+ "additionalProperties": false
8072
+ },
8073
+ "heat": {
8074
+ "anyOf": [
8075
+ {
8076
+ "type": "boolean"
8077
+ },
8078
+ {
8079
+ "type": "object",
8080
+ "properties": {
8081
+ "weight": {
8082
+ "type": "string",
8083
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
8084
+ }
8085
+ },
8086
+ "additionalProperties": false
8087
+ }
8088
+ ]
7742
8089
  }
7743
8090
  },
7744
8091
  "additionalProperties": false