@acorex/core 5.1.2 → 5.1.6

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 (112) hide show
  1. package/README.md +2 -23
  2. package/karma.conf.js +32 -0
  3. package/ng-package.json +10 -0
  4. package/package.json +13 -38
  5. package/src/lib/classes/base-page.class.ts +29 -0
  6. package/src/lib/classes/color.class.ts +61 -0
  7. package/src/lib/classes/datetime.class.ts +373 -0
  8. package/src/lib/classes/menu.class.ts +37 -0
  9. package/src/lib/classes/navigator.class.ts +5 -0
  10. package/src/lib/classes/popup.class.ts +14 -0
  11. package/src/lib/classes/promise.class.ts +25 -0
  12. package/src/lib/classes/sectionlist.class.ts +8 -0
  13. package/src/lib/classes/select.class.ts +7 -0
  14. package/src/lib/core.module.ts +21 -0
  15. package/src/lib/error/error.class.ts +4 -0
  16. package/src/lib/error/error.module.ts +13 -0
  17. package/src/lib/error/error.service.ts +23 -0
  18. package/src/lib/error/index.ts +3 -0
  19. package/src/lib/events/keyboard.ts +5 -0
  20. package/src/lib/http/http-error.class.ts +7 -0
  21. package/src/lib/http/http-events.interceptor.ts +14 -0
  22. package/src/lib/http/http-request.class.ts +14 -0
  23. package/src/lib/http/http-result.class.ts +34 -0
  24. package/src/lib/http/http.module.ts +25 -0
  25. package/src/lib/http/http.service.ts +159 -0
  26. package/src/lib/locale/en.json +255 -0
  27. package/src/lib/locale/fa.json +244 -0
  28. package/src/lib/pipe/datetime.pipe.ts +20 -0
  29. package/src/lib/pipe/htmlToText.pipe.ts +18 -0
  30. package/src/lib/platform/index.ts +1 -0
  31. package/src/lib/platform/platform.service.ts +211 -0
  32. package/src/lib/services/config.ts +36 -0
  33. package/src/lib/services/event.service.ts +31 -0
  34. package/src/lib/services/navigator.service.ts +8 -0
  35. package/src/lib/services/storage.service.ts +11 -0
  36. package/src/lib/translator/translator.module.ts +19 -0
  37. package/src/lib/translator/translator.pipe.ts +22 -0
  38. package/src/lib/translator/translator.service.ts +19 -0
  39. package/src/lib/translator/translator.ts +31 -0
  40. package/src/lib/utils/array/array-util.ts +140 -0
  41. package/src/lib/utils/html/html-util.ts +264 -0
  42. package/src/lib/utils/html/html.module.ts +11 -0
  43. package/src/lib/utils/math/math-util.ts +5 -0
  44. package/src/lib/utils/object/object-util.ts +87 -0
  45. package/src/lib/utils/render/on-demand-preload-strategy.service.ts +25 -0
  46. package/src/lib/utils/render/render.service.ts +110 -0
  47. package/src/lib/utils/render/rendering.module.ts +25 -0
  48. package/src/lib/utils/scroll/scroll.directive.ts +35 -0
  49. package/src/lib/utils/scroll/scroll.module.ts +11 -0
  50. package/src/lib/utils/separator/separator.module.ts +11 -0
  51. package/src/lib/utils/separator/separator.pipe.ts +27 -0
  52. package/src/public-api.ts +53 -0
  53. package/src/test.ts +28 -0
  54. package/tsconfig.lib.json +25 -0
  55. package/tsconfig.lib.prod.json +6 -0
  56. package/tsconfig.spec.json +18 -0
  57. package/tslint.json +17 -0
  58. package/acorex-core.d.ts +0 -5
  59. package/config/ax-preset.js +0 -182
  60. package/esm2020/acorex-core.mjs +0 -5
  61. package/esm2020/lib/config/configs.mjs +0 -29
  62. package/esm2020/lib/core.module.mjs +0 -18
  63. package/esm2020/lib/dateTime/datetime.class.mjs +0 -295
  64. package/esm2020/lib/dateTime/datetime.module.mjs +0 -33
  65. package/esm2020/lib/dateTime/datetime.pipe.mjs +0 -26
  66. package/esm2020/lib/dateTime/georgian.calendar.mjs +0 -189
  67. package/esm2020/lib/dateTime/index.mjs +0 -6
  68. package/esm2020/lib/dateTime/jalali.calendar.mjs +0 -359
  69. package/esm2020/lib/events/event.service.mjs +0 -36
  70. package/esm2020/lib/events/index.mjs +0 -2
  71. package/esm2020/lib/hotkeys/hotkeys.service.mjs +0 -37
  72. package/esm2020/lib/hotkeys/index.mjs +0 -2
  73. package/esm2020/lib/platform/index.mjs +0 -2
  74. package/esm2020/lib/platform/platform.service.mjs +0 -138
  75. package/esm2020/lib/translation/index.mjs +0 -4
  76. package/esm2020/lib/translation/translation.module.mjs +0 -18
  77. package/esm2020/lib/translation/translator.mjs +0 -42
  78. package/esm2020/lib/translation/translator.pipe.mjs +0 -15
  79. package/esm2020/lib/utils/drawing-util.mjs +0 -27
  80. package/esm2020/lib/utils/index.mjs +0 -5
  81. package/esm2020/lib/utils/object-util.mjs +0 -39
  82. package/esm2020/lib/utils/safe.pipe.mjs +0 -30
  83. package/esm2020/lib/utils/string-util.mjs +0 -19
  84. package/esm2020/public-api.mjs +0 -13
  85. package/fesm2015/acorex-core.mjs +0 -1332
  86. package/fesm2015/acorex-core.mjs.map +0 -1
  87. package/fesm2020/acorex-core.mjs +0 -1329
  88. package/fesm2020/acorex-core.mjs.map +0 -1
  89. package/lib/config/configs.d.ts +0 -9
  90. package/lib/core.module.d.ts +0 -7
  91. package/lib/dateTime/datetime.class.d.ts +0 -100
  92. package/lib/dateTime/datetime.module.d.ts +0 -8
  93. package/lib/dateTime/datetime.pipe.d.ts +0 -8
  94. package/lib/dateTime/georgian.calendar.d.ts +0 -20
  95. package/lib/dateTime/index.d.ts +0 -5
  96. package/lib/dateTime/jalali.calendar.d.ts +0 -35
  97. package/lib/events/event.service.d.ts +0 -9
  98. package/lib/events/index.d.ts +0 -1
  99. package/lib/hotkeys/hotkeys.service.d.ts +0 -17
  100. package/lib/hotkeys/index.d.ts +0 -1
  101. package/lib/platform/index.d.ts +0 -1
  102. package/lib/platform/platform.service.d.ts +0 -25
  103. package/lib/translation/index.d.ts +0 -3
  104. package/lib/translation/translation.module.d.ts +0 -7
  105. package/lib/translation/translator.d.ts +0 -11
  106. package/lib/translation/translator.pipe.d.ts +0 -7
  107. package/lib/utils/drawing-util.d.ts +0 -17
  108. package/lib/utils/index.d.ts +0 -4
  109. package/lib/utils/object-util.d.ts +0 -4
  110. package/lib/utils/safe.pipe.d.ts +0 -10
  111. package/lib/utils/string-util.d.ts +0 -6
  112. package/public-api.d.ts +0 -12
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { AXDateTimePipe } from './pipe/datetime.pipe';
3
+ import { AXEventService } from './services/event.service';
4
+ import { AXStorageService } from './services/storage.service';
5
+ import { AXScrollModule } from './utils/scroll/scroll.module';
6
+ import { AXTranslatorModule } from './translator/translator.module';
7
+
8
+ const PIPES = [AXDateTimePipe];
9
+ const MODULES = [AXScrollModule, AXTranslatorModule];
10
+ const SERVICES = [AXEventService,
11
+ AXStorageService
12
+ ];
13
+
14
+
15
+ @NgModule({
16
+ declarations: [...PIPES],
17
+ imports: [...MODULES],
18
+ exports: [...PIPES],
19
+ providers: [...SERVICES]
20
+ })
21
+ export class AXCoreModule { }
@@ -0,0 +1,4 @@
1
+ export interface AXError {
2
+ message: string;
3
+ code: string;
4
+ }
@@ -0,0 +1,13 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AXErrorService } from './error.service';
4
+
5
+ @NgModule({
6
+ declarations: [],
7
+ imports: [CommonModule],
8
+ exports: [],
9
+ providers: [AXErrorService],
10
+ })
11
+ export class AXErrorModule {
12
+
13
+ }
@@ -0,0 +1,23 @@
1
+ import { InjectionToken, Injectable, Injector } from '@angular/core';
2
+
3
+ export const AX_ERROR_DISPLAY_INTERCEPTOR = new InjectionToken<AXErrorDisplayInterceptor>('ax.error');
4
+
5
+ export interface AXErrorDisplayInterceptor {
6
+ show(message: string);
7
+ }
8
+
9
+ @Injectable({providedIn: 'root'})
10
+ export class AXErrorService {
11
+
12
+ constructor(private injector: Injector) {
13
+
14
+ }
15
+
16
+ handle(message: string) {
17
+ const instance = this.injector.get(AX_ERROR_DISPLAY_INTERCEPTOR);
18
+ if (instance) {
19
+ instance.show(message);
20
+ }
21
+ }
22
+
23
+ }
@@ -0,0 +1,3 @@
1
+ export * from './error.class';
2
+ export * from './error.service';
3
+ export * from './error.module';
@@ -0,0 +1,5 @@
1
+
2
+ // tslint:disable-next-line: no-empty-interface
3
+ export interface AXKeyboardEvent extends KeyboardEvent {
4
+
5
+ }
@@ -0,0 +1,7 @@
1
+ export interface IHttpError {
2
+ message?: string;
3
+ status?: number;
4
+ code?: string;
5
+ handled: boolean;
6
+ error: any | null
7
+ }
@@ -0,0 +1,14 @@
1
+ import { IHttpError } from './http-error.class';
2
+ import { InjectionToken } from '@angular/core';
3
+ import { AXHttpRequestOptions } from './http-request.class';
4
+
5
+ export const AX_HTTP_EVENT_INTERCEPTOR = new InjectionToken<AXHttpEventInterceptor>('ax.http.events');
6
+
7
+ export interface AXHttpEventInterceptor {
8
+ begin(request: AXHttpRequestOptions): Promise<AXHttpRequestOptions>;
9
+ success(request: AXHttpRequestOptions, result: any): Promise<any>;
10
+ complete(request: AXHttpRequestOptions);
11
+ error(request: AXHttpRequestOptions, error: IHttpError);
12
+ }
13
+
14
+
@@ -0,0 +1,14 @@
1
+ export interface AXHttpRequestOptions {
2
+ url?: any,
3
+ params?: {
4
+ [param: string]: any;
5
+ },
6
+ body?: {
7
+ [param: string]: any;
8
+ },
9
+ headers?: {
10
+ [header: string]: any;
11
+ },
12
+ method?: 'get' | 'post' | 'put' | 'delete';
13
+ responseType?: any;
14
+ }
@@ -0,0 +1,34 @@
1
+ import { IHttpError } from './http-error.class';
2
+
3
+ export class HttpResult<T> {
4
+ private _executor: (result: (e?: T) => void, error: (e?: IHttpError) => void, complete: () => void) => void;
5
+ constructor(
6
+ executor: (
7
+ result: (e?: T) => void,
8
+ error: (e?: IHttpError) => void,
9
+ complete: () => void
10
+ ) => void
11
+ ) {
12
+ this._executor = executor;
13
+ setTimeout(() => {
14
+ this._executor(this.resultAction, this.errorAction, this.completeAction);
15
+ }, 50);
16
+ }
17
+
18
+ private resultAction: (e?: T) => void;
19
+ private errorAction: (e?: IHttpError) => void;
20
+ private completeAction: () => void;
21
+
22
+ result(action: (e?: T) => void): HttpResult<T> {
23
+ this.resultAction = action;
24
+ return this;
25
+ }
26
+ error(action: (e?: IHttpError) => void): HttpResult<T> {
27
+ this.errorAction = action;
28
+ return this;
29
+ }
30
+ complete(action: () => void): HttpResult<T> {
31
+ this.completeAction = action;
32
+ return this;
33
+ }
34
+ }
@@ -0,0 +1,25 @@
1
+ import { NgModule, ModuleWithProviders } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { HttpClientModule } from '@angular/common/http';
4
+ import { AXHttpService } from './http.service';
5
+
6
+
7
+ @NgModule({
8
+ declarations: [],
9
+ imports: [
10
+ CommonModule,
11
+ HttpClientModule
12
+ ],
13
+ exports: [HttpClientModule],
14
+ providers: [
15
+ AXHttpService
16
+ ]
17
+ })
18
+ export class AXHttpModule {
19
+ static forRoot(): ModuleWithProviders<AXHttpModule> {
20
+ return {
21
+ ngModule: AXHttpModule,
22
+ providers: [AXHttpService]
23
+ };
24
+ }
25
+ }
@@ -0,0 +1,159 @@
1
+ import { Injectable, Injector, InjectFlags } from '@angular/core';
2
+ import { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from '@angular/common/http';
3
+ import { HttpResult } from './http-result.class';
4
+ import { IHttpError } from './http-error.class';
5
+ import { AXHttpRequestOptions } from './http-request.class';
6
+ import {
7
+ AX_HTTP_EVENT_INTERCEPTOR, AXHttpEventInterceptor
8
+ } from './http-events.interceptor';
9
+ // import { catchError, retry, retryWhen, mergeMap, delay, switchMap, scan, takeWhile, flatMap } from 'rxjs/operators';
10
+ // import { of, concat, throwError } from 'rxjs';
11
+
12
+
13
+ @Injectable()
14
+ export class AXHttpService {
15
+
16
+ private interceptor: AXHttpEventInterceptor;
17
+ constructor(private http: HttpClient, private injector: Injector) {
18
+ this.interceptor = this.injector.get(AX_HTTP_EVENT_INTERCEPTOR);
19
+ }
20
+
21
+
22
+ get<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {
23
+ config.url = url;
24
+ config.method = "get";
25
+ return this.request(config);
26
+ }
27
+
28
+ post<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {
29
+ config.url = url;
30
+ config.method = "post";
31
+ return this.request(config);
32
+ }
33
+
34
+ delete<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {
35
+ config.url = url;
36
+ config.method = "delete";
37
+ return this.request(config);
38
+ }
39
+
40
+ put<T>(url: string, config: AXHttpRequestOptions = {}): HttpResult<T> {
41
+ config.url = url;
42
+ config.method = "put";
43
+ return this.request(config);
44
+ }
45
+
46
+
47
+ request<T>(config: AXHttpRequestOptions): HttpResult<T> {
48
+ return new HttpResult<T>((result?, error?, complete?) => {
49
+ this.handleBegin(config).then(c => {
50
+ this.http
51
+ .request<T>(config.method, config.url, this.mapOptions(config))
52
+ //.pipe(this.retry)
53
+ .subscribe(data => {
54
+ this.handleResult(data, result, complete, config);
55
+ }, c => {
56
+ this.handleError(c, error, complete, config);
57
+ });
58
+ });
59
+ })
60
+ }
61
+
62
+
63
+ private handleResult(data, result, complete, config: AXHttpRequestOptions) {
64
+ if (this.interceptor) {
65
+ this.interceptor.success(config, data).then(c => {
66
+ if (result)
67
+ result(c);
68
+ this.handleComplete(complete, config);
69
+ });
70
+ }
71
+ else {
72
+ //
73
+ if (result)
74
+ result(data);
75
+ this.handleComplete(complete, config);
76
+ }
77
+ }
78
+
79
+ private handleBegin(config: AXHttpRequestOptions): Promise<AXHttpRequestOptions> {
80
+ return new Promise((resolve) => {
81
+ if (!config.headers)
82
+ config.headers = {};
83
+ if (!config.params)
84
+ config.params = {};
85
+ //
86
+ if (this.interceptor) {
87
+ this.interceptor.begin(config).then(c => {
88
+ resolve(c);
89
+ });
90
+ }
91
+ else {
92
+ resolve(config)
93
+ }
94
+ })
95
+ }
96
+
97
+ private handleComplete(complete: Function, config: AXHttpRequestOptions) {
98
+ if (complete)
99
+ complete();
100
+ if (this.interceptor)
101
+ this.interceptor.complete(config);
102
+ }
103
+
104
+ private handleError(c: HttpErrorResponse, error: Function, complete: Function, config: AXHttpRequestOptions) {
105
+ let r: IHttpError = {
106
+ message: c.message,
107
+ status: c.status,
108
+ code: c.status?.toString(),
109
+ handled: false,
110
+ error: c.error
111
+ }
112
+ if (error) {
113
+ error(r);
114
+ }
115
+ if (!r.handled) {
116
+ if (this.interceptor)
117
+ this.interceptor.error(config, r);
118
+ }
119
+ this.handleComplete(complete, config);
120
+ }
121
+
122
+ private mapOptions(options: AXHttpRequestOptions) {
123
+ let headers = new HttpHeaders();
124
+
125
+ for (const key in options.headers) {
126
+ if (options.headers.hasOwnProperty(key)) {
127
+ const value = options.headers[key];
128
+ headers = headers.set(key, value)
129
+ }
130
+ }
131
+ let params = new HttpParams();
132
+ for (const key in options.params) {
133
+ if (options.params.hasOwnProperty(key)) {
134
+ const value = options.params[key];
135
+ params = params.set(key, value);
136
+ }
137
+ }
138
+ return {
139
+ headers: headers,
140
+ params: params,
141
+ body: options.body,
142
+ responseType: options.responseType || 'json'
143
+ };
144
+ // if (options.method == "get") {
145
+ // return {
146
+ // headers: headers,
147
+ // params: params
148
+ // };
149
+ // }
150
+ // else {
151
+ // return {
152
+ // headers: headers,
153
+ // params: params,
154
+ // body: options.body
155
+ // };
156
+ // }
157
+ }
158
+
159
+ }
@@ -0,0 +1,255 @@
1
+ {
2
+ "common": {
3
+ "search": "Search",
4
+ "yes": "yes",
5
+ "no": "No",
6
+ "confirm": "Confirm",
7
+ "okay": "Okay",
8
+ "cancel": "Cancel",
9
+ "remove": "Remove",
10
+ "edit": "Edit",
11
+ "configs": "Configs",
12
+ "noDataFound": "No data found!",
13
+ "searching": "searching ...",
14
+ "save": "Save",
15
+ "save-as": "Save As...",
16
+ "title": "Title",
17
+ "description": "Description",
18
+ "name": "Name",
19
+ "uniquename": "Unique Name",
20
+ "size": "Size",
21
+ "add-item": "Add Item",
22
+ "color": "Color",
23
+ "display": "Display",
24
+ "min-value": "Min Value",
25
+ "value": "Value",
26
+ "max-value": "Max Value",
27
+ "refresh-rate": "Refresh Rate",
28
+ "refresh": "Refresh",
29
+ "reload": "Reload",
30
+ "condition":"Condition",
31
+ "next":"Next",
32
+ "prev":"Prev"
33
+ },
34
+ "dateTime": {
35
+ "weekdaysShort": {
36
+ "sun": "Sun",
37
+ "mon": "Mon",
38
+ "tue": "Tue",
39
+ "wed": "Wed",
40
+ "thu": "Thu",
41
+ "fri": "Fri",
42
+ "sat": "Sat"
43
+ },
44
+ "dayTime": {
45
+ "am": "am",
46
+ "pm": "pm",
47
+ "m": "m",
48
+ "a": "a",
49
+ "p": "p"
50
+ },
51
+ "today": "today",
52
+ "duration": {
53
+ "format_second": "{0} second(s)",
54
+ "format_minute": "{0} minute(s)"
55
+ }
56
+ },
57
+ "queryBuilder": {
58
+ "contains": "contains",
59
+ "not-contains":"not-contains",
60
+ "contains-all":"contains-all",
61
+ "start-with": "start-with",
62
+ "end-with": "end-with",
63
+ "equal": "equal",
64
+ "not-equal": "not-equal",
65
+ "null": "null",
66
+ "not-null": "not-null",
67
+ "greater-than": "greater-than",
68
+ "gt": "greater-than",
69
+ "greater-than-equal": "greater-than-equal",
70
+ "gte": "greater-than-equal",
71
+ "less-than": "less-than",
72
+ "lt": "less-than",
73
+ "less-than-equal": "less-than-equal",
74
+ "lte": "less-than-equal",
75
+ "true": "true",
76
+ "false": "false",
77
+ "empty": "empty"
78
+ },
79
+ "validation": {
80
+ "messages": {
81
+ "required": "This field is required!",
82
+ "email": "Please enter a valid email address!",
83
+ "phone": "Please enter a valid phone number!"
84
+ }
85
+ },
86
+ "dataGrid": {
87
+ "page": "page",
88
+ "more": "more",
89
+ "to": "To",
90
+ "of": "Of",
91
+ "next": "next",
92
+ "last": "last",
93
+ "first": "first",
94
+ "previous": "previous",
95
+ "loadingOoo": "Loading...",
96
+ "selectAll": "selectAll",
97
+ "searchOoo": "Search...",
98
+ "blanks": "blanks",
99
+ "filterOoo": "Filter...",
100
+ "equals": "Equals",
101
+ "notEqual": "NotEqual",
102
+ "lessThan": "LessThan",
103
+ "greaterThan": "GreaterThan",
104
+ "lessThanOrEqual": "LessThanOrEqual",
105
+ "greaterThanOrEqual": "GreaterThanOrEqual",
106
+ "inRange": "InRange",
107
+ "inRangeStart": "To",
108
+ "inRangeEnd": "From",
109
+ "contains": "Contains",
110
+ "notContains": "NotContains",
111
+ "startsWith": "Starts with",
112
+ "endsWith": "Ends with",
113
+ "andCondition": "AND",
114
+ "orCondition": "OR",
115
+ "applyFilter": "Apply",
116
+ "resetFilter": "Reset",
117
+ "clearFilter": "Clear",
118
+ "group": "Group",
119
+ "columns": "Columns",
120
+ "filters": "Filters",
121
+ "groups": "Groups",
122
+ "values": "Values",
123
+ "enabled": "Enabled",
124
+ "pinColumn": "Pin Column",
125
+ "groupBy": "Group by",
126
+ "ungroupBy": "UnGroup by",
127
+ "resetColumns": "ResetColumns",
128
+ "expandAll": "ExpandAll",
129
+ "collapseAll": "CollapseAll",
130
+ "toolPanel": "ToolPanel",
131
+ "export": "Exporto",
132
+ "csvExport": "csv Export",
133
+ "excelExport": "Excel Export (.xlsx)",
134
+ "excelXmlExport": "Excel Exporto (.xml)",
135
+ "chartRange": "Chart Range",
136
+ "columnChart": "Column",
137
+ "groupedColumn": "Grouped",
138
+ "stackedColumn": "Stacked",
139
+ "normalizedColumn": "normalized Column",
140
+ "barChart": "bar Chart",
141
+ "groupedBar": "Grouped",
142
+ "stackedBar": "Stacked",
143
+ "normalizedBar": "normalized Bar",
144
+ "pie": "Pie",
145
+ "doughnut": "Doughnut",
146
+ "line": "Line",
147
+ "xyChart": "X Y (Scatter)",
148
+ "scatter": "Scatter",
149
+ "bubble": "Bubble",
150
+ "areaChart": "Area",
151
+ "area": "Area",
152
+ "stackedArea": "Stacked",
153
+ "normalizedArea": "100% Stacked",
154
+ "histogramChart": "Histogram",
155
+ "pinLeft": "Pin Left",
156
+ "pinRight": "Pin Right",
157
+ "noPin": "Dont Pin",
158
+ "sum": "Sum",
159
+ "min": "Min",
160
+ "max": "Max",
161
+ "none": "None",
162
+ "count": "Count",
163
+ "avg": "Average",
164
+ "filteredRows": "Filtered",
165
+ "selectedRows": "Selected",
166
+ "totalRows": "Total Rows",
167
+ "totalAndFilteredRows": "Rows",
168
+ "copy": "Copy",
169
+ "copyWithHeaders": "Copy With Headers",
170
+ "ctrlC": "Ctrl C",
171
+ "paste": "Paste",
172
+ "ctrlV": "Ctrl V",
173
+ "pivotChartTitle": "Pivot Chart",
174
+ "rangeChartTitle": "Range Chart",
175
+ "settings": "Settings",
176
+ "data": "Data",
177
+ "format": "Format",
178
+ "categories": "Categories",
179
+ "series": "Series",
180
+ "xyValues": "X Y Values",
181
+ "paired": "Paired Mode",
182
+ "axis": "Axis",
183
+ "color": "Color",
184
+ "thickness": "Thickness",
185
+ "xType": "X Type",
186
+ "automatic": "Automatic",
187
+ "category": "Category",
188
+ "number": "Number",
189
+ "time": "Time",
190
+ "xRotation": "X Rotation",
191
+ "yRotation": "Y Rotation",
192
+ "ticks": "Ticks",
193
+ "width": "Width",
194
+ "length": "Length",
195
+ "padding": "Padding",
196
+ "chart": "Chart",
197
+ "title": "Title",
198
+ "background": "Background",
199
+ "font": "Font",
200
+ "top": "Top",
201
+ "right": "Right",
202
+ "bottom": "Bottom",
203
+ "left": "Left",
204
+ "labels": "Labels",
205
+ "size": "Size",
206
+ "minSize": "Minimum Size",
207
+ "maxSize": "Maximum Size",
208
+ "legend": "Legend",
209
+ "position": "Position",
210
+ "markerSize": "Marker Size",
211
+ "markerStroke": "Marker Stroke",
212
+ "markerPadding": "Marker Padding",
213
+ "itemPaddingX": "Item Padding X",
214
+ "itemPaddingY": "Item Padding Y",
215
+ "strokeWidth": "Stroke Width",
216
+ "offset": "Offset",
217
+ "offsets": "Offsets",
218
+ "tooltips": "Tooltips",
219
+ "callout": "Callout",
220
+ "markers": "Markers",
221
+ "shadow": "Shadow",
222
+ "blur": "Blur",
223
+ "xOffset": "X Offset",
224
+ "yOffset": "Y Offset",
225
+ "lineWidth": "Line Width",
226
+ "normal": "Normal",
227
+ "bold": "Bold",
228
+ "italic": "Italic",
229
+ "boldItalic": "Bold Italic",
230
+ "predefined": "Predefined",
231
+ "fillOpacity": "Fill Opacity",
232
+ "strokeOpacity": "Line Opacity",
233
+ "histogramBinCount": "Bin Count",
234
+ "columnGroup": "Column",
235
+ "barGroup": "Bar",
236
+ "pieGroup": "Pie",
237
+ "lineGroup": "Line",
238
+ "scatterGroup": "Scatter",
239
+ "areaGroup": "Area",
240
+ "histogramGroup": "Histogram",
241
+ "groupedColumnTooltip": "Grouped",
242
+ "stackedColumnTooltip": "Stacked",
243
+ "normalizedColumnTooltip": "100% Stacked",
244
+ "groupedBarTooltip": "Grouped",
245
+ "stackedBarTooltip": "Stacked",
246
+ "pieTooltip": "Pie",
247
+ "doughnutTooltip": "Doughnut",
248
+ "lineTooltip": "Line",
249
+ "groupedAreaTooltip": "Grouped",
250
+ "stackedAreaTooltip": "Stacked",
251
+ "scatterTooltip": "Scatter",
252
+ "bubbleTooltip": "Bubble",
253
+ "histogramTooltip": "Histogram"
254
+ }
255
+ }