oca_package 2.0.0 → 2.1.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.
- package/dist/cjs/oca_extensions/extensions.js +19 -1
- package/dist/cjs/oca_extensions/state/overlays/array_delimiter.js +42 -0
- package/dist/cjs/oca_extensions/state/overlays/decimal_separator.js +39 -0
- package/dist/cjs/oca_extensions/state/overlays/file_delimiter.js +88 -0
- package/dist/cjs/oca_extensions/state/overlays/form.js +32 -0
- package/dist/esm/oca_extensions/extensions.js +19 -1
- package/dist/esm/oca_extensions/state/overlays/array_delimiter.js +37 -0
- package/dist/esm/oca_extensions/state/overlays/decimal_separator.js +37 -0
- package/dist/esm/oca_extensions/state/overlays/file_delimiter.js +86 -0
- package/dist/esm/oca_extensions/state/overlays/form.js +32 -0
- package/dist/types/oca_extensions/extensions.d.ts.map +1 -1
- package/dist/types/oca_extensions/state/overlays/array_delimiter.d.ts +16 -0
- package/dist/types/oca_extensions/state/overlays/array_delimiter.d.ts.map +1 -0
- package/dist/types/oca_extensions/state/overlays/decimal_separator.d.ts +16 -0
- package/dist/types/oca_extensions/state/overlays/decimal_separator.d.ts.map +1 -0
- package/dist/types/oca_extensions/state/overlays/file_delimiter.d.ts +20 -0
- package/dist/types/oca_extensions/state/overlays/file_delimiter.d.ts.map +1 -0
- package/dist/types/oca_extensions/state/overlays/form.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -16,6 +16,9 @@ const range_js_1 = __importDefault(require("./state/overlays/range.js"));
|
|
|
16
16
|
const sensitive_js_1 = __importDefault(require("./state/overlays/sensitive.js"));
|
|
17
17
|
const attribute_framing_js_1 = __importDefault(require("./state/overlays/framing/attribute_framing.js"));
|
|
18
18
|
const separator_js_1 = __importDefault(require("./state/overlays/separator.js"));
|
|
19
|
+
const decimal_separator_js_1 = __importDefault(require("./state/overlays/decimal_separator.js"));
|
|
20
|
+
const file_delimiter_js_1 = __importDefault(require("./state/overlays/file_delimiter.js"));
|
|
21
|
+
const array_delimiter_js_1 = __importDefault(require("./state/overlays/array_delimiter.js"));
|
|
19
22
|
const helpers_js_1 = require("../utils/helpers.js");
|
|
20
23
|
const saidify_1 = require("saidify");
|
|
21
24
|
const ADC_COMMUNITY = 'adc';
|
|
@@ -86,13 +89,28 @@ class Overlay {
|
|
|
86
89
|
const separator_ov = separator_instance.GenerateOverlay();
|
|
87
90
|
overlay['separator'] = JSON.parse(separator_ov);
|
|
88
91
|
}
|
|
92
|
+
else if (ov_type === 'decimal_separator_overlay') {
|
|
93
|
+
const decimal_instance = new decimal_separator_js_1.default(this._overlay.decimal_separator_overlay, this._capture_base_digest);
|
|
94
|
+
const decimal_ov = decimal_instance.GenerateOverlay();
|
|
95
|
+
overlay['decimal_separator'] = JSON.parse(decimal_ov);
|
|
96
|
+
}
|
|
97
|
+
else if (ov_type === 'file_delimiter_overlay') {
|
|
98
|
+
const file_instance = new file_delimiter_js_1.default(this._overlay.file_delimiter_overlay, this._capture_base_digest);
|
|
99
|
+
const file_ov = file_instance.GenerateOverlay();
|
|
100
|
+
overlay['file_delimiter'] = JSON.parse(file_ov);
|
|
101
|
+
}
|
|
102
|
+
else if (ov_type === 'array_delimiter_overlay') {
|
|
103
|
+
const array_instance = new array_delimiter_js_1.default(this._overlay.array_delimiter_overlay, this._capture_base_digest);
|
|
104
|
+
const array_ov = array_instance.GenerateOverlay();
|
|
105
|
+
overlay['array_delimiter'] = JSON.parse(array_ov);
|
|
106
|
+
}
|
|
89
107
|
else if (ov_type === 'attribute_framing_overlay') {
|
|
90
108
|
const attribute_framing_instance = new attribute_framing_js_1.default(this._overlay.attribute_framing_overlay, this._capture_base_digest);
|
|
91
109
|
const attribute_framing_ov = attribute_framing_instance.GenerateOverlay();
|
|
92
110
|
overlay['attribute_framing'] = JSON.parse(attribute_framing_ov);
|
|
93
111
|
}
|
|
94
112
|
else {
|
|
95
|
-
throw new Error(`Unsupported overaly type ${ov_type}. Supported extension overlays at ADC are [ ordering_overlay, unit_framing_overlay, range_overlay, example_overlay, form_overlay, sensitive_overlay, separator_overlay, attribute_framing_overlay ]`);
|
|
113
|
+
throw new Error(`Unsupported overaly type ${ov_type}. Supported extension overlays at ADC are [ ordering_overlay, unit_framing_overlay, range_overlay, example_overlay, form_overlay, sensitive_overlay, separator_overlay, attribute_framing_overlay, decimal_separator_overlay, file_delimiter_overlay, array_delimiter_overlay ]`);
|
|
96
114
|
}
|
|
97
115
|
}
|
|
98
116
|
const sortedOverlays = Object.keys(overlay)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const saidify_1 = require("saidify");
|
|
7
|
+
const canonical_js_1 = __importDefault(require("../../../utils/canonical.js"));
|
|
8
|
+
const types_js_1 = require("../../../types/types.js");
|
|
9
|
+
class ArrayDelimiter {
|
|
10
|
+
constructor(dynOverlay, capture_base_digest) {
|
|
11
|
+
if (!dynOverlay) {
|
|
12
|
+
throw new Error('a dynamic extension overlay are required');
|
|
13
|
+
}
|
|
14
|
+
if (!capture_base_digest) {
|
|
15
|
+
throw new Error('capture_base_digest is required');
|
|
16
|
+
}
|
|
17
|
+
this.dynOverlay = dynOverlay;
|
|
18
|
+
this.capture_base_digest = capture_base_digest;
|
|
19
|
+
}
|
|
20
|
+
GetAttributesConfig() {
|
|
21
|
+
const attributes = this.dynOverlay.attributes || {};
|
|
22
|
+
const canonicalized = (0, canonical_js_1.default)(attributes);
|
|
23
|
+
const sorted = JSON.parse(canonicalized);
|
|
24
|
+
return sorted;
|
|
25
|
+
}
|
|
26
|
+
toJSON() {
|
|
27
|
+
return {
|
|
28
|
+
d: '',
|
|
29
|
+
capture_base: this.capture_base_digest,
|
|
30
|
+
type: `community/overlays/adc/array_delimiter/${types_js_1.OVERLAY_VERSION}`,
|
|
31
|
+
attributes: this.GetAttributesConfig()
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
Saidifying() {
|
|
35
|
+
const [, sad] = (0, saidify_1.saidify)(this.toJSON());
|
|
36
|
+
return sad;
|
|
37
|
+
}
|
|
38
|
+
GenerateOverlay() {
|
|
39
|
+
return JSON.stringify(this.Saidifying());
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.default = ArrayDelimiter;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const saidify_1 = require("saidify");
|
|
4
|
+
const types_js_1 = require("../../../types/types.js");
|
|
5
|
+
class DecimalSeparator {
|
|
6
|
+
constructor(dynOverlay, capture_base_digest) {
|
|
7
|
+
if (!dynOverlay) {
|
|
8
|
+
throw new Error('a dynamic extension overlay are required');
|
|
9
|
+
}
|
|
10
|
+
if (!capture_base_digest) {
|
|
11
|
+
throw new Error('capture_base_digest is required');
|
|
12
|
+
}
|
|
13
|
+
this.dynOverlay = dynOverlay;
|
|
14
|
+
this.capture_base_digest = capture_base_digest;
|
|
15
|
+
}
|
|
16
|
+
GetDecimalSeparator() {
|
|
17
|
+
const sep = this.dynOverlay.decimal_separator;
|
|
18
|
+
if (typeof sep !== 'string' || sep === '') {
|
|
19
|
+
throw new Error('decimal_separator must be a non-empty string');
|
|
20
|
+
}
|
|
21
|
+
return sep;
|
|
22
|
+
}
|
|
23
|
+
toJSON() {
|
|
24
|
+
return {
|
|
25
|
+
d: '',
|
|
26
|
+
capture_base: this.capture_base_digest,
|
|
27
|
+
type: `community/overlays/adc/decimal_separator/${types_js_1.OVERLAY_VERSION}`,
|
|
28
|
+
delimiter: this.GetDecimalSeparator()
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
Saidifying() {
|
|
32
|
+
const [, sad] = (0, saidify_1.saidify)(this.toJSON());
|
|
33
|
+
return sad;
|
|
34
|
+
}
|
|
35
|
+
GenerateOverlay() {
|
|
36
|
+
return JSON.stringify(this.Saidifying());
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.default = DecimalSeparator;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const saidify_1 = require("saidify");
|
|
4
|
+
const types_js_1 = require("../../../types/types.js");
|
|
5
|
+
class FileDelimiter {
|
|
6
|
+
constructor(dynOverlay, capture_base_digest) {
|
|
7
|
+
if (!dynOverlay) {
|
|
8
|
+
throw new Error('a dynamic extension overlay are required');
|
|
9
|
+
}
|
|
10
|
+
if (!capture_base_digest) {
|
|
11
|
+
throw new Error('capture_base_digest is required');
|
|
12
|
+
}
|
|
13
|
+
this.dynOverlay = dynOverlay;
|
|
14
|
+
this.capture_base_digest = capture_base_digest;
|
|
15
|
+
}
|
|
16
|
+
GetDelimiter() {
|
|
17
|
+
const delim = this.dynOverlay.delimiter;
|
|
18
|
+
if (typeof delim !== 'string' || delim === '') {
|
|
19
|
+
throw new Error('delimiter must be a non-empty string');
|
|
20
|
+
}
|
|
21
|
+
return delim;
|
|
22
|
+
}
|
|
23
|
+
GetEscapeChar() {
|
|
24
|
+
const v = this.dynOverlay.escape_char;
|
|
25
|
+
if (v === undefined)
|
|
26
|
+
return undefined;
|
|
27
|
+
if (typeof v !== 'string') {
|
|
28
|
+
throw new Error('escape_char must be a string when provided');
|
|
29
|
+
}
|
|
30
|
+
return v;
|
|
31
|
+
}
|
|
32
|
+
GetQuoteChar() {
|
|
33
|
+
const v = this.dynOverlay.quote_char;
|
|
34
|
+
if (v === undefined)
|
|
35
|
+
return undefined;
|
|
36
|
+
if (typeof v !== 'string') {
|
|
37
|
+
throw new Error('quote_char must be a string when provided');
|
|
38
|
+
}
|
|
39
|
+
return v;
|
|
40
|
+
}
|
|
41
|
+
GetLineTerminator() {
|
|
42
|
+
const v = this.dynOverlay.line_terminator;
|
|
43
|
+
if (v === undefined)
|
|
44
|
+
return undefined;
|
|
45
|
+
if (typeof v !== 'string') {
|
|
46
|
+
throw new Error('line_terminator must be a string when provided');
|
|
47
|
+
}
|
|
48
|
+
return v;
|
|
49
|
+
}
|
|
50
|
+
GetDataStartRow() {
|
|
51
|
+
const v = this.dynOverlay.data_start_row;
|
|
52
|
+
if (v === undefined)
|
|
53
|
+
return undefined;
|
|
54
|
+
if (typeof v !== 'number' || !Number.isFinite(v) || v < 1) {
|
|
55
|
+
throw new Error('data_start_row must be a positive integer when provided');
|
|
56
|
+
}
|
|
57
|
+
return v;
|
|
58
|
+
}
|
|
59
|
+
toJSON() {
|
|
60
|
+
const json = {
|
|
61
|
+
d: '',
|
|
62
|
+
capture_base: this.capture_base_digest,
|
|
63
|
+
type: `community/overlays/adc/file_delimiter/${types_js_1.OVERLAY_VERSION}`,
|
|
64
|
+
delimiter: this.GetDelimiter(),
|
|
65
|
+
};
|
|
66
|
+
const escapeChar = this.GetEscapeChar();
|
|
67
|
+
const quoteChar = this.GetQuoteChar();
|
|
68
|
+
const lineTerminator = this.GetLineTerminator();
|
|
69
|
+
const dataStartRow = this.GetDataStartRow();
|
|
70
|
+
if (escapeChar !== undefined)
|
|
71
|
+
json.escape_char = escapeChar;
|
|
72
|
+
if (dataStartRow !== undefined)
|
|
73
|
+
json.data_start_row = dataStartRow;
|
|
74
|
+
if (lineTerminator !== undefined)
|
|
75
|
+
json.line_terminator = lineTerminator;
|
|
76
|
+
if (quoteChar !== undefined)
|
|
77
|
+
json.quote_char = quoteChar;
|
|
78
|
+
return json;
|
|
79
|
+
}
|
|
80
|
+
Saidifying() {
|
|
81
|
+
const [, sad] = (0, saidify_1.saidify)(this.toJSON());
|
|
82
|
+
return sad;
|
|
83
|
+
}
|
|
84
|
+
GenerateOverlay() {
|
|
85
|
+
return JSON.stringify(this.Saidifying());
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.default = FileDelimiter;
|
|
@@ -92,6 +92,38 @@ class FormOverlay {
|
|
|
92
92
|
if (config.input_type) {
|
|
93
93
|
newConfig.input_type = config.input_type;
|
|
94
94
|
}
|
|
95
|
+
if (config.description) {
|
|
96
|
+
if (typeof config.description === 'object' && config.description !== null) {
|
|
97
|
+
const description = config.description[this.language] || '';
|
|
98
|
+
if (description) {
|
|
99
|
+
newConfig.description = description;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
newConfig.description = config.description;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (config.reference_button_text !== undefined && config.reference_button_text !== null) {
|
|
107
|
+
if (typeof config.reference_button_text === 'string') {
|
|
108
|
+
const btn = config.reference_button_text.trim();
|
|
109
|
+
if (btn) {
|
|
110
|
+
newConfig.reference_button_text = btn;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else if (typeof config.reference_button_text === 'object' &&
|
|
114
|
+
!Array.isArray(config.reference_button_text)) {
|
|
115
|
+
const raw = config.reference_button_text[this.language] ||
|
|
116
|
+
Object.values(config.reference_button_text)[0] ||
|
|
117
|
+
'';
|
|
118
|
+
const btn = String(raw).trim();
|
|
119
|
+
if (btn) {
|
|
120
|
+
newConfig.reference_button_text = btn;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (Array.isArray(config.showing_attribute)) {
|
|
125
|
+
newConfig.showing_attribute = [...config.showing_attribute];
|
|
126
|
+
}
|
|
95
127
|
languageSpecificArguments[attributeName] = newConfig;
|
|
96
128
|
}
|
|
97
129
|
return {
|
|
@@ -10,6 +10,9 @@ import Range from './state/overlays/range.js';
|
|
|
10
10
|
import Sensitive from './state/overlays/sensitive.js';
|
|
11
11
|
import AttributeFraming from './state/overlays/framing/attribute_framing.js';
|
|
12
12
|
import Separator from './state/overlays/separator.js';
|
|
13
|
+
import DecimalSeparator from './state/overlays/decimal_separator.js';
|
|
14
|
+
import FileDelimiter from './state/overlays/file_delimiter.js';
|
|
15
|
+
import ArrayDelimiter from './state/overlays/array_delimiter.js';
|
|
13
16
|
import { ocabundleDigest, getOcaBundleFromDeps, getDigest, isOcaBundleWithDeps } from '../utils/helpers.js';
|
|
14
17
|
import { saidify } from 'saidify';
|
|
15
18
|
const ADC_COMMUNITY = 'adc';
|
|
@@ -79,13 +82,28 @@ export class Overlay {
|
|
|
79
82
|
const separator_ov = separator_instance.GenerateOverlay();
|
|
80
83
|
overlay['separator'] = JSON.parse(separator_ov);
|
|
81
84
|
}
|
|
85
|
+
else if (ov_type === 'decimal_separator_overlay') {
|
|
86
|
+
const decimal_instance = new DecimalSeparator(this._overlay.decimal_separator_overlay, this._capture_base_digest);
|
|
87
|
+
const decimal_ov = decimal_instance.GenerateOverlay();
|
|
88
|
+
overlay['decimal_separator'] = JSON.parse(decimal_ov);
|
|
89
|
+
}
|
|
90
|
+
else if (ov_type === 'file_delimiter_overlay') {
|
|
91
|
+
const file_instance = new FileDelimiter(this._overlay.file_delimiter_overlay, this._capture_base_digest);
|
|
92
|
+
const file_ov = file_instance.GenerateOverlay();
|
|
93
|
+
overlay['file_delimiter'] = JSON.parse(file_ov);
|
|
94
|
+
}
|
|
95
|
+
else if (ov_type === 'array_delimiter_overlay') {
|
|
96
|
+
const array_instance = new ArrayDelimiter(this._overlay.array_delimiter_overlay, this._capture_base_digest);
|
|
97
|
+
const array_ov = array_instance.GenerateOverlay();
|
|
98
|
+
overlay['array_delimiter'] = JSON.parse(array_ov);
|
|
99
|
+
}
|
|
82
100
|
else if (ov_type === 'attribute_framing_overlay') {
|
|
83
101
|
const attribute_framing_instance = new AttributeFraming(this._overlay.attribute_framing_overlay, this._capture_base_digest);
|
|
84
102
|
const attribute_framing_ov = attribute_framing_instance.GenerateOverlay();
|
|
85
103
|
overlay['attribute_framing'] = JSON.parse(attribute_framing_ov);
|
|
86
104
|
}
|
|
87
105
|
else {
|
|
88
|
-
throw new Error(`Unsupported overaly type ${ov_type}. Supported extension overlays at ADC are [ ordering_overlay, unit_framing_overlay, range_overlay, example_overlay, form_overlay, sensitive_overlay, separator_overlay, attribute_framing_overlay ]`);
|
|
106
|
+
throw new Error(`Unsupported overaly type ${ov_type}. Supported extension overlays at ADC are [ ordering_overlay, unit_framing_overlay, range_overlay, example_overlay, form_overlay, sensitive_overlay, separator_overlay, attribute_framing_overlay, decimal_separator_overlay, file_delimiter_overlay, array_delimiter_overlay ]`);
|
|
89
107
|
}
|
|
90
108
|
}
|
|
91
109
|
const sortedOverlays = Object.keys(overlay)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { saidify } from 'saidify';
|
|
2
|
+
import canonicalize from '../../../utils/canonical.js';
|
|
3
|
+
import { OVERLAY_VERSION } from '../../../types/types.js';
|
|
4
|
+
class ArrayDelimiter {
|
|
5
|
+
constructor(dynOverlay, capture_base_digest) {
|
|
6
|
+
if (!dynOverlay) {
|
|
7
|
+
throw new Error('a dynamic extension overlay are required');
|
|
8
|
+
}
|
|
9
|
+
if (!capture_base_digest) {
|
|
10
|
+
throw new Error('capture_base_digest is required');
|
|
11
|
+
}
|
|
12
|
+
this.dynOverlay = dynOverlay;
|
|
13
|
+
this.capture_base_digest = capture_base_digest;
|
|
14
|
+
}
|
|
15
|
+
GetAttributesConfig() {
|
|
16
|
+
const attributes = this.dynOverlay.attributes || {};
|
|
17
|
+
const canonicalized = canonicalize(attributes);
|
|
18
|
+
const sorted = JSON.parse(canonicalized);
|
|
19
|
+
return sorted;
|
|
20
|
+
}
|
|
21
|
+
toJSON() {
|
|
22
|
+
return {
|
|
23
|
+
d: '',
|
|
24
|
+
capture_base: this.capture_base_digest,
|
|
25
|
+
type: `community/overlays/adc/array_delimiter/${OVERLAY_VERSION}`,
|
|
26
|
+
attributes: this.GetAttributesConfig()
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
Saidifying() {
|
|
30
|
+
const [, sad] = saidify(this.toJSON());
|
|
31
|
+
return sad;
|
|
32
|
+
}
|
|
33
|
+
GenerateOverlay() {
|
|
34
|
+
return JSON.stringify(this.Saidifying());
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export default ArrayDelimiter;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { saidify } from 'saidify';
|
|
2
|
+
import { OVERLAY_VERSION } from '../../../types/types.js';
|
|
3
|
+
class DecimalSeparator {
|
|
4
|
+
constructor(dynOverlay, capture_base_digest) {
|
|
5
|
+
if (!dynOverlay) {
|
|
6
|
+
throw new Error('a dynamic extension overlay are required');
|
|
7
|
+
}
|
|
8
|
+
if (!capture_base_digest) {
|
|
9
|
+
throw new Error('capture_base_digest is required');
|
|
10
|
+
}
|
|
11
|
+
this.dynOverlay = dynOverlay;
|
|
12
|
+
this.capture_base_digest = capture_base_digest;
|
|
13
|
+
}
|
|
14
|
+
GetDecimalSeparator() {
|
|
15
|
+
const sep = this.dynOverlay.decimal_separator;
|
|
16
|
+
if (typeof sep !== 'string' || sep === '') {
|
|
17
|
+
throw new Error('decimal_separator must be a non-empty string');
|
|
18
|
+
}
|
|
19
|
+
return sep;
|
|
20
|
+
}
|
|
21
|
+
toJSON() {
|
|
22
|
+
return {
|
|
23
|
+
d: '',
|
|
24
|
+
capture_base: this.capture_base_digest,
|
|
25
|
+
type: `community/overlays/adc/decimal_separator/${OVERLAY_VERSION}`,
|
|
26
|
+
delimiter: this.GetDecimalSeparator()
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
Saidifying() {
|
|
30
|
+
const [, sad] = saidify(this.toJSON());
|
|
31
|
+
return sad;
|
|
32
|
+
}
|
|
33
|
+
GenerateOverlay() {
|
|
34
|
+
return JSON.stringify(this.Saidifying());
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export default DecimalSeparator;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { saidify } from 'saidify';
|
|
2
|
+
import { OVERLAY_VERSION } from '../../../types/types.js';
|
|
3
|
+
class FileDelimiter {
|
|
4
|
+
constructor(dynOverlay, capture_base_digest) {
|
|
5
|
+
if (!dynOverlay) {
|
|
6
|
+
throw new Error('a dynamic extension overlay are required');
|
|
7
|
+
}
|
|
8
|
+
if (!capture_base_digest) {
|
|
9
|
+
throw new Error('capture_base_digest is required');
|
|
10
|
+
}
|
|
11
|
+
this.dynOverlay = dynOverlay;
|
|
12
|
+
this.capture_base_digest = capture_base_digest;
|
|
13
|
+
}
|
|
14
|
+
GetDelimiter() {
|
|
15
|
+
const delim = this.dynOverlay.delimiter;
|
|
16
|
+
if (typeof delim !== 'string' || delim === '') {
|
|
17
|
+
throw new Error('delimiter must be a non-empty string');
|
|
18
|
+
}
|
|
19
|
+
return delim;
|
|
20
|
+
}
|
|
21
|
+
GetEscapeChar() {
|
|
22
|
+
const v = this.dynOverlay.escape_char;
|
|
23
|
+
if (v === undefined)
|
|
24
|
+
return undefined;
|
|
25
|
+
if (typeof v !== 'string') {
|
|
26
|
+
throw new Error('escape_char must be a string when provided');
|
|
27
|
+
}
|
|
28
|
+
return v;
|
|
29
|
+
}
|
|
30
|
+
GetQuoteChar() {
|
|
31
|
+
const v = this.dynOverlay.quote_char;
|
|
32
|
+
if (v === undefined)
|
|
33
|
+
return undefined;
|
|
34
|
+
if (typeof v !== 'string') {
|
|
35
|
+
throw new Error('quote_char must be a string when provided');
|
|
36
|
+
}
|
|
37
|
+
return v;
|
|
38
|
+
}
|
|
39
|
+
GetLineTerminator() {
|
|
40
|
+
const v = this.dynOverlay.line_terminator;
|
|
41
|
+
if (v === undefined)
|
|
42
|
+
return undefined;
|
|
43
|
+
if (typeof v !== 'string') {
|
|
44
|
+
throw new Error('line_terminator must be a string when provided');
|
|
45
|
+
}
|
|
46
|
+
return v;
|
|
47
|
+
}
|
|
48
|
+
GetDataStartRow() {
|
|
49
|
+
const v = this.dynOverlay.data_start_row;
|
|
50
|
+
if (v === undefined)
|
|
51
|
+
return undefined;
|
|
52
|
+
if (typeof v !== 'number' || !Number.isFinite(v) || v < 1) {
|
|
53
|
+
throw new Error('data_start_row must be a positive integer when provided');
|
|
54
|
+
}
|
|
55
|
+
return v;
|
|
56
|
+
}
|
|
57
|
+
toJSON() {
|
|
58
|
+
const json = {
|
|
59
|
+
d: '',
|
|
60
|
+
capture_base: this.capture_base_digest,
|
|
61
|
+
type: `community/overlays/adc/file_delimiter/${OVERLAY_VERSION}`,
|
|
62
|
+
delimiter: this.GetDelimiter(),
|
|
63
|
+
};
|
|
64
|
+
const escapeChar = this.GetEscapeChar();
|
|
65
|
+
const quoteChar = this.GetQuoteChar();
|
|
66
|
+
const lineTerminator = this.GetLineTerminator();
|
|
67
|
+
const dataStartRow = this.GetDataStartRow();
|
|
68
|
+
if (escapeChar !== undefined)
|
|
69
|
+
json.escape_char = escapeChar;
|
|
70
|
+
if (dataStartRow !== undefined)
|
|
71
|
+
json.data_start_row = dataStartRow;
|
|
72
|
+
if (lineTerminator !== undefined)
|
|
73
|
+
json.line_terminator = lineTerminator;
|
|
74
|
+
if (quoteChar !== undefined)
|
|
75
|
+
json.quote_char = quoteChar;
|
|
76
|
+
return json;
|
|
77
|
+
}
|
|
78
|
+
Saidifying() {
|
|
79
|
+
const [, sad] = saidify(this.toJSON());
|
|
80
|
+
return sad;
|
|
81
|
+
}
|
|
82
|
+
GenerateOverlay() {
|
|
83
|
+
return JSON.stringify(this.Saidifying());
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export default FileDelimiter;
|
|
@@ -87,6 +87,38 @@ class FormOverlay {
|
|
|
87
87
|
if (config.input_type) {
|
|
88
88
|
newConfig.input_type = config.input_type;
|
|
89
89
|
}
|
|
90
|
+
if (config.description) {
|
|
91
|
+
if (typeof config.description === 'object' && config.description !== null) {
|
|
92
|
+
const description = config.description[this.language] || '';
|
|
93
|
+
if (description) {
|
|
94
|
+
newConfig.description = description;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
newConfig.description = config.description;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (config.reference_button_text !== undefined && config.reference_button_text !== null) {
|
|
102
|
+
if (typeof config.reference_button_text === 'string') {
|
|
103
|
+
const btn = config.reference_button_text.trim();
|
|
104
|
+
if (btn) {
|
|
105
|
+
newConfig.reference_button_text = btn;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else if (typeof config.reference_button_text === 'object' &&
|
|
109
|
+
!Array.isArray(config.reference_button_text)) {
|
|
110
|
+
const raw = config.reference_button_text[this.language] ||
|
|
111
|
+
Object.values(config.reference_button_text)[0] ||
|
|
112
|
+
'';
|
|
113
|
+
const btn = String(raw).trim();
|
|
114
|
+
if (btn) {
|
|
115
|
+
newConfig.reference_button_text = btn;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (Array.isArray(config.showing_attribute)) {
|
|
120
|
+
newConfig.showing_attribute = [...config.showing_attribute];
|
|
121
|
+
}
|
|
90
122
|
languageSpecificArguments[attributeName] = newConfig;
|
|
91
123
|
}
|
|
92
124
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/oca_extensions/extensions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/oca_extensions/extensions.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAQzC,MAAM,WAAW,kBAAkB;IACjC,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,CAAC,aAAa,EAAE,IAAI,GAAG,UAAU,EAAE,CAAC;KACrC,CAAC;CACH;AAOD,MAAM,WAAW,eAAe;IAC9B,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,CAAC,aAAa,EAAE,IAAI,GAAG,UAAU,CAAC;KACnC,CAAC;CACH;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,qBAAqB,CAAqB;IAC3C,eAAe,EAAE,eAAe,CAAC;gBAE5B,kBAAkB,EAAE,kBAAkB;IAKlD,OAAO,CAAC,mBAAmB;IAiB3B,IAAW,WAAW,IAAI,eAAe,CAExC;CACF;AAKD,MAAM,WAAW,UAAU;IACzB,CAAC,OAAO,EAAE,MAAM,GAAG;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED,qBAAa,OAAQ,YAAW,UAAU;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,iBAAiB,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM;IAQ/D,eAAe,IAAI,QAAQ,CAAC,UAAU,CAAC;CAgE/C;AAiFD,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,IAAI,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAU,YAAW,UAAU;IAC1C,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAM;IACf,UAAU,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,KAAM;IACvB,OAAO,CAAC,mBAAmB,CAAS;gBAExB,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM;IAczF,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,UAAU;IAKX,iBAAiB,IAAI,GAAG;CAGhC;AAED,KAAK,gBAAgB,GAAG;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,CAAC;AAE9F,cAAM,YAAY;IACT,eAAe,EAAE,gBAAgB,CAAC;IAClC,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,cAAc,CAAC;gBAE3B,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,EAAE,GAAG;IAMrE,IAAW,kBAAkB,IAAI,gBAAgB,CA4BhD;CACF;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DynOverlay } from '../../extensions.js';
|
|
2
|
+
interface IArrayDelimiter {
|
|
3
|
+
dynOverlay: DynOverlay;
|
|
4
|
+
GenerateOverlay(): string;
|
|
5
|
+
}
|
|
6
|
+
declare class ArrayDelimiter implements IArrayDelimiter {
|
|
7
|
+
dynOverlay: DynOverlay;
|
|
8
|
+
private capture_base_digest;
|
|
9
|
+
constructor(dynOverlay: DynOverlay, capture_base_digest: string);
|
|
10
|
+
private GetAttributesConfig;
|
|
11
|
+
private toJSON;
|
|
12
|
+
private Saidifying;
|
|
13
|
+
GenerateOverlay(): string;
|
|
14
|
+
}
|
|
15
|
+
export default ArrayDelimiter;
|
|
16
|
+
//# sourceMappingURL=array_delimiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array_delimiter.d.ts","sourceRoot":"","sources":["../../../../../src/oca_extensions/state/overlays/array_delimiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKjD,UAAU,eAAe;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,IAAI,MAAM,CAAC;CAC3B;AAED,cAAM,cAAe,YAAW,eAAe;IACtC,UAAU,EAAE,UAAU,CAAC;IAC9B,OAAO,CAAC,mBAAmB,CAAS;gBAExB,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM;IAW/D,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,UAAU;IAKX,eAAe,IAAI,MAAM;CAGjC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DynOverlay } from '../../extensions.js';
|
|
2
|
+
interface IDecimalSeparator {
|
|
3
|
+
dynOverlay: DynOverlay;
|
|
4
|
+
GenerateOverlay(): string;
|
|
5
|
+
}
|
|
6
|
+
declare class DecimalSeparator implements IDecimalSeparator {
|
|
7
|
+
dynOverlay: DynOverlay;
|
|
8
|
+
private capture_base_digest;
|
|
9
|
+
constructor(dynOverlay: DynOverlay, capture_base_digest: string);
|
|
10
|
+
private GetDecimalSeparator;
|
|
11
|
+
private toJSON;
|
|
12
|
+
private Saidifying;
|
|
13
|
+
GenerateOverlay(): string;
|
|
14
|
+
}
|
|
15
|
+
export default DecimalSeparator;
|
|
16
|
+
//# sourceMappingURL=decimal_separator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimal_separator.d.ts","sourceRoot":"","sources":["../../../../../src/oca_extensions/state/overlays/decimal_separator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIjD,UAAU,iBAAiB;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,IAAI,MAAM,CAAC;CAC3B;AAED,cAAM,gBAAiB,YAAW,iBAAiB;IAC1C,UAAU,EAAE,UAAU,CAAC;IAC9B,OAAO,CAAC,mBAAmB,CAAS;gBAExB,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM;IAW/D,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,UAAU;IAKX,eAAe,IAAI,MAAM;CAGjC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DynOverlay } from '../../extensions.js';
|
|
2
|
+
interface IFileDelimiter {
|
|
3
|
+
dynOverlay: DynOverlay;
|
|
4
|
+
GenerateOverlay(): string;
|
|
5
|
+
}
|
|
6
|
+
declare class FileDelimiter implements IFileDelimiter {
|
|
7
|
+
dynOverlay: DynOverlay;
|
|
8
|
+
private capture_base_digest;
|
|
9
|
+
constructor(dynOverlay: DynOverlay, capture_base_digest: string);
|
|
10
|
+
private GetDelimiter;
|
|
11
|
+
private GetEscapeChar;
|
|
12
|
+
private GetQuoteChar;
|
|
13
|
+
private GetLineTerminator;
|
|
14
|
+
private GetDataStartRow;
|
|
15
|
+
private toJSON;
|
|
16
|
+
private Saidifying;
|
|
17
|
+
GenerateOverlay(): string;
|
|
18
|
+
}
|
|
19
|
+
export default FileDelimiter;
|
|
20
|
+
//# sourceMappingURL=file_delimiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file_delimiter.d.ts","sourceRoot":"","sources":["../../../../../src/oca_extensions/state/overlays/file_delimiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIjD,UAAU,cAAc;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,IAAI,MAAM,CAAC;CAC3B;AAED,cAAM,aAAc,YAAW,cAAc;IACpC,UAAU,EAAE,UAAU,CAAC;IAC9B,OAAO,CAAC,mBAAmB,CAAS;gBAExB,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM;IAW/D,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,MAAM;IAoBd,OAAO,CAAC,UAAU;IAKX,eAAe,IAAI,MAAM;CAGjC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../../src/oca_extensions/state/overlays/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKjD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,mBAAmB,IAAI,MAAM,CAAC;CAC/B;AAED,cAAM,WAAY,YAAW,YAAY;IAChC,UAAU,EAAE,UAAU,CAAC;IAC9B,OAAO,CAAC,mBAAmB,CAAS;gBAExB,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM;IAW/D,IAAW,QAAQ,IAAI,GAAG,CAEzB;IAED,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../../src/oca_extensions/state/overlays/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKjD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,mBAAmB,IAAI,MAAM,CAAC;CAC/B;AAED,cAAM,WAAY,YAAW,YAAY;IAChC,UAAU,EAAE,UAAU,CAAC;IAC9B,OAAO,CAAC,mBAAmB,CAAS;gBAExB,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM;IAW/D,IAAW,QAAQ,IAAI,GAAG,CAEzB;IAED,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,cAAc;IAwFtB,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,UAAU;IAMX,mBAAmB,IAAI,MAAM;WAItB,eAAe,CAAC,UAAU,EAAE;QAAE,aAAa,EAAE,GAAG,EAAE,CAAA;KAAE,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM;CAuBzG;AAED,eAAe,WAAW,CAAC"}
|