@aidc-toolkit/app-extension 1.0.23-beta → 1.0.24-beta

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 (126) hide show
  1. package/dist/index.cjs +3414 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +1747 -0
  4. package/dist/index.d.ts +1747 -26
  5. package/dist/index.js +3379 -9
  6. package/dist/index.js.map +1 -1
  7. package/package.json +7 -10
  8. package/src/app-extension.ts +3 -10
  9. package/src/app-utility-proxy.ts +5 -4
  10. package/src/descriptor.ts +12 -8
  11. package/src/generator/descriptor.ts +1 -1
  12. package/src/generator/generator.ts +4 -4
  13. package/src/generator/index.ts +2 -2
  14. package/src/generator/locale-resources-generator.ts +14 -10
  15. package/src/gs1/character-set-proxy.ts +5 -5
  16. package/src/gs1/check-proxy.ts +3 -3
  17. package/src/gs1/identifier-proxy.ts +9 -8
  18. package/src/gs1/index.ts +3 -3
  19. package/src/index.ts +9 -9
  20. package/src/lib-proxy.ts +3 -3
  21. package/src/locale/i18n.ts +3 -5
  22. package/src/locale/i18next.d.ts +1 -1
  23. package/{dist/types.d.ts → src/type.ts} +10 -38
  24. package/src/utility/character-set-descriptor.ts +1 -1
  25. package/src/utility/character-set-proxy.ts +9 -8
  26. package/src/utility/index.ts +3 -3
  27. package/src/utility/reg-exp-proxy.ts +5 -4
  28. package/src/utility/string-descriptor.ts +1 -1
  29. package/src/utility/string-proxy.ts +2 -2
  30. package/src/utility/transformer-descriptor.ts +1 -1
  31. package/src/utility/transformer-proxy.ts +5 -4
  32. package/tsup.config.ts +3 -0
  33. package/dist/app-extension.d.ts +0 -169
  34. package/dist/app-extension.d.ts.map +0 -1
  35. package/dist/app-extension.js +0 -148
  36. package/dist/app-extension.js.map +0 -1
  37. package/dist/app-utility-proxy.d.ts +0 -66
  38. package/dist/app-utility-proxy.d.ts.map +0 -1
  39. package/dist/app-utility-proxy.js +0 -233
  40. package/dist/app-utility-proxy.js.map +0 -1
  41. package/dist/descriptor.d.ts +0 -172
  42. package/dist/descriptor.d.ts.map +0 -1
  43. package/dist/descriptor.js +0 -174
  44. package/dist/descriptor.js.map +0 -1
  45. package/dist/generator/descriptor.d.ts +0 -107
  46. package/dist/generator/descriptor.d.ts.map +0 -1
  47. package/dist/generator/descriptor.js +0 -2
  48. package/dist/generator/descriptor.js.map +0 -1
  49. package/dist/generator/generator.d.ts +0 -120
  50. package/dist/generator/generator.d.ts.map +0 -1
  51. package/dist/generator/generator.js +0 -213
  52. package/dist/generator/generator.js.map +0 -1
  53. package/dist/generator/index.d.ts +0 -3
  54. package/dist/generator/index.d.ts.map +0 -1
  55. package/dist/generator/index.js +0 -2
  56. package/dist/generator/index.js.map +0 -1
  57. package/dist/gs1/character-set-proxy.d.ts +0 -10
  58. package/dist/gs1/character-set-proxy.d.ts.map +0 -1
  59. package/dist/gs1/character-set-proxy.js +0 -47
  60. package/dist/gs1/character-set-proxy.js.map +0 -1
  61. package/dist/gs1/check-proxy.d.ts +0 -11
  62. package/dist/gs1/check-proxy.d.ts.map +0 -1
  63. package/dist/gs1/check-proxy.js +0 -120
  64. package/dist/gs1/check-proxy.js.map +0 -1
  65. package/dist/gs1/identifier-proxy.d.ts +0 -136
  66. package/dist/gs1/identifier-proxy.d.ts.map +0 -1
  67. package/dist/gs1/identifier-proxy.js +0 -782
  68. package/dist/gs1/identifier-proxy.js.map +0 -1
  69. package/dist/gs1/index.d.ts +0 -4
  70. package/dist/gs1/index.d.ts.map +0 -1
  71. package/dist/gs1/index.js +0 -4
  72. package/dist/gs1/index.js.map +0 -1
  73. package/dist/index.d.ts.map +0 -1
  74. package/dist/lib-proxy.d.ts +0 -135
  75. package/dist/lib-proxy.d.ts.map +0 -1
  76. package/dist/lib-proxy.js +0 -235
  77. package/dist/lib-proxy.js.map +0 -1
  78. package/dist/locale/en/locale-resources.d.ts +0 -617
  79. package/dist/locale/en/locale-resources.d.ts.map +0 -1
  80. package/dist/locale/en/locale-resources.js +0 -616
  81. package/dist/locale/en/locale-resources.js.map +0 -1
  82. package/dist/locale/fr/locale-resources.d.ts +0 -617
  83. package/dist/locale/fr/locale-resources.d.ts.map +0 -1
  84. package/dist/locale/fr/locale-resources.js +0 -616
  85. package/dist/locale/fr/locale-resources.js.map +0 -1
  86. package/dist/locale/i18n.d.ts +0 -27
  87. package/dist/locale/i18n.d.ts.map +0 -1
  88. package/dist/locale/i18n.js +0 -39
  89. package/dist/locale/i18n.js.map +0 -1
  90. package/dist/types.d.ts.map +0 -1
  91. package/dist/types.js +0 -13
  92. package/dist/types.js.map +0 -1
  93. package/dist/utility/character-set-descriptor.d.ts +0 -6
  94. package/dist/utility/character-set-descriptor.d.ts.map +0 -1
  95. package/dist/utility/character-set-descriptor.js +0 -28
  96. package/dist/utility/character-set-descriptor.js.map +0 -1
  97. package/dist/utility/character-set-proxy.d.ts +0 -26
  98. package/dist/utility/character-set-proxy.d.ts.map +0 -1
  99. package/dist/utility/character-set-proxy.js +0 -167
  100. package/dist/utility/character-set-proxy.js.map +0 -1
  101. package/dist/utility/index.d.ts +0 -4
  102. package/dist/utility/index.d.ts.map +0 -1
  103. package/dist/utility/index.js +0 -4
  104. package/dist/utility/index.js.map +0 -1
  105. package/dist/utility/reg-exp-proxy.d.ts +0 -7
  106. package/dist/utility/reg-exp-proxy.d.ts.map +0 -1
  107. package/dist/utility/reg-exp-proxy.js +0 -61
  108. package/dist/utility/reg-exp-proxy.js.map +0 -1
  109. package/dist/utility/string-descriptor.d.ts +0 -4
  110. package/dist/utility/string-descriptor.d.ts.map +0 -1
  111. package/dist/utility/string-descriptor.js +0 -12
  112. package/dist/utility/string-descriptor.js.map +0 -1
  113. package/dist/utility/string-proxy.d.ts +0 -8
  114. package/dist/utility/string-proxy.d.ts.map +0 -1
  115. package/dist/utility/string-proxy.js +0 -12
  116. package/dist/utility/string-proxy.js.map +0 -1
  117. package/dist/utility/transformer-descriptor.d.ts +0 -6
  118. package/dist/utility/transformer-descriptor.d.ts.map +0 -1
  119. package/dist/utility/transformer-descriptor.js +0 -24
  120. package/dist/utility/transformer-descriptor.js.map +0 -1
  121. package/dist/utility/transformer-proxy.d.ts +0 -8
  122. package/dist/utility/transformer-proxy.d.ts.map +0 -1
  123. package/dist/utility/transformer-proxy.js +0 -74
  124. package/dist/utility/transformer-proxy.js.map +0 -1
  125. package/src/generator/logger.ts +0 -45
  126. package/src/types.ts +0 -144
