color-2-name 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/.editorconfig +15 -0
  2. package/.eslintrc.js +14 -0
  3. package/.github/workflows/node.js.yml +31 -0
  4. package/.idea/.name +1 -0
  5. package/.idea/color2name.iml +13 -0
  6. package/.idea/compiler.xml +6 -0
  7. package/.idea/dbnavigator.xml +414 -0
  8. package/.idea/inspectionProfiles/Project_Default.xml +7 -0
  9. package/.idea/jsLibraryMappings.xml +6 -0
  10. package/.idea/modules.xml +8 -0
  11. package/.idea/vcs.xml +6 -0
  12. package/babel.config.json +6 -0
  13. package/colorSetUtils.mjs +45 -0
  14. package/dist/color2name.js +2 -0
  15. package/dist/color2name.js.map +1 -0
  16. package/dist/common.d.ts +26 -0
  17. package/dist/data/RgbColorSet.d.ts +5 -0
  18. package/dist/data/cssColorSet.d.ts +2 -0
  19. package/dist/hex-utils.d.ts +24 -0
  20. package/dist/hsl-utils.d.ts +13 -0
  21. package/dist/index.d.ts +30 -0
  22. package/dist/rgb-utils.d.ts +10 -0
  23. package/docs/color2name.js +2 -0
  24. package/docs/index.html +55 -0
  25. package/docs/index.js +12 -0
  26. package/docs/web-component.js +85 -0
  27. package/jest.config.d.ts +3 -0
  28. package/jest.config.ts +14 -0
  29. package/package.json +51 -0
  30. package/readme.md +135 -0
  31. package/src/common.ts +86 -0
  32. package/src/data/HexColorSet.json +5210 -0
  33. package/src/data/RgbColorSet.d.ts +5 -0
  34. package/src/data/RgbColorSet.ts +7818 -0
  35. package/src/data/css.json +150 -0
  36. package/src/data/cssColorSet.ts +892 -0
  37. package/src/hex-utils.ts +64 -0
  38. package/src/hsl-utils.ts +80 -0
  39. package/src/index.ts +94 -0
  40. package/src/rgb-utils.ts +36 -0
  41. package/src/types/index.d.ts +28 -0
  42. package/tests/index.test.d.ts +1 -0
  43. package/tests/index.test.ts +129 -0
  44. package/tsconfig.json +25 -0
  45. package/webpack.config.js +48 -0