@@ -1,169 +0,0 @@
1
- import type { ErrorExtends, ResultError, SheetAddress, SheetRange, TypedAsyncFunction, TypedFunction, TypedSyncFunction } from "./types.js";
2
- /**
3
- * Application extension.
4
- *
5
- * @template TBigInt
6
- * Type to which big integer is mapped.
7
- *
8
- * @template ThrowError
9
- * If true, errors are reported through the throw/catch mechanism.
10
- *
11
- * @template TError
12
- * Error type.
13
- */
14
- export declare abstract class AppExtension<ThrowError extends boolean, TError extends ErrorExtends<ThrowError>, TInvocationContext, TBigInt> {
15
- /**
16
- * Application version.
17
- */
18
- private readonly _version;
19
- /**
20
- * Maximum sequence count supported by application.
21
- */
22
- private readonly _maximumSequenceCount;
23
- /**
24
- * If true, errors are reported through the throw/catch mechanism.
25
- */
26
- private readonly _throwError;
27
- /**
28
- * Maximum width supported by application.
29
- */
30
- private _maximumWidth?;
31
- /**
32
- * Maximum height supported by application.
33
- */
34
- private _maximumHeight?;
35
- /**
36
- * Constructor.
37
- *
38
- * @param version
39
- * Application version.
40
- *
41
- * @param maximumSequenceCount
42
- * Maximum sequence count supported by application.
43
- *
44
- * @param throwError
45
- * If true, errors are reported through the throw/catch mechanism.
46
- */
47
- protected constructor(version: string, maximumSequenceCount: number, throwError: ThrowError);
48
- /**
49
- * Get the version.
50
- *
51
- * @returns
52
- * Version.
53
- */
54
- get version(): string;
55
- /**
56
- * Determine if errors are reported through the throw/catch mechanism.
57
- */
58
- get throwError(): ThrowError;
59
- /**
60
- * Get the maximum width supported by the application.
61
- *
62
- * @returns
63
- * Maximum width supported by the application.
64
- */
65
- maximumWidth(): Promise<number>;
66
- /**
67
- * Get the maximum width supported by the application.
68
- *
69
- * @returns
70
- * Maximum width supported by the application.
71
- */
72
- protected abstract getMaximumWidth(): Promise<number>;
73
- /**
74
- * Get the maximum height supported by the application.
75
- *
76
- * @returns
77
- * Maximum height supported by the application.
78
- */
79
- maximumHeight(): Promise<number>;
80
- /**
81
- * Get the maximum height supported by the application.
82
- *
83
- * @returns
84
- * Maximum height supported by the application.
85
- */
86
- protected abstract getMaximumHeight(): Promise<number>;
87
- /**
88
- * Get the sheet address from an invocation context.
89
- *
90
- * @param invocationContext
91
- * Invocation context.
92
- *
93
- * @returns
94
- * Sheet address.
95
- */
96
- abstract getSheetAddress(invocationContext: TInvocationContext): Promise<SheetAddress>;
97
- /**
98
- * Get a parameter range from an invocation context.
99
- *
100
- * @param invocationContext
101
- * Invocation context.
102
- *
103
- * @param parameterNumber
104
- * Parameter number.
105
- *
106
- * @returns
107
- * Sheet range or null if parameter is not a range.
108
- */
109
- abstract getParameterSheetRange(invocationContext: TInvocationContext, parameterNumber: number): Promise<SheetRange | null>;
110
- /**
111
- * Validate a sequence count against the maximum supported by application.
112
- *
113
- * @param sequenceCount
114
- * Sequence count.
115
- */
116
- validateSequenceCount(sequenceCount: number): void;
117
- /**
118
- * Map big integer to another type if necessary.
119
- *
120
- * @param value
121
- * Big integer value to map.
122
- *
123
- * @returns
124
- * Mapped big integer value.
125
- */
126
- abstract mapBigInt(value: bigint): ResultError<TBigInt, ThrowError, TError>;
127
- /**
128
- * Map a range error (thrown by the library) to an application-specific error. If errors are reported through the
129
- * throw/catch mechanism, the implementation may return the range error unmodified if that is supported.
130
- *
131
- * @param rangeError
132
- */
133
- abstract mapRangeError(rangeError: RangeError): TError;
134
- /**
135
- * Handle an error with a message; called when an exception occurs outside the control of the AIDC Toolkit library.
136
- * Implementation must not return, most likely by throwing the message wrapped in an error type.
137
- *
138
- * @param message
139
- * Message to include in the error.
140
- */
141
- abstract handleError(message: string): never;
142
- /**
143
- * Bind a synchronous method and wrap it in a try/catch for comprehensive error handling.
144
- *
145
- * @param thisArg
146
- * The value to be passed as the `this` parameter to the method.
147
- *
148
- * @param method
149
- * Method to call.
150
- *
151
- * @returns
152
- * Function wrapped around the method.
153
- */
154
- bindSync<TMethod extends TypedSyncFunction<TMethod>>(thisArg: ThisParameterType<TMethod>, method: TMethod): TypedFunction<TMethod>;
155
- /**
156
- * Bind an asynchronous method and wrap it in a try/catch for comprehensive error handling.
157
- *
158
- * @param thisArg
159
- * The value to be passed as the `this` parameter to the method.
160
- *
161
- * @param method
162
- * Method to call.
163
- *
164
- * @returns
165
- * Function wrapped around the method.
166
- */
167
- bindAsync<TMethod extends TypedAsyncFunction<TMethod>>(thisArg: ThisParameterType<TMethod>, method: TMethod): TypedAsyncFunction<TMethod>;
168
- }
169
- //# sourceMappingURL=app-extension.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-extension.d.ts","sourceRoot":"","sources":["../src/app-extension.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACpB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,8BAAsB,YAAY,CAAC,UAAU,SAAS,OAAO,EAAE,MAAM,SAAS,YAAY,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE,OAAO;IAC/H;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAE/C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC;;OAEG;IACH,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B;;OAEG;IACH,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC;;;;;;;;;;;OAWG;IACH,SAAS,aAAa,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAM3F;;;;;OAKG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAMrC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAErD;;;;;OAKG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAMtC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAEtD;;;;;;;;OAQG;IACH,QAAQ,CAAC,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAEtF;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAE3H;;;;;OAKG;IACH,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAWlD;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;IAE3E;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IAEtD;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK;IAE5C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IAelI;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,OAAO,SAAS,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;CAU5I"}
@@ -1,148 +0,0 @@
1
- import { i18nextAppExtension } from "./locale/i18n.js";
2
- /**
3
- * Application extension.
4
- *
5
- * @template TBigInt
6
- * Type to which big integer is mapped.
7
- *
8
- * @template ThrowError
9
- * If true, errors are reported through the throw/catch mechanism.
10
- *
11
- * @template TError
12
- * Error type.
13
- */
14
- export class AppExtension {
15
- /**
16
- * Application version.
17
- */
18
- _version;
19
- /**
20
- * Maximum sequence count supported by application.
21
- */
22
- _maximumSequenceCount;
23
- /**
24
- * If true, errors are reported through the throw/catch mechanism.
25
- */
26
- _throwError;
27
- /**
28
- * Maximum width supported by application.
29
- */
30
- _maximumWidth;
31
- /**
32
- * Maximum height supported by application.
33
- */
34
- _maximumHeight;
35
- /**
36
- * Constructor.
37
- *
38
- * @param version
39
- * Application version.
40
- *
41
- * @param maximumSequenceCount
42
- * Maximum sequence count supported by application.
43
- *
44
- * @param throwError
45
- * If true, errors are reported through the throw/catch mechanism.
46
- */
47
- constructor(version, maximumSequenceCount, throwError) {
48
- this._version = version;
49
- this._maximumSequenceCount = maximumSequenceCount;
50
- this._throwError = throwError;
51
- }
52
- /**
53
- * Get the version.
54
- *
55
- * @returns
56
- * Version.
57
- */
58
- get version() {
59
- return this._version;
60
- }
61
- /**
62
- * Determine if errors are reported through the throw/catch mechanism.
63
- */
64
- get throwError() {
65
- return this._throwError;
66
- }
67
- /**
68
- * Get the maximum width supported by the application.
69
- *
70
- * @returns
71
- * Maximum width supported by the application.
72
- */
73
- async maximumWidth() {
74
- this._maximumWidth ??= await this.getMaximumWidth();
75
- return this._maximumWidth;
76
- }
77
- /**
78
- * Get the maximum height supported by the application.
79
- *
80
- * @returns
81
- * Maximum height supported by the application.
82
- */
83
- async maximumHeight() {
84
- this._maximumHeight ??= await this.getMaximumHeight();
85
- return this._maximumHeight;
86
- }
87
- /**
88
- * Validate a sequence count against the maximum supported by application.
89
- *
90
- * @param sequenceCount
91
- * Sequence count.
92
- */
93
- validateSequenceCount(sequenceCount) {
94
- const absoluteSequenceCount = Math.abs(sequenceCount);
95
- if (absoluteSequenceCount > this._maximumSequenceCount) {
96
- throw new RangeError(i18nextAppExtension.t("AppExtension.sequenceCountMustBeLessThanOrEqualTo", {
97
- sequenceCount: absoluteSequenceCount,
98
- maximumSequenceCount: this._maximumSequenceCount
99
- }));
100
- }
101
- }
102
- /**
103
- * Bind a synchronous method and wrap it in a try/catch for comprehensive error handling.
104
- *
105
- * @param thisArg
106
- * The value to be passed as the `this` parameter to the method.
107
- *
108
- * @param method
109
- * Method to call.
110
- *
111
- * @returns
112
- * Function wrapped around the method.
113
- */
114
- bindSync(thisArg, method) {
115
- const boundMethod = method.bind(thisArg);
116
- return (...args) => {
117
- try {
118
- return boundMethod(...args);
119
- }
120
- catch (e) {
121
- // eslint-disable-next-line no-console -- Necessary for diagnostics.
122
- console.error(e);
123
- this.handleError(e instanceof Error ? e.message : String(e));
124
- }
125
- };
126
- }
127
- /**
128
- * Bind an asynchronous method and wrap it in a try/catch for comprehensive error handling.
129
- *
130
- * @param thisArg
131
- * The value to be passed as the `this` parameter to the method.
132
- *
133
- * @param method
134
- * Method to call.
135
- *
136
- * @returns
137
- * Function wrapped around the method.
138
- */
139
- bindAsync(thisArg, method) {
140
- const boundMethod = method.bind(thisArg);
141
- return async (...args) => await boundMethod(...args).catch((e) => {
142
- // eslint-disable-next-line no-console -- Necessary for diagnostics.
143
- console.error(e);
144
- this.handleError(e instanceof Error ? e.message : String(e));
145
- });
146
- }
147
- }
148
- //# sourceMappingURL=app-extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-extension.js","sourceRoot":"","sources":["../src/app-extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,YAAY;IAC9B;;OAEG;IACc,QAAQ,CAAS;IAElC;;OAEG;IACc,qBAAqB,CAAS;IAE/C;;OAEG;IACc,WAAW,CAAa;IAEzC;;OAEG;IACK,aAAa,CAAU;IAE/B;;OAEG;IACK,cAAc,CAAU;IAEhC;;;;;;;;;;;OAWG;IACH,YAAsB,OAAe,EAAE,oBAA4B,EAAE,UAAsB;QACvF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY;QACd,IAAI,CAAC,aAAa,KAAK,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAEpD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAUD;;;;;OAKG;IACH,KAAK,CAAC,aAAa;QACf,IAAI,CAAC,cAAc,KAAK,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEtD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAmCD;;;;;OAKG;IACH,qBAAqB,CAAC,aAAqB;QACvC,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACrD,MAAM,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,mDAAmD,EAAE;gBAC5F,aAAa,EAAE,qBAAqB;gBACpC,oBAAoB,EAAE,IAAI,CAAC,qBAAqB;aACnD,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;IA8BD;;;;;;;;;;;OAWG;IACH,QAAQ,CAA6C,OAAmC,EAAE,MAAe;QACrG,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzC,OAAO,CAAC,GAAG,IAAyB,EAAuB,EAAE;YACzD,IAAI,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBAClB,oEAAoE;gBACpE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEjB,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;QACL,CAAC,CAAC;IACN,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAA8C,OAAmC,EAAE,MAAe;QACvG,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzC,OAAO,KAAK,EAAE,GAAG,IAAyB,EAAE,EAAE,CAAC,MAAM,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;YAC3F,oEAAoE;YACpE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjB,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,66 +0,0 @@
1
- import { LibProxy } from "./lib-proxy.js";
2
- import { type ErrorExtends, type Matrix, type Nullishable } from "./types.js";
3
- /**
4
- * Application utilities.
5
- */
6
- export declare class AppUtilityProxy<ThrowError extends boolean, TError extends ErrorExtends<ThrowError>, TInvocationContext, TBigInt> extends LibProxy<ThrowError, TError, TInvocationContext, TBigInt> {
7
- /**
8
- * Get the version.
9
- *
10
- * @returns
11
- * Version.
12
- */
13
- version(): string;
14
- /**
15
- * Provide default values for maximum width and height if required.
16
- *
17
- * @param maximumDimensions
18
- * Maximum dimensions provided to function.
19
- *
20
- * @param invocationContext
21
- * Invocation context.
22
- *
23
- * @returns
24
- * Array of maximum width and maximum height.
25
- */
26
- private defaultMaximums;
27
- /**
28
- * Spill a horizontal matrix vertically to fit within a maximum width and height.
29
- *
30
- * @param hMatrixValues
31
- * Horizontal matrix values. Matrix has length 1 and contains a single array with the values.
32
- *
33
- * @param maximumWidth
34
- * Maximum width.
35
- *
36
- * @param maximumHeight
37
- * Maximum height.
38
- *
39
- * @param invocationContext
40
- * Invocation context.
41
- *
42
- * @returns
43
- * Matrix spilled within maximum width and maximum height.
44
- */
45
- vSpill(hMatrixValues: Matrix<unknown>, maximumWidth: Nullishable<number>, maximumHeight: Nullishable<number>, invocationContext: Nullishable<TInvocationContext>): Promise<Matrix<unknown>>;
46
- /**
47
- * Spill a vertical matrix horizontally to fit within a maximum width and height.
48
- *
49
- * @param vMatrixValues
50
- * Vertical matrix values. Matrix contains arrays of length 1 with the values.
51
- *
52
- * @param maximumHeight
53
- * Maximum height.
54
- *
55
- * @param maximumWidth
56
- * Maximum width.
57
- *
58
- * @param invocationContext
59
- * Invocation context.
60
- *
61
- * @returns
62
- * Matrix spilled within maximum height and maximum width.
63
- */
64
- hSpill(vMatrixValues: Matrix<unknown>, maximumHeight: Nullishable<number>, maximumWidth: Nullishable<number>, invocationContext: Nullishable<TInvocationContext>): Promise<Matrix<unknown>>;
65
- }
66
- //# sourceMappingURL=app-utility-proxy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-utility-proxy.d.ts","sourceRoot":"","sources":["../src/app-utility-proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,KAAK,YAAY,EAAa,KAAK,MAAM,EAAuB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AA2C9G;;GAEG;AACH,qBACa,eAAe,CAAC,UAAU,SAAS,OAAO,EAAE,MAAM,SAAS,YAAY,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAE,SAAQ,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC;IAC5L;;;;;OAKG;IAKH,OAAO,IAAI,MAAM;IAIjB;;;;;;;;;;;OAWG;YACW,eAAe;IA6B7B;;;;;;;;;;;;;;;;;OAiBG;IAMG,MAAM,CACqB,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,EACL,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,EACzF,iBAAiB,EAAE,WAAW,CAAC,kBAAkB,CAAC,GACnD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAmD3B;;;;;;;;;;;;;;;;;OAiBG;IAMG,MAAM,CACqB,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,EACJ,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,EACnC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EACvF,iBAAiB,EAAE,WAAW,CAAC,kBAAkB,CAAC,GACnD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CAoD9B"}
@@ -1,233 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __param = (this && this.__param) || function (paramIndex, decorator) {
8
- return function (target, key) { decorator(target, key, paramIndex); }
9
- };
10
- import { ProxyClass, ProxyMethod, ProxyParameter, Types } from "./descriptor.js";
11
- import { LibProxy } from "./lib-proxy.js";
12
- import { i18nextAppExtension } from "./locale/i18n.js";
13
- import { isNullish } from "./types.js";
14
- const spillMatrix = {
15
- name: "spillMatrix",
16
- type: Types.Any,
17
- isMatrix: true,
18
- isRequired: true
19
- };
20
- const spillMaximumParameterDescriptor = {
21
- name: "spillMaximum",
22
- type: Types.Number,
23
- isMatrix: false,
24
- isRequired: false
25
- };
26
- const spillMaximumWidthParameterDescriptor = {
27
- extendsDescriptor: spillMaximumParameterDescriptor,
28
- sortOrder: 0,
29
- name: "spillMaximumWidth"
30
- };
31
- const spillMaximumHeightParameterDescriptor = {
32
- extendsDescriptor: spillMaximumParameterDescriptor,
33
- sortOrder: 1,
34
- name: "spillMaximumHeight"
35
- };
36
- /**
37
- * Application utilities.
38
- */
39
- let AppUtilityProxy = class AppUtilityProxy extends LibProxy {
40
- /**
41
- * Get the version.
42
- *
43
- * @returns
44
- * Version.
45
- */
46
- version() {
47
- return this.appExtension.version;
48
- }
49
- /**
50
- * Provide default values for maximum width and height if required.
51
- *
52
- * @param maximumDimensions
53
- * Maximum dimensions provided to function.
54
- *
55
- * @param invocationContext
56
- * Invocation context.
57
- *
58
- * @returns
59
- * Array of maximum width and maximum height.
60
- */
61
- async defaultMaximums(maximumDimensions, invocationContext) {
62
- if (isNullish(invocationContext)) {
63
- // Application error; no localization necessary.
64
- throw new Error("Invocation context not provided by application");
65
- }
66
- const maximumWidth = maximumDimensions.width;
67
- const maximumHeight = maximumDimensions.height;
68
- let definedMaximumWidth;
69
- let definedMaximumHeight;
70
- // Skip any extra work if both values are provided.
71
- if (isNullish(maximumWidth) || isNullish(maximumHeight)) {
72
- const sheetAddress = await this.appExtension.getSheetAddress(invocationContext);
73
- definedMaximumWidth = maximumWidth ?? await this.appExtension.maximumWidth() - sheetAddress.columnIndex;
74
- definedMaximumHeight = maximumHeight ?? await this.appExtension.maximumHeight() - sheetAddress.rowIndex;
75
- }
76
- else {
77
- definedMaximumWidth = maximumWidth;
78
- definedMaximumHeight = maximumHeight;
79
- }
80
- return {
81
- width: definedMaximumWidth,
82
- height: definedMaximumHeight
83
- };
84
- }
85
- /**
86
- * Spill a horizontal matrix vertically to fit within a maximum width and height.
87
- *
88
- * @param hMatrixValues
89
- * Horizontal matrix values. Matrix has length 1 and contains a single array with the values.
90
- *
91
- * @param maximumWidth
92
- * Maximum width.
93
- *
94
- * @param maximumHeight
95
- * Maximum height.
96
- *
97
- * @param invocationContext
98
- * Invocation context.
99
- *
100
- * @returns
101
- * Matrix spilled within maximum width and maximum height.
102
- */
103
- async vSpill(hMatrixValues, maximumWidth, maximumHeight, invocationContext) {
104
- let result;
105
- if (hMatrixValues.length !== 1) {
106
- throw new RangeError(i18nextAppExtension.t("Proxy.vSpillMustBeHorizontalArray"));
107
- }
108
- const maximumDimensions = await this.defaultMaximums({
109
- width: maximumWidth,
110
- height: maximumHeight
111
- }, invocationContext);
112
- const hArrayValues = hMatrixValues[0];
113
- const hLength = hArrayValues.length;
114
- const maximumArea = maximumDimensions.width * maximumDimensions.height;
115
- // Lengths 0 and 1 are valid and require no special processing.
116
- if (hLength > 1 && hLength <= maximumArea) {
117
- // Make spill as square as possible.
118
- let spillWidth = Math.min(Math.ceil(Math.sqrt(maximumArea)), maximumDimensions.width);
119
- // Array that has a length of a power of 10 is treated specially.
120
- if (Number.isInteger(Math.log10(hLength))) {
121
- // Try spill width that is a power of 10.
122
- const spillWidth10 = Math.pow(10, Math.floor(Math.log10(spillWidth)));
123
- // Keep default if not enough space for power of 10 matrix.
124
- if (hLength / spillWidth10 <= maximumDimensions.height) {
125
- spillWidth = spillWidth10;
126
- }
127
- }
128
- result = [];
129
- let hStartIndex = 0;
130
- do {
131
- const hEndIndex = hStartIndex + spillWidth;
132
- result.push(hArrayValues.slice(hStartIndex, hEndIndex));
133
- hStartIndex = hEndIndex;
134
- } while (hStartIndex < hLength);
135
- }
136
- else {
137
- // Return matrix unmodified and let application handle spill error if any.
138
- result = hMatrixValues;
139
- }
140
- return result;
141
- }
142
- /**
143
- * Spill a vertical matrix horizontally to fit within a maximum width and height.
144
- *
145
- * @param vMatrixValues
146
- * Vertical matrix values. Matrix contains arrays of length 1 with the values.
147
- *
148
- * @param maximumHeight
149
- * Maximum height.
150
- *
151
- * @param maximumWidth
152
- * Maximum width.
153
- *
154
- * @param invocationContext
155
- * Invocation context.
156
- *
157
- * @returns
158
- * Matrix spilled within maximum height and maximum width.
159
- */
160
- async hSpill(vMatrixValues, maximumHeight, maximumWidth, invocationContext) {
161
- let result;
162
- for (const hArrayValues of vMatrixValues) {
163
- // This test should be necessary only once but account for zero-size matrix and misuse of method.
164
- if (hArrayValues.length !== 1) {
165
- throw new RangeError(i18nextAppExtension.t("Proxy.hSpillMustBeVerticalArray"));
166
- }
167
- }
168
- const maximumDimensions = await this.defaultMaximums({
169
- width: maximumWidth,
170
- height: maximumHeight
171
- }, invocationContext);
172
- const vLength = vMatrixValues.length;
173
- const maximumArea = maximumDimensions.width * maximumDimensions.height;
174
- // Lengths 0 and 1 are valid and require no special processing.
175
- if (vLength > 1 && vLength <= maximumArea) {
176
- // Make spill as square as possible.
177
- let spillHeight = Math.min(Math.ceil(Math.sqrt(maximumArea)), maximumDimensions.height);
178
- // Array that has a length of a power of 10 is treated specially.
179
- if (Number.isInteger(Math.log10(vLength))) {
180
- // Try spill height that is a power of 10.
181
- const spillHeight10 = Math.pow(10, Math.floor(Math.log10(spillHeight)));
182
- // Keep default if not enough space for power of 10 matrix.
183
- if (vLength / spillHeight10 <= maximumDimensions.width) {
184
- spillHeight = spillHeight10;
185
- }
186
- }
187
- result = [];
188
- for (let rowIndex = 0; rowIndex < spillHeight; rowIndex++) {
189
- const row = new Array();
190
- for (let cellIndex = rowIndex; cellIndex < vLength; cellIndex++) {
191
- row.push(vMatrixValues[cellIndex][0]);
192
- }
193
- result.push(row);
194
- }
195
- }
196
- else {
197
- // Return matrix unmodified and let application handle spill error if any.
198
- result = vMatrixValues;
199
- }
200
- return result;
201
- }
202
- };
203
- __decorate([
204
- ProxyMethod({
205
- type: Types.String,
206
- isMatrix: false
207
- })
208
- ], AppUtilityProxy.prototype, "version", null);
209
- __decorate([
210
- ProxyMethod({
211
- requiresContext: true,
212
- type: Types.Any,
213
- isMatrix: true
214
- }),
215
- __param(0, ProxyParameter(spillMatrix)),
216
- __param(1, ProxyParameter(spillMaximumWidthParameterDescriptor)),
217
- __param(2, ProxyParameter(spillMaximumHeightParameterDescriptor))
218
- ], AppUtilityProxy.prototype, "vSpill", null);
219
- __decorate([
220
- ProxyMethod({
221
- requiresContext: true,
222
- type: Types.Any,
223
- isMatrix: true
224
- }),
225
- __param(0, ProxyParameter(spillMatrix)),
226
- __param(1, ProxyParameter(spillMaximumHeightParameterDescriptor)),
227
- __param(2, ProxyParameter(spillMaximumWidthParameterDescriptor))
228
- ], AppUtilityProxy.prototype, "hSpill", null);
229
- AppUtilityProxy = __decorate([
230
- ProxyClass()
231
- ], AppUtilityProxy);
232
- export { AppUtilityProxy };
233
- //# sourceMappingURL=app-utility-proxy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-utility-proxy.js","sourceRoot":"","sources":["../src/app-utility-proxy.ts"],"names":[],"mappings":"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"}