package/.editorconfig ADDED
@@ -0,0 +1,15 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ end_of_line = lf
6
+ indent_size = 2
7
+ indent_style = space
8
+ insert_final_newline = true
9
+ max_line_length = 240
10
+ tab_width = 2
11
+ trim_trailing_whitespace = true
12
+
13
+ [{*.markdown,*.md}]
14
+ indent_size = 4
15
+ tab_width = 4
package/.eslintrc.js ADDED
@@ -0,0 +1,14 @@
1
+ module.exports = {
2
+ env: {
3
+ browser: true,
4
+ es2021: true
5
+ },
6
+ extends: 'standard-with-typescript',
7
+ overrides: [
8
+ ],
9
+ parserOptions: {
10
+ ecmaVersion: 'latest',
11
+ sourceType: 'module',
12
+ project: ['tsconfig.json']
13
+ }
14
+ }
@@ -0,0 +1,31 @@
1
+ # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
3
+
4
+ name: Node.js CI
5
+
6
+ on:
7
+ push:
8
+ branches: [ "main" ]
9
+ pull_request:
10
+ branches: [ "main" ]
11
+
12
+ jobs:
13
+ build:
14
+
15
+ runs-on: ubuntu-latest
16
+
17
+ strategy:
18
+ matrix:
19
+ node-version: [14.x, 16.x, 18.x]
20
+ # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
21
+
22
+ steps:
23
+ - uses: actions/checkout@v3
24
+ - name: Use Node.js ${{ matrix.node-version }}
25
+ uses: actions/setup-node@v3
26
+ with:
27
+ node-version: ${{ matrix.node-version }}
28
+ cache: 'npm'
29
+ - run: npm ci
30
+ - run: npm run build --if-present
31
+ - run: npm test
package/.idea/.name ADDED
@@ -0,0 +1 @@
1
+ color2name
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
6
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
7
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
8
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
9
+ </content>
10
+ <orderEntry type="inheritedJdk" />
11
+ <orderEntry type="sourceFolder" forTests="false" />
12
+ </component>
13
+ </module>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="TypeScriptCompiler">
4
+ <option name="recompileOnChanges" value="true" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,414 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="DBNavigator.Project.DataEditorManager">
4
+ <record-view-column-sorting-type value="BY_INDEX" />
5
+ <value-preview-text-wrapping value="false" />
6
+ <value-preview-pinned value="false" />
7
+ </component>
8
+ <component name="DBNavigator.Project.DatabaseEditorStateManager">
9
+ <last-used-providers />
10
+ </component>
11
+ <component name="DBNavigator.Project.DatabaseFileManager">
12
+ <open-files />
13
+ </component>
14
+ <component name="DBNavigator.Project.ExecutionManager">
15
+ <retain-sticky-names value="false" />
16
+ </component>
17
+ <component name="DBNavigator.Project.Settings">
18
+ <connections />
19
+ <browser-settings>
20
+ <general>
21
+ <display-mode value="TABBED" />
22
+ <navigation-history-size value="100" />
23
+ <show-object-details value="false" />
24
+ </general>
25
+ <filters>
26
+ <object-type-filter>
27
+ <object-type name="SCHEMA" enabled="true" />
28
+ <object-type name="USER" enabled="true" />
29
+ <object-type name="ROLE" enabled="true" />
30
+ <object-type name="PRIVILEGE" enabled="true" />
31
+ <object-type name="CHARSET" enabled="true" />
32
+ <object-type name="TABLE" enabled="true" />
33
+ <object-type name="VIEW" enabled="true" />
34
+ <object-type name="MATERIALIZED_VIEW" enabled="true" />
35
+ <object-type name="NESTED_TABLE" enabled="true" />
36
+ <object-type name="COLUMN" enabled="true" />
37
+ <object-type name="INDEX" enabled="true" />
38
+ <object-type name="CONSTRAINT" enabled="true" />
39
+ <object-type name="DATASET_TRIGGER" enabled="true" />
40
+ <object-type name="DATABASE_TRIGGER" enabled="true" />
41
+ <object-type name="SYNONYM" enabled="true" />
42
+ <object-type name="SEQUENCE" enabled="true" />
43
+ <object-type name="PROCEDURE" enabled="true" />
44
+ <object-type name="FUNCTION" enabled="true" />
45
+ <object-type name="PACKAGE" enabled="true" />
46
+ <object-type name="TYPE" enabled="true" />
47
+ <object-type name="TYPE_ATTRIBUTE" enabled="true" />
48
+ <object-type name="ARGUMENT" enabled="true" />
49
+ <object-type name="DIMENSION" enabled="true" />
50
+ <object-type name="CLUSTER" enabled="true" />
51
+ <object-type name="DBLINK" enabled="true" />
52
+ </object-type-filter>
53
+ </filters>
54
+ <sorting>
55
+ <object-type name="COLUMN" sorting-type="NAME" />
56
+ <object-type name="FUNCTION" sorting-type="NAME" />
57
+ <object-type name="PROCEDURE" sorting-type="NAME" />
58
+ <object-type name="ARGUMENT" sorting-type="POSITION" />
59
+ <object-type name="TYPE ATTRIBUTE" sorting-type="POSITION" />
60
+ </sorting>
61
+ <default-editors>
62
+ <object-type name="VIEW" editor-type="SELECTION" />
63
+ <object-type name="PACKAGE" editor-type="SELECTION" />
64
+ <object-type name="TYPE" editor-type="SELECTION" />
65
+ </default-editors>
66
+ </browser-settings>
67
+ <navigation-settings>
68
+ <lookup-filters>
69
+ <lookup-objects>
70
+ <object-type name="SCHEMA" enabled="true" />
71
+ <object-type name="USER" enabled="false" />
72
+ <object-type name="ROLE" enabled="false" />
73
+ <object-type name="PRIVILEGE" enabled="false" />
74
+ <object-type name="CHARSET" enabled="false" />
75
+ <object-type name="TABLE" enabled="true" />
76
+ <object-type name="VIEW" enabled="true" />
77
+ <object-type name="MATERIALIZED VIEW" enabled="true" />
78
+ <object-type name="INDEX" enabled="true" />
79
+ <object-type name="CONSTRAINT" enabled="true" />
80
+ <object-type name="DATASET TRIGGER" enabled="true" />
81
+ <object-type name="DATABASE TRIGGER" enabled="true" />
82
+ <object-type name="SYNONYM" enabled="false" />
83
+ <object-type name="SEQUENCE" enabled="true" />
84
+ <object-type name="PROCEDURE" enabled="true" />
85
+ <object-type name="FUNCTION" enabled="true" />
86
+ <object-type name="PACKAGE" enabled="true" />
87
+ <object-type name="TYPE" enabled="true" />
88
+ <object-type name="DIMENSION" enabled="false" />
89
+ <object-type name="CLUSTER" enabled="false" />
90
+ <object-type name="DBLINK" enabled="true" />
91
+ </lookup-objects>
92
+ <force-database-load value="false" />
93
+ <prompt-connection-selection value="true" />
94
+ <prompt-schema-selection value="true" />
95
+ </lookup-filters>
96
+ </navigation-settings>
97
+ <dataset-grid-settings>
98
+ <general>
99
+ <enable-zooming value="true" />
100
+ <enable-column-tooltip value="true" />
101
+ </general>
102
+ <sorting>
103
+ <nulls-first value="true" />
104
+ <max-sorting-columns value="4" />
105
+ </sorting>
106
+ <audit-columns>
107
+ <column-names value="" />
108
+ <visible value="true" />
109
+ <editable value="false" />
110
+ </audit-columns>
111
+ </dataset-grid-settings>
112
+ <dataset-editor-settings>
113
+ <text-editor-popup>
114
+ <active value="false" />
115
+ <active-if-empty value="false" />
116
+ <data-length-threshold value="100" />
117
+ <popup-delay value="1000" />
118
+ </text-editor-popup>
119
+ <values-actions-popup>
120
+ <show-popup-button value="true" />
121
+ <element-count-threshold value="1000" />
122
+ <data-length-threshold value="250" />
123
+ </values-actions-popup>
124
+ <general>
125
+ <fetch-block-size value="100" />
126
+ <fetch-timeout value="30" />
127
+ <trim-whitespaces value="true" />
128
+ <convert-empty-strings-to-null value="true" />
129
+ <select-content-on-cell-edit value="true" />
130
+ <large-value-preview-active value="true" />
131
+ </general>
132
+ <filters>
133
+ <prompt-filter-dialog value="true" />
134
+ <default-filter-type value="BASIC" />
135
+ </filters>
136
+ <qualified-text-editor text-length-threshold="300">
137
+ <content-types>
138
+ <content-type name="Text" enabled="true" />
139
+ <content-type name="XML" enabled="true" />
140
+ <content-type name="DTD" enabled="true" />
141
+ <content-type name="HTML" enabled="true" />
142
+ <content-type name="XHTML" enabled="true" />
143
+ <content-type name="CSS" enabled="true" />
144
+ <content-type name="SQL" enabled="true" />
145
+ <content-type name="PL/SQL" enabled="true" />
146
+ <content-type name="JavaScript" enabled="true" />
147
+ <content-type name="JSON" enabled="true" />
148
+ <content-type name="JSON5" enabled="true" />
149
+ <content-type name="YAML" enabled="true" />
150
+ </content-types>
151
+ </qualified-text-editor>
152
+ <record-navigation>
153
+ <navigation-target value="VIEWER" />
154
+ </record-navigation>
155
+ </dataset-editor-settings>
156
+ <code-editor-settings>
157
+ <general>
158
+ <show-object-navigation-gutter value="false" />
159
+ <show-spec-declaration-navigation-gutter value="true" />
160
+ <enable-spellchecking value="true" />
161
+ <enable-reference-spellchecking value="false" />
162
+ </general>
163
+ <confirmations>
164
+ <save-changes value="false" />
165
+ <revert-changes value="true" />
166
+ </confirmations>
167
+ </code-editor-settings>
168
+ <code-completion-settings>
169
+ <filters>
170
+ <basic-filter>
171
+ <filter-element type="RESERVED_WORD" id="keyword" selected="true" />
172
+ <filter-element type="RESERVED_WORD" id="function" selected="true" />
173
+ <filter-element type="RESERVED_WORD" id="parameter" selected="true" />
174
+ <filter-element type="RESERVED_WORD" id="datatype" selected="true" />
175
+ <filter-element type="RESERVED_WORD" id="exception" selected="true" />
176
+ <filter-element type="OBJECT" id="schema" selected="true" />
177
+ <filter-element type="OBJECT" id="role" selected="true" />
178
+ <filter-element type="OBJECT" id="user" selected="true" />
179
+ <filter-element type="OBJECT" id="privilege" selected="true" />
180
+ <user-schema>
181
+ <filter-element type="OBJECT" id="table" selected="true" />
182
+ <filter-element type="OBJECT" id="view" selected="true" />
183
+ <filter-element type="OBJECT" id="materialized view" selected="true" />
184
+ <filter-element type="OBJECT" id="index" selected="true" />
185
+ <filter-element type="OBJECT" id="constraint" selected="true" />
186
+ <filter-element type="OBJECT" id="trigger" selected="true" />
187
+ <filter-element type="OBJECT" id="synonym" selected="false" />
188
+ <filter-element type="OBJECT" id="sequence" selected="true" />
189
+ <filter-element type="OBJECT" id="procedure" selected="true" />
190
+ <filter-element type="OBJECT" id="function" selected="true" />
191
+ <filter-element type="OBJECT" id="package" selected="true" />
192
+ <filter-element type="OBJECT" id="type" selected="true" />
193
+ <filter-element type="OBJECT" id="dimension" selected="true" />
194
+ <filter-element type="OBJECT" id="cluster" selected="true" />
195
+ <filter-element type="OBJECT" id="dblink" selected="true" />
196
+ </user-schema>
197
+ <public-schema>
198
+ <filter-element type="OBJECT" id="table" selected="false" />
199
+ <filter-element type="OBJECT" id="view" selected="false" />
200
+ <filter-element type="OBJECT" id="materialized view" selected="false" />
201
+ <filter-element type="OBJECT" id="index" selected="false" />
202
+ <filter-element type="OBJECT" id="constraint" selected="false" />
203
+ <filter-element type="OBJECT" id="trigger" selected="false" />
204
+ <filter-element type="OBJECT" id="synonym" selected="false" />
205
+ <filter-element type="OBJECT" id="sequence" selected="false" />
206
+ <filter-element type="OBJECT" id="procedure" selected="false" />
207
+ <filter-element type="OBJECT" id="function" selected="false" />
208
+ <filter-element type="OBJECT" id="package" selected="false" />
209
+ <filter-element type="OBJECT" id="type" selected="false" />
210
+ <filter-element type="OBJECT" id="dimension" selected="false" />
211
+ <filter-element type="OBJECT" id="cluster" selected="false" />
212
+ <filter-element type="OBJECT" id="dblink" selected="false" />
213
+ </public-schema>
214
+ <any-schema>
215
+ <filter-element type="OBJECT" id="table" selected="true" />
216
+ <filter-element type="OBJECT" id="view" selected="true" />
217
+ <filter-element type="OBJECT" id="materialized view" selected="true" />
218
+ <filter-element type="OBJECT" id="index" selected="true" />
219
+ <filter-element type="OBJECT" id="constraint" selected="true" />
220
+ <filter-element type="OBJECT" id="trigger" selected="true" />
221
+ <filter-element type="OBJECT" id="synonym" selected="true" />
222
+ <filter-element type="OBJECT" id="sequence" selected="true" />
223
+ <filter-element type="OBJECT" id="procedure" selected="true" />
224
+ <filter-element type="OBJECT" id="function" selected="true" />
225
+ <filter-element type="OBJECT" id="package" selected="true" />
226
+ <filter-element type="OBJECT" id="type" selected="true" />
227
+ <filter-element type="OBJECT" id="dimension" selected="true" />
228
+ <filter-element type="OBJECT" id="cluster" selected="true" />
229
+ <filter-element type="OBJECT" id="dblink" selected="true" />
230
+ </any-schema>
231
+ </basic-filter>
232
+ <extended-filter>
233
+ <filter-element type="RESERVED_WORD" id="keyword" selected="true" />
234
+ <filter-element type="RESERVED_WORD" id="function" selected="true" />
235
+ <filter-element type="RESERVED_WORD" id="parameter" selected="true" />
236
+ <filter-element type="RESERVED_WORD" id="datatype" selected="true" />
237
+ <filter-element type="RESERVED_WORD" id="exception" selected="true" />
238
+ <filter-element type="OBJECT" id="schema" selected="true" />
239
+ <filter-element type="OBJECT" id="user" selected="true" />
240
+ <filter-element type="OBJECT" id="role" selected="true" />
241
+ <filter-element type="OBJECT" id="privilege" selected="true" />
242
+ <user-schema>
243
+ <filter-element type="OBJECT" id="table" selected="true" />
244
+ <filter-element type="OBJECT" id="view" selected="true" />
245
+ <filter-element type="OBJECT" id="materialized view" selected="true" />
246
+ <filter-element type="OBJECT" id="index" selected="true" />
247
+ <filter-element type="OBJECT" id="constraint" selected="true" />
248
+ <filter-element type="OBJECT" id="trigger" selected="true" />
249
+ <filter-element type="OBJECT" id="synonym" selected="true" />
250
+ <filter-element type="OBJECT" id="sequence" selected="true" />
251
+ <filter-element type="OBJECT" id="procedure" selected="true" />
252
+ <filter-element type="OBJECT" id="function" selected="true" />
253
+ <filter-element type="OBJECT" id="package" selected="true" />
254
+ <filter-element type="OBJECT" id="type" selected="true" />
255
+ <filter-element type="OBJECT" id="dimension" selected="true" />
256
+ <filter-element type="OBJECT" id="cluster" selected="true" />
257
+ <filter-element type="OBJECT" id="dblink" selected="true" />
258
+ </user-schema>
259
+ <public-schema>
260
+ <filter-element type="OBJECT" id="table" selected="true" />
261
+ <filter-element type="OBJECT" id="view" selected="true" />
262
+ <filter-element type="OBJECT" id="materialized view" selected="true" />
263
+ <filter-element type="OBJECT" id="index" selected="true" />
264
+ <filter-element type="OBJECT" id="constraint" selected="true" />
265
+ <filter-element type="OBJECT" id="trigger" selected="true" />
266
+ <filter-element type="OBJECT" id="synonym" selected="true" />
267
+ <filter-element type="OBJECT" id="sequence" selected="true" />
268
+ <filter-element type="OBJECT" id="procedure" selected="true" />
269
+ <filter-element type="OBJECT" id="function" selected="true" />
270
+ <filter-element type="OBJECT" id="package" selected="true" />
271
+ <filter-element type="OBJECT" id="type" selected="true" />
272
+ <filter-element type="OBJECT" id="dimension" selected="true" />
273
+ <filter-element type="OBJECT" id="cluster" selected="true" />
274
+ <filter-element type="OBJECT" id="dblink" selected="true" />
275
+ </public-schema>
276
+ <any-schema>
277
+ <filter-element type="OBJECT" id="table" selected="true" />
278
+ <filter-element type="OBJECT" id="view" selected="true" />
279
+ <filter-element type="OBJECT" id="materialized view" selected="true" />
280
+ <filter-element type="OBJECT" id="index" selected="true" />
281
+ <filter-element type="OBJECT" id="constraint" selected="true" />
282
+ <filter-element type="OBJECT" id="trigger" selected="true" />
283
+ <filter-element type="OBJECT" id="synonym" selected="true" />
284
+ <filter-element type="OBJECT" id="sequence" selected="true" />
285
+ <filter-element type="OBJECT" id="procedure" selected="true" />
286
+ <filter-element type="OBJECT" id="function" selected="true" />
287
+ <filter-element type="OBJECT" id="package" selected="true" />
288
+ <filter-element type="OBJECT" id="type" selected="true" />
289
+ <filter-element type="OBJECT" id="dimension" selected="true" />
290
+ <filter-element type="OBJECT" id="cluster" selected="true" />
291
+ <filter-element type="OBJECT" id="dblink" selected="true" />
292
+ </any-schema>
293
+ </extended-filter>
294
+ </filters>
295
+ <sorting enabled="true">
296
+ <sorting-element type="RESERVED_WORD" id="keyword" />
297
+ <sorting-element type="RESERVED_WORD" id="datatype" />
298
+ <sorting-element type="OBJECT" id="column" />
299
+ <sorting-element type="OBJECT" id="table" />
300
+ <sorting-element type="OBJECT" id="view" />
301
+ <sorting-element type="OBJECT" id="materialized view" />
302
+ <sorting-element type="OBJECT" id="index" />
303
+ <sorting-element type="OBJECT" id="constraint" />
304
+ <sorting-element type="OBJECT" id="trigger" />
305
+ <sorting-element type="OBJECT" id="synonym" />
306
+ <sorting-element type="OBJECT" id="sequence" />
307
+ <sorting-element type="OBJECT" id="procedure" />
308
+ <sorting-element type="OBJECT" id="function" />
309
+ <sorting-element type="OBJECT" id="package" />
310
+ <sorting-element type="OBJECT" id="type" />
311
+ <sorting-element type="OBJECT" id="dimension" />
312
+ <sorting-element type="OBJECT" id="cluster" />
313
+ <sorting-element type="OBJECT" id="dblink" />
314
+ <sorting-element type="OBJECT" id="schema" />
315
+ <sorting-element type="OBJECT" id="role" />
316
+ <sorting-element type="OBJECT" id="user" />
317
+ <sorting-element type="RESERVED_WORD" id="function" />
318
+ <sorting-element type="RESERVED_WORD" id="parameter" />
319
+ </sorting>
320
+ <format>
321
+ <enforce-code-style-case value="true" />
322
+ </format>
323
+ </code-completion-settings>
324
+ <execution-engine-settings>
325
+ <statement-execution>
326
+ <fetch-block-size value="100" />
327
+ <execution-timeout value="20" />
328
+ <debug-execution-timeout value="600" />
329
+ <focus-result value="false" />
330
+ <prompt-execution value="false" />
331
+ </statement-execution>
332
+ <script-execution>
333
+ <command-line-interfaces />
334
+ <execution-timeout value="300" />
335
+ </script-execution>
336
+ <method-execution>
337
+ <execution-timeout value="30" />
338
+ <debug-execution-timeout value="600" />
339
+ <parameter-history-size value="10" />
340
+ </method-execution>
341
+ </execution-engine-settings>
342
+ <operation-settings>
343
+ <transactions>
344
+ <uncommitted-changes>
345
+ <on-project-close value="ASK" />
346
+ <on-disconnect value="ASK" />
347
+ <on-autocommit-toggle value="ASK" />
348
+ </uncommitted-changes>
349
+ <multiple-uncommitted-changes>
350
+ <on-commit value="ASK" />
351
+ <on-rollback value="ASK" />
352
+ </multiple-uncommitted-changes>
353
+ </transactions>
354
+ <session-browser>
355
+ <disconnect-session value="ASK" />
356
+ <kill-session value="ASK" />
357
+ <reload-on-filter-change value="false" />
358
+ </session-browser>
359
+ <compiler>
360
+ <compile-type value="KEEP" />
361
+ <compile-dependencies value="ASK" />
362
+ <always-show-controls value="false" />
363
+ </compiler>
364
+ <debugger>
365
+ <debugger-type value="JDBC" />
366
+ <use-generic-runners value="true" />
367
+ </debugger>
368
+ </operation-settings>
369
+ <ddl-file-settings>
370
+ <extensions>
371
+ <mapping file-type-id="VIEW" extensions="vw" />
372
+ <mapping file-type-id="TRIGGER" extensions="trg" />
373
+ <mapping file-type-id="PROCEDURE" extensions="prc" />
374
+ <mapping file-type-id="FUNCTION" extensions="fnc" />
375
+ <mapping file-type-id="PACKAGE" extensions="pkg" />
376
+ <mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
377
+ <mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
378
+ <mapping file-type-id="TYPE" extensions="tpe" />
379
+ <mapping file-type-id="TYPE_SPEC" extensions="tps" />
380
+ <mapping file-type-id="TYPE_BODY" extensions="tpb" />
381
+ </extensions>
382
+ <general>
383
+ <lookup-ddl-files value="true" />
384
+ <create-ddl-files value="false" />
385
+ <synchronize-ddl-files value="true" />
386
+ <use-qualified-names value="false" />
387
+ <make-scripts-rerunnable value="true" />
388
+ </general>
389
+ </ddl-file-settings>
390
+ <general-settings>
391
+ <regional-settings>
392
+ <date-format value="MEDIUM" />
393
+ <number-format value="UNGROUPED" />
394
+ <locale value="SYSTEM_DEFAULT" />
395
+ <use-custom-formats value="false" />
396
+ </regional-settings>
397
+ <environment>
398
+ <environment-types>
399
+ <environment-type id="$NODE_ENV$" name="$NODE_ENV$" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
400
+ <environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
401
+ <environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
402
+ <environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
403
+ </environment-types>
404
+ <visibility-settings>
405
+ <connection-tabs value="true" />
406
+ <dialog-headers value="true" />
407
+ <object-editor-tabs value="true" />
408
+ <script-editor-tabs value="false" />
409
+ <execution-result-tabs value="true" />
410
+ </visibility-settings>
411
+ </environment>
412
+ </general-settings>
413
+ </component>
414
+ </project>
@@ -0,0 +1,7 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+ <inspection_tool class="TsLint" enabled="true" level="WARNING" enabled_by_default="true" />
6
+ </profile>
7
+ </component>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="JavaScriptLibraryMappings">
4
+ <includedPredefinedLibrary name="Node.js Core" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/color2name.iml" filepath="$PROJECT_DIR$/.idea/color2name.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,6 @@
1
+ {
2
+ "presets": [
3
+ "@babel/env",
4
+ "@babel/typescript"
5
+ ]
6
+ }
@@ -0,0 +1,45 @@
1
+ import fs from 'fs'
2
+
3
+ /**
4
+ * It takes an array of Objects {name, color} and returns an object with a color set compatible with this repository
5
+ * the color is expected to be a hexadecimal value with 6 characters (+ the sharp at the beginning of the string) e.g. "#000000"
6
+ *
7
+ * @param colorSet
8
+ */
9
+ export function buildColorSet (colorSet) {
10
+ const colors = []
11
+ colorSet.forEach((o) => {
12
+ // Extract the RGB values from the hex string
13
+ const r = parseInt(o.color.substring(1, 3), 16)
14
+ const g = parseInt(o.color.substring(3, 5), 16)
15
+ const b = parseInt(o.color.substring(5, 7), 16)
16
+ const color = [r, g, b, o.name]
17
+ colors.push(color)
18
+ })
19
+ return colors
20
+ }
21
+
22
+ function processSet (newSet, filename) {
23
+ const generated = buildColorSet(newSet)
24
+ const setName = `const ${filename}ColorSet: RGBCOLORDEF[] = `
25
+ const exportName = `
26
+
27
+ export default ${filename}ColorSet`
28
+
29
+ const generatedJson = setName + JSON.stringify(generated, null, 2) + exportName
30
+
31
+ fs.writeFile('./src/data/' + filename + 'ColorSet.ts', generatedJson, (err, data) => {
32
+ if (err) {
33
+ return console.log(err)
34
+ }
35
+ console.log(data)
36
+ })
37
+ }
38
+
39
+ const filename = process.argv[2].replace(/[^a-z0-9]/gi, '')
40
+ const fileUri = './src/data/' + filename + '.json'
41
+ console.log('Reading ' + fileUri)
42
+ const set = fs.readFileSync(fileUri, 'utf8').replace(/\r\n/g, '\n').toString()
43
+ const jsonSet = JSON.parse(set)
44
+ console.log(jsonSet)
45
+ processSet(jsonSet, filename)
@@ -0,0 +1,2 @@
1
+ !function(r,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("color2name",[],e):"object"==typeof exports?exports.color2name=e():r.color2name=e()}(this,(()=>(()=>{"use strict";var r={d:(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(r,e)=>Object.prototype.hasOwnProperty.call(r,e),r:r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})}},e={};r.r(e),r.d(e,{closest:()=>S,cssColorSet:()=>t,distance:()=>O,rgbToHex:()=>I});const t=[[240,248,255,"aliceblue"],[250,235,215,"antiquewhite"],[0,255,255,"aqua"],[127,255,212,"aquamarine"],[240,255,255,"azure"],[245,245,220,"beige"],[255,228,196,"bisque"],[0,0,0,"black"],[255,235,205,"blanchedalmond"],[0,0,255,"blue"],[138,43,226,"blueviolet"],[165,42,42,"brown"],[222,184,135,"burlywood"],[95,158,160,"cadetblue"],[127,255,0,"chartreuse"],[210,105,30,"chocolate"],[255,127,80,"coral"],[100,149,237,"cornflowerblue"],[255,248,220,"cornsilk"],[220,20,60,"crimson"],[0,255,255,"cyan"],[0,0,139,"darkblue"],[0,139,139,"darkcyan"],[184,134,11,"darkgoldenrod"],[169,169,169,"darkgray"],[0,100,0,"darkgreen"],[169,169,169,"darkgrey"],[189,183,107,"darkkhaki"],[139,0,139,"darkmagenta"],[85,107,47,"darkolivegreen"],[255,140,0,"darkorange"],[153,50,204,"darkorchid"],[139,0,0,"darkred"],[233,150,122,"darksalmon"],[143,188,143,"darkseagreen"],[72,61,139,"darkslateblue"],[47,79,79,"darkslategray"],[47,79,79,"darkslategrey"],[0,206,209,"darkturquoise"],[148,0,211,"darkviolet"],[255,20,147,"deeppink"],[0,191,255,"deepskyblue"],[105,105,105,"dimgray"],[105,105,105,"dimgrey"],[30,144,255,"dodgerblue"],[178,34,34,"firebrick"],[255,250,240,"floralwhite"],[34,139,34,"forestgreen"],[255,0,255,"fuchsia"],[220,220,220,"gainsboro"],[248,248,255,"ghostwhite"],[255,215,0,"gold"],[218,165,32,"goldenrod"],[128,128,128,"gray"],[0,128,0,"green"],[173,255,47,"greenyellow"],[128,128,128,"grey"],[240,255,240,"honeydew"],[255,105,180,"hotpink"],[205,92,92,"indianred"],[75,0,130,"indigo"],[255,255,240,"ivory"],[240,230,140,"khaki"],[230,230,250,"lavender"],[255,240,245,"lavenderblush"],[124,252,0,"lawngreen"],[255,250,205,"lemonchiffon"],[173,216,230,"lightblue"],[240,128,128,"lightcoral"],[224,255,255,"lightcyan"],[250,250,210,"lightgoldenrodyellow"],[211,211,211,"lightgray"],[144,238,144,"lightgreen"],[211,211,211,"lightgrey"],[255,182,193,"lightpink"],[255,160,122,"lightsalmon"],[32,178,170,"lightseagreen"],[135,206,250,"lightskyblue"],[119,136,153,"lightslategray"],[119,136,153,"lightslategrey"],[176,196,222,"lightsteelblue"],[255,255,224,"lightyellow"],[0,255,0,"lime"],[50,205,50,"limegreen"],[250,240,230,"linen"],[255,0,255,"magenta"],[128,0,0,"maroon"],[102,205,170,"mediumaquamarine"],[0,0,205,"mediumblue"],[186,85,211,"mediumorchid"],[147,112,219,"mediumpurple"],[60,179,113,"mediumseagreen"],[123,104,238,"mediumslateblue"],[0,250,154,"mediumspringgreen"],[72,209,204,"mediumturquoise"],[199,21,133,"mediumvioletred"],[25,25,112,"midnightblue"],[245,255,250,"mintcream"],[255,228,225,"mistyrose"],[255,228,181,"moccasin"],[255,222,173,"navajowhite"],[0,0,128,"navy"],[253,245,230,"oldlace"],[128,128,0,"olive"],[107,142,35,"olivedrab"],[255,165,0,"orange"],[255,69,0,"orangered"],[218,112,214,"orchid"],[238,232,170,"palegoldenrod"],[152,251,152,"palegreen"],[175,238,238,"paleturquoise"],[219,112,147,"palevioletred"],[255,239,213,"papayawhip"],[255,218,185,"peachpuff"],[205,133,63,"peru"],[255,192,203,"pink"],[221,160,221,"plum"],[176,224,230,"powderblue"],[128,0,128,"purple"],[102,51,153,"rebeccapurple"],[255,0,0,"red"],[188,143,143,"rosybrown"],[65,105,225,"royalblue"],[139,69,19,"saddlebrown"],[250,128,114,"salmon"],[244,164,96,"sandybrown"],[46,139,87,"seagreen"],[255,245,238,"seashell"],[160,82,45,"sienna"],[192,192,192,"silver"],[135,206,235,"skyblue"],[106,90,205,"slateblue"],[112,128,144,"slategray"],[112,128,144,"slategrey"],[255,250,250,"snow"],[0,255,127,"springgreen"],[70,130,180,"steelblue"],[210,180,140,"tan"],[0,128,128,"teal"],[216,191,216,"thistle"],[255,99,71,"tomato"],[64,224,208,"turquoise"],[238,130,238,"violet"],[245,222,179,"wheat"],[255,255,255,"white"],[245,245,245,"whitesmoke"],[255,255,0,"yellow"],[154,205,50,"yellowgreen"]];function n(r){return function(r){if(Array.isArray(r))return o(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function(r,e){if(!r)return;if("string"==typeof r)return o(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);"Object"===t&&r.constructor&&(t=r.constructor.name);if("Map"===t||"Set"===t)return Array.from(r);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o(r,e)}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function a(r){var e=r.substring(1);if(e.length>2){if(3===e.length)return function(r){return n(r).map((function(r){return(r+r).toUpperCase()}))}(e);var t=e.match(/../g);return null!=t?[t[0].toUpperCase(),t[1].toUpperCase(),t[2].toUpperCase()]:[]}return[]}function i(r){return null!==(null==r?void 0:r.r)&&null!==(null==r?void 0:r.g)&&null!==(null==r?void 0:r.b)?"#".concat(null==r?void 0:r.r.toString(16)).concat(null==r?void 0:r.g.toString(16)).concat(null==r?void 0:r.b.toString(16)):"#errorr"}function l(r){var e=r.match(s);if(null!=e){var t=h(e[1]);if(t.length>=2)return[t[0],t[1],t[2]]}throw new Error("Can't parse rgb color: ".concat(r))}function u(r){if(r.length>=2)return{r:b(r[0]),g:b(r[1]),b:b(r[2])};throw new Error("Invalid rgb color: ".concat(r.join(", ")))}function c(r){if(null===r||r.length<2)throw new Error("Invalid hsl color: ".concat(r.join(", ")));var e=function(r){if(r.length>=2)return{h:b(r[0]),s:b(r[1],100),l:b(r[2],100)};throw new Error("Invalid hsl color: ".concat(r.join(", ")))}(r),t=e.h,n=e.s,o=e.l;n/=100,o/=100;var a=(1-Math.abs(2*o-1))*n,i=a*(1-Math.abs(t/60%2-1)),l=o-a/2,u=0,c=0,f=0;return t>=0&&t<60?(u=a,c=i,f=0):t>=60&&t<120?(u=i,c=a,f=0):t>=120&&t<180?(u=0,c=a,f=i):t>=180&&t<240?(u=0,c=i,f=a):t>=240&&t<300?(u=i,c=0,f=a):t>=300&&t<360&&(u=a,c=0,f=i),{r:u=Math.round(255*(u+l)),g:c=Math.round(255*(c+l)),b:f=Math.round(255*(f+l))}}var f=/^#([\da-f]{6}|[\da-f]{3})/i,s=/^rgba?\(([^)]+)\)/i,d=/^hsla?\(([^)]+)\)/i,g=/^[0-9]*$/;function h(r){return r.includes(",")?r.split(/[,\\/]/).map((function(r){return r.trim()})):r.split(/[ \\/]/).map((function(r){return r.trim()})).filter(Boolean)}function b(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:255;if(r=r.trim(),g.test(r))return parseInt(r,10);if(r.endsWith("%"))return parseFloat(r)/100*e;if(r.endsWith("deg")){for(var t=parseFloat(r);t<0;)t+=360;for(;t>360;)t-=360;return t/360*e}throw new Error("Invalid value: ".concat(r))}function p(r){if(f.test(r)){var e=a(r);if(e.length>0)return function(r){if(r.length>=2)return{r:parseInt(r[0],16),g:parseInt(r[1],16),b:parseInt(r[2],16)};throw new Error("Invalid Hex color: ".concat(r.join(", ")))}(e)}else if(s.test(r)){var t=l(r);if(t.length>0)return u(t)}else if(d.test(r)){var n=function(r){var e=r.match(d);if(null!=e){var t=h(e[1]);if(t.length>=2)return[t[0],t[1],t[2]]}throw new Error("Can't parse hsl color: ".concat(r))}(r);if(n.length>0)return c(n)}throw new Error("Invalid color: ".concat(r))}function y(r){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},y(r)}function m(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.push.apply(t,n)}return t}function v(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?m(Object(t),!0).forEach((function(e){w(r,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):m(Object(t)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))}))}return r}function w(r,e,t){return(e=function(r){var e=function(r,e){if("object"!==y(r)||null===r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!==y(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}(r,"string");return"symbol"===y(e)?e:String(e)}(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function k(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=function(r,e){if(!r)return;if("string"==typeof r)return j(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);"Object"===t&&r.constructor&&(t=r.constructor.name);if("Map"===t||"Set"===t)return Array.from(r);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return j(r,e)}(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,o=function(){};return{s:o,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return i=r.done,r},e:function(r){l=!0,a=r},f:function(){try{i||null==t.return||t.return()}finally{if(l)throw a}}}}function j(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function S(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,n=Number.MAX_SAFE_INTEGER,o={name:"error",color:"#F00"};if(e.length<1)return o;var a=Object.values(p(r));if(a.length>2){var l,u=k(e);try{for(u.s();!(l=u.n()).done;){var c=l.value,f=O(a,c);if(f<n&&(n=f,o.name=c[3],o.color="rgb(".concat(c[0],",").concat(c[1],",").concat(c[2],")")),0===f)break}}catch(r){u.e(r)}finally{u.f()}}for(var s=arguments.length,d=new Array(s>2?s-2:0),g=2;g<s;g++)d[g-2]=arguments[g];if((null==d?void 0:d.length)>0&&null!==(null==d?void 0:d.info)){var h=p(o.color),b=i(h);return v(v({},o),{},{hex:b,gap:n})}return o}function O(r,e){return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2)+Math.pow(e[2]-r[2],2))}function I(r){if(s.test(r)){var e=l(r);if(e.length>0)return i(u(e))}throw new Error("Invalid color: ".concat(r))}return e})()));
2
+ //# sourceMappingURL=color2name.js.map