attrs-in-props 2.11.131 → 2.11.164

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 (3) hide show
  1. package/LICENSE +21 -0
  2. package/index.js +1057 -0
  3. package/package.json +5 -2
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 symbo.ls
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/index.js ADDED
@@ -0,0 +1,1057 @@
1
+ 'use strict'
2
+
3
+ import { isDefined, isString } from '@domql/utils'
4
+
5
+ export const ARIA_ROLES = [
6
+ 'alert',
7
+ 'alertdialog',
8
+ 'application',
9
+ 'article',
10
+ 'banner',
11
+ 'button',
12
+ 'cell',
13
+ 'checkbox',
14
+ 'columnheader',
15
+ 'combobox',
16
+ 'complementary',
17
+ 'contentinfo',
18
+ 'definition',
19
+ 'dialog',
20
+ 'directory',
21
+ 'document',
22
+ 'feed',
23
+ 'figure',
24
+ 'form',
25
+ 'grid',
26
+ 'gridcell',
27
+ 'group',
28
+ 'heading',
29
+ 'img',
30
+ 'link',
31
+ 'list',
32
+ 'listbox',
33
+ 'listitem',
34
+ 'log',
35
+ 'main',
36
+ 'marquee',
37
+ 'math',
38
+ 'menu',
39
+ 'menubar',
40
+ 'menuitem',
41
+ 'menuitemcheckbox',
42
+ 'menuitemradio',
43
+ 'navigation',
44
+ 'none',
45
+ 'note',
46
+ 'option',
47
+ 'presentation',
48
+ 'progressbar',
49
+ 'radio',
50
+ 'radiogroup',
51
+ 'region',
52
+ 'row',
53
+ 'rowgroup',
54
+ 'rowheader',
55
+ 'scrollbar',
56
+ 'search',
57
+ 'searchbox',
58
+ 'separator',
59
+ 'slider',
60
+ 'spinbutton',
61
+ 'status',
62
+ 'switch',
63
+ 'tab',
64
+ 'table',
65
+ 'tablist',
66
+ 'tabpanel',
67
+ 'term',
68
+ 'textbox',
69
+ 'timer',
70
+ 'toolbar',
71
+ 'tooltip',
72
+ 'tree',
73
+ 'treegrid',
74
+ 'treeitem'
75
+ ]
76
+
77
+ export const HTML_ATTRIBUTES = {
78
+ default: [
79
+ 'accesskey',
80
+ 'autofocus',
81
+ 'class',
82
+ 'contenteditable',
83
+ 'contextmenu',
84
+ 'dir',
85
+ 'draggable',
86
+ 'hidden',
87
+ 'id',
88
+ 'lang',
89
+ 'part',
90
+ 'placeholder',
91
+ 'slot',
92
+ 'spellcheck',
93
+ 'style',
94
+ 'tabindex',
95
+ 'title',
96
+ 'translate',
97
+ 'inert',
98
+ 'radiogroup',
99
+ 'role',
100
+ 'about',
101
+ 'datatype',
102
+ 'inlist',
103
+ 'prefix',
104
+ 'property',
105
+ 'resource',
106
+ 'typeof',
107
+ 'vocab',
108
+ 'autocapitalize',
109
+ 'autocorrect',
110
+ 'autosave',
111
+ 'color',
112
+ 'itemprop',
113
+ 'itemscope',
114
+ 'itemtype',
115
+ 'itemid',
116
+ 'itemref',
117
+ 'results',
118
+ 'security',
119
+ 'unselectable',
120
+ 'is'
121
+ ],
122
+
123
+ a: [
124
+ 'accesskey',
125
+ 'charset',
126
+ 'coords',
127
+ 'download',
128
+ 'href',
129
+ 'hreflang',
130
+ 'name',
131
+ 'rel',
132
+ 'rev',
133
+ 'shape',
134
+ 'target',
135
+ 'type'
136
+ ],
137
+
138
+ aria: [
139
+ 'aria-activedescendant',
140
+ 'aria-atomic',
141
+ 'aria-autocomplete',
142
+ 'aria-checked',
143
+ 'aria-colcount',
144
+ 'aria-colindex',
145
+ 'aria-colspan',
146
+ 'aria-controls',
147
+ 'aria-current',
148
+ 'aria-describedby',
149
+ 'aria-details',
150
+ 'aria-dropeffect',
151
+ 'aria-errormessage',
152
+ 'aria-expanded',
153
+ 'aria-flowto',
154
+ 'aria-grabbed',
155
+ 'aria-haspopup',
156
+ 'aria-hidden',
157
+ 'aria-invalid',
158
+ 'aria-keyshortcuts',
159
+ 'aria-label',
160
+ 'aria-labelledby',
161
+ 'aria-level',
162
+ 'aria-live',
163
+ 'aria-modal',
164
+ 'aria-multiline',
165
+ 'aria-multiselectable',
166
+ 'aria-orientation',
167
+ 'aria-owns',
168
+ 'aria-placeholder',
169
+ 'aria-posinset',
170
+ 'aria-pressed',
171
+ 'aria-readonly',
172
+ 'aria-relevant',
173
+ 'aria-required',
174
+ 'aria-roledescription',
175
+ 'aria-rowcount',
176
+ 'aria-rowindex',
177
+ 'aria-rowspan',
178
+ 'aria-selected',
179
+ 'aria-setsize',
180
+ 'aria-sort',
181
+ 'aria-valuemax',
182
+ 'aria-valuemin',
183
+ 'aria-valuenow',
184
+ 'aria-valuetext'
185
+ ],
186
+
187
+ anchor: [
188
+ 'download',
189
+ 'href',
190
+ 'hreflang',
191
+ 'media',
192
+ 'ping',
193
+ 'rel',
194
+ 'target',
195
+ 'type',
196
+ 'referrerpolicy'
197
+ ],
198
+
199
+ audio: [
200
+
201
+ ],
202
+
203
+ area: [
204
+ 'alt',
205
+ 'coords',
206
+ 'download',
207
+ 'href',
208
+ 'hreflang',
209
+ 'media',
210
+ 'referrerpolicy',
211
+ 'rel',
212
+ 'shape',
213
+ 'target',
214
+ 'ping'
215
+ ],
216
+
217
+ base: [
218
+ 'href',
219
+ 'target'
220
+ ],
221
+
222
+ blockquote: [
223
+ 'cite'
224
+ ],
225
+
226
+ button: [
227
+ 'disabled',
228
+ 'form',
229
+ 'formaction',
230
+ 'formenctype',
231
+ 'formmethod',
232
+ 'formnovalidate',
233
+ 'formtarget',
234
+ 'name',
235
+ 'type',
236
+ 'value'
237
+ ],
238
+
239
+ canvas: [
240
+ 'height',
241
+ 'width'
242
+ ],
243
+
244
+ col: [
245
+ 'span',
246
+ 'width'
247
+ ],
248
+
249
+ colgroup: [
250
+ 'span'
251
+ ],
252
+
253
+ data: [
254
+ 'value'
255
+ ],
256
+
257
+ details: [
258
+ 'open'
259
+ ],
260
+
261
+ del: [
262
+ 'cite',
263
+ 'datetime'
264
+ ],
265
+
266
+ dialog: [
267
+ 'open'
268
+ ],
269
+
270
+ embed: [
271
+ 'height',
272
+ 'src',
273
+ 'type',
274
+ 'width'
275
+ ],
276
+
277
+ fieldset: [
278
+ 'disabled',
279
+ 'form',
280
+ 'name'
281
+ ],
282
+
283
+ form: [
284
+ 'acceptcharset',
285
+ 'action',
286
+ 'autocomplete',
287
+ 'enctype',
288
+ 'method',
289
+ 'name',
290
+ 'novalidate',
291
+ 'target',
292
+ 'rel'
293
+ ],
294
+
295
+ html: [
296
+ 'manifest'
297
+ ],
298
+
299
+ iframe: [
300
+ 'allow',
301
+ 'allowfullscreen',
302
+ 'allowtransparency',
303
+ 'frameborder',
304
+ 'height',
305
+ 'loading',
306
+ 'marginheight',
307
+ 'marginwidth',
308
+ 'name',
309
+ 'referrerpolicy',
310
+ 'sandbox',
311
+ 'scrolling',
312
+ 'seamless',
313
+ 'src',
314
+ 'srcdoc',
315
+ 'width'
316
+ ],
317
+
318
+ img: [
319
+ 'alt',
320
+ 'crossorigin',
321
+ 'decoding',
322
+ 'height',
323
+ 'ismap',
324
+ 'loading',
325
+ 'referrerpolicy',
326
+ 'sizes',
327
+ 'src',
328
+ 'srcset',
329
+ 'usemap',
330
+ 'width'
331
+ ],
332
+
333
+ ins: [
334
+ 'cite',
335
+ 'datetime'
336
+ ],
337
+
338
+ input: [
339
+ 'accept',
340
+ 'alt',
341
+ 'autocomplete',
342
+ 'capture',
343
+ 'checked',
344
+ 'crossorigin',
345
+ 'disabled',
346
+ 'form',
347
+ 'formaction',
348
+ 'formenctype',
349
+ 'formmethod',
350
+ 'formnovalidate',
351
+ 'formtarget',
352
+ 'height',
353
+ 'indeterminate',
354
+ 'list',
355
+ 'max',
356
+ 'maxlength',
357
+ 'min',
358
+ 'minlength',
359
+ 'multiple',
360
+ 'name',
361
+ 'pattern',
362
+ 'placeholder',
363
+ 'readonly',
364
+ 'required',
365
+ 'size',
366
+ 'src',
367
+ 'step',
368
+ 'type',
369
+ 'value',
370
+ 'width'
371
+ ],
372
+
373
+ keygen: [
374
+ 'challenge',
375
+ 'disabled',
376
+ 'form',
377
+ 'keytype',
378
+ 'keyparams',
379
+ 'name'
380
+ ],
381
+
382
+ label: [
383
+ 'form',
384
+ 'for'
385
+ ],
386
+
387
+ li: [
388
+ 'value'
389
+ ],
390
+
391
+ link: [
392
+ 'as',
393
+ 'crossorigin',
394
+ 'href',
395
+ 'hreflang',
396
+ 'integrity',
397
+ 'media',
398
+ 'imagesrcset',
399
+ 'imagesizes',
400
+ 'referrerpolicy',
401
+ 'rel',
402
+ 'sizes',
403
+ 'type',
404
+ 'charset'
405
+ ],
406
+
407
+ map: [
408
+ 'name'
409
+ ],
410
+
411
+ menu: [
412
+ 'type'
413
+ ],
414
+
415
+ media: [
416
+ 'autoplay',
417
+ 'controls',
418
+ 'currenttime',
419
+ 'defaultmuted',
420
+ 'defaultplaybackrate',
421
+ 'loop',
422
+ 'mediagroup',
423
+ 'muted',
424
+ 'playsinline',
425
+ 'preload',
426
+ 'src',
427
+ 'volume'
428
+ ],
429
+
430
+ meta: [
431
+ 'charset',
432
+ 'content',
433
+ 'http-equiv',
434
+ 'name',
435
+ 'media'
436
+ ],
437
+
438
+ meter: [
439
+ 'form',
440
+ 'high',
441
+ 'low',
442
+ 'max',
443
+ 'min',
444
+ 'optimum',
445
+ 'value'
446
+ ],
447
+
448
+ quote: [
449
+ 'cite'
450
+ ],
451
+
452
+ object: [
453
+ 'classid',
454
+ 'data',
455
+ 'form',
456
+ 'height',
457
+ 'name',
458
+ 'type',
459
+ 'usemap',
460
+ 'width',
461
+ 'wmode'
462
+ ],
463
+
464
+ ol: [
465
+ 'reversed',
466
+ 'start',
467
+ 'type'
468
+ ],
469
+
470
+ optgroup: [
471
+ 'disabled',
472
+ 'label'
473
+ ],
474
+
475
+ option: [
476
+ 'disabled',
477
+ 'label',
478
+ 'selected',
479
+ 'value'
480
+ ],
481
+
482
+ output: [
483
+ 'form',
484
+ 'for',
485
+ 'name'
486
+ ],
487
+
488
+ param: [
489
+ 'name',
490
+ 'value'
491
+ ],
492
+
493
+ progress: [
494
+ 'max',
495
+ 'value'
496
+ ],
497
+
498
+ slot: [
499
+ 'name'
500
+ ],
501
+
502
+ script: [
503
+ 'async',
504
+ 'charset',
505
+ 'crossorigin',
506
+ 'defer',
507
+ 'integrity',
508
+ 'nomodule',
509
+ 'nonce',
510
+ 'referrerpolicy',
511
+ 'src',
512
+ 'type'
513
+ ],
514
+
515
+ select: [
516
+ 'autocomplete',
517
+ 'disabled',
518
+ 'form',
519
+ 'multiple',
520
+ 'name',
521
+ 'required',
522
+ 'size',
523
+ 'value',
524
+
525
+ 'onchange'
526
+ ],
527
+
528
+ source: [
529
+ 'height',
530
+ 'media',
531
+ 'sizes',
532
+ 'src',
533
+ 'srcset',
534
+ 'type',
535
+ 'width'
536
+ ],
537
+
538
+ style: [
539
+ 'media',
540
+ 'nonce',
541
+ 'scoped',
542
+ 'type'
543
+ ],
544
+
545
+ table: [
546
+ 'align',
547
+ 'bgcolor',
548
+ 'border',
549
+ 'cellpadding',
550
+ 'cellspacing',
551
+ 'frame',
552
+ 'rules',
553
+ 'summary',
554
+ 'width'
555
+ ],
556
+
557
+ textarea: [
558
+ 'autocomplete',
559
+ 'cols',
560
+ 'dirname',
561
+ 'disabled',
562
+ 'form',
563
+ 'maxlength',
564
+ 'minlength',
565
+ 'name',
566
+ 'placeholder',
567
+ 'readonly',
568
+ 'required',
569
+ 'rows',
570
+ 'value',
571
+ 'wrap'
572
+ ],
573
+
574
+ td: [
575
+ 'align',
576
+ 'colspan',
577
+ 'headers',
578
+ 'rowspan',
579
+ 'scope',
580
+ 'abbr',
581
+ 'height',
582
+ 'width',
583
+ 'valign'
584
+ ],
585
+
586
+ th: [
587
+ 'align',
588
+ 'colspan',
589
+ 'headers',
590
+ 'rowspan',
591
+ 'scope',
592
+ 'abbr'
593
+ ],
594
+
595
+ time: [
596
+ 'datetime'
597
+ ],
598
+
599
+ track: [
600
+ 'default',
601
+ 'kind',
602
+ 'label',
603
+ 'src',
604
+ 'srclang'
605
+ ],
606
+
607
+ video: [
608
+ 'height',
609
+ 'playsinline',
610
+ 'poster',
611
+ 'width',
612
+ 'disablepictureinpicture',
613
+ 'disableremoteplayback'
614
+ ],
615
+
616
+ svg: [
617
+ 'className',
618
+ 'class',
619
+ 'color',
620
+ 'height',
621
+ 'id',
622
+ 'lang',
623
+ 'max',
624
+ 'media',
625
+ 'method',
626
+ 'min',
627
+ 'name',
628
+ 'style',
629
+ 'target',
630
+ 'type',
631
+ 'width',
632
+
633
+ // Other HTML properties supported by SVG elements in browsers
634
+ 'role',
635
+ 'tabindex',
636
+ 'crossorigin',
637
+
638
+ // SVG Specific attributes
639
+ 'accent-height',
640
+ 'accumulate',
641
+ 'additive',
642
+ 'alignment-baseline',
643
+ 'allowReorder',
644
+ 'alphabetic',
645
+ 'amplitude',
646
+ 'arabic-form',
647
+ 'ascent',
648
+ 'attributeName',
649
+ 'attributeType',
650
+ 'autoReverse',
651
+ 'azimuth',
652
+ 'baseFrequency',
653
+ 'baseline-shift',
654
+ 'baseProfile',
655
+ 'bbox',
656
+ 'begin',
657
+ 'bias',
658
+ 'by',
659
+ 'calcMode',
660
+ 'cap-height',
661
+ 'clip',
662
+ 'clip-path',
663
+ 'clipPathUnits',
664
+ 'clip-rule',
665
+ 'color-interpolation',
666
+ 'color-interpolation-filters',
667
+ 'color-profile',
668
+ 'color-rendering',
669
+ 'contentScriptType',
670
+ 'contentStyleType',
671
+ 'cursor',
672
+ 'cx',
673
+ 'cy',
674
+ 'd',
675
+ 'decelerate',
676
+ 'descent',
677
+ 'diffuseConstant',
678
+ 'direction',
679
+ 'display',
680
+ 'divisor',
681
+ 'dominant-baseline',
682
+ 'dur',
683
+ 'dx',
684
+ 'dy',
685
+ 'edgeMode',
686
+ 'elevation',
687
+ 'enable-background',
688
+ 'end',
689
+ 'exponent',
690
+ 'externalResourcesRequired',
691
+ 'fill',
692
+ 'fill-opacity',
693
+ 'fill-rule',
694
+ 'filter',
695
+ 'filterRes',
696
+ 'filterUnits',
697
+ 'flood-color',
698
+ 'flood-opacity',
699
+ 'focusable',
700
+ 'font-family',
701
+ 'font-size',
702
+ 'font-size-adjust',
703
+ 'font-stretch',
704
+ 'font-style',
705
+ 'font-variant',
706
+ 'font-weight',
707
+ 'format',
708
+ 'from',
709
+ 'fx',
710
+ 'fy',
711
+ 'g1',
712
+ 'g2',
713
+ 'glyph-name',
714
+ 'glyph-orientation-horizontal',
715
+ 'glyph-orientation-vertical',
716
+ 'glyphRef',
717
+ 'gradientTransform',
718
+ 'gradientUnits',
719
+ 'hanging',
720
+ 'href',
721
+ 'horiz-adv-x',
722
+ 'horiz-origin-x',
723
+ 'ideographic',
724
+ 'image-rendering',
725
+ 'in2',
726
+ 'in',
727
+ 'intercept',
728
+ 'k1',
729
+ 'k2',
730
+ 'k3',
731
+ 'k4',
732
+ 'k',
733
+ 'kernelMatrix',
734
+ 'kernelUnitLength',
735
+ 'kerning',
736
+ 'keyPoints',
737
+ 'keySplines',
738
+ 'keyTimes',
739
+ 'lengthAdjust',
740
+ 'letter-spacing',
741
+ 'lighting-color',
742
+ 'limitingConeAngle',
743
+ 'local',
744
+ 'marker-end',
745
+ 'markerHeight',
746
+ 'marker-mid',
747
+ 'marker-start',
748
+ 'markerUnits',
749
+ 'markerWidth',
750
+ 'mask',
751
+ 'maskContentUnits',
752
+ 'maskUnits',
753
+ 'mathematical',
754
+ 'mode',
755
+ 'numOctaves',
756
+ 'offset',
757
+ 'opacity',
758
+ 'operator',
759
+ 'order',
760
+ 'orient',
761
+ 'orientation',
762
+ 'origin',
763
+ 'overflow',
764
+ 'overline-position',
765
+ 'overline-thickness',
766
+ 'paint-order',
767
+ 'panose-1',
768
+ 'path',
769
+ 'pathLength',
770
+ 'patternContentUnits',
771
+ 'patternTransform',
772
+ 'patternUnits',
773
+ 'pointer-events',
774
+ 'points',
775
+ 'pointsAtX',
776
+ 'pointsAtY',
777
+ 'pointsAtZ',
778
+ 'preserveAlpha',
779
+ 'preserveAspectRatio',
780
+ 'primitiveUnits',
781
+ 'r',
782
+ 'radius',
783
+ 'refX',
784
+ 'refY',
785
+ 'rendering-intent',
786
+ 'repeatCount',
787
+ 'repeatDur',
788
+ 'requiredExtensions',
789
+ 'requiredFeatures',
790
+ 'restart',
791
+ 'result',
792
+ 'rotate',
793
+ 'rx',
794
+ 'ry',
795
+ 'scale',
796
+ 'seed',
797
+ 'shape-rendering',
798
+ 'slope',
799
+ 'spacing',
800
+ 'specularConstant',
801
+ 'specularExponent',
802
+ 'speed',
803
+ 'spreadMethod',
804
+ 'startOffset',
805
+ 'stdDeviation',
806
+ 'stemh',
807
+ 'stemv',
808
+ 'stitchTiles',
809
+ 'stop-color',
810
+ 'stop-opacity',
811
+ 'strikethrough-position',
812
+ 'strikethrough-thickness',
813
+ 'string',
814
+ 'stroke',
815
+ 'stroke-dasharray',
816
+ 'stroke-dashoffset',
817
+ 'stroke-linecap',
818
+ 'stroke-linejoin',
819
+ 'stroke-miterlimit',
820
+ 'stroke-opacity',
821
+ 'stroke-width',
822
+ 'surfaceScale',
823
+ 'systemLanguage',
824
+ 'tableValues',
825
+ 'targetX',
826
+ 'targetY',
827
+ 'text-anchor',
828
+ 'text-decoration',
829
+ 'textLength',
830
+ 'text-rendering',
831
+ 'to',
832
+ 'transform',
833
+ 'u1',
834
+ 'u2',
835
+ 'underline-position',
836
+ 'underline-thickness',
837
+ 'unicode',
838
+ 'unicode-bidi',
839
+ 'unicode-range',
840
+ 'units-per-em',
841
+ 'v-alphabetic',
842
+ 'values',
843
+ 'vector-effect',
844
+ 'version',
845
+ 'vert-adv-y',
846
+ 'vert-origin-x',
847
+ 'vert-origin-y',
848
+ 'v-hanging',
849
+ 'v-ideographic',
850
+ 'viewBox',
851
+ 'viewTarget',
852
+ 'visibility',
853
+ 'v-mathematical',
854
+ 'widths',
855
+ 'word-spacing',
856
+ 'writing-mode',
857
+ 'x1',
858
+ 'x2',
859
+ 'x',
860
+ 'xChannelSelector',
861
+ 'x-height',
862
+ 'xlink:actuate',
863
+ 'xlink:arcrole',
864
+ 'xlink:href',
865
+ 'xlink:role',
866
+ 'xlink:show',
867
+ 'xlink:title',
868
+ 'xlink:type',
869
+ 'xml:base',
870
+ 'xml:lang',
871
+ 'xmlns',
872
+ 'xmlns:xlink',
873
+ 'xml:space',
874
+ 'y1',
875
+ 'y2',
876
+ 'y',
877
+ 'yChannelSelector',
878
+ 'z',
879
+ 'zoomAndPan'
880
+ ]
881
+ }
882
+
883
+ export const DOM_EVENTS = [
884
+ // Clipboard Events
885
+ 'oncopy',
886
+ 'oncut',
887
+ 'onpaste',
888
+
889
+ // Composition Events
890
+ 'oncompositionend',
891
+ 'oncompositionstart',
892
+ 'oncompositionupdate',
893
+
894
+ // Focus Events
895
+ 'onfocus',
896
+ 'onfocusin',
897
+ 'onfocusout',
898
+ 'onblur',
899
+
900
+ // Form Events
901
+ 'onchange',
902
+ 'onbeforeinput',
903
+ 'oninput',
904
+ 'onreset',
905
+ 'onsubmit',
906
+ 'oninvalid',
907
+ 'onformdata',
908
+
909
+ // Image Events
910
+ 'onload',
911
+ 'onerror', // also a Media Event
912
+
913
+ // Detail Events
914
+ 'ontoggle',
915
+
916
+ // Keyboard Events
917
+ 'onkeydown',
918
+ 'onkeypress',
919
+ 'onkeyup',
920
+
921
+ // Media Events
922
+ 'onabort',
923
+ 'oncanplay',
924
+ 'oncanplaythrough',
925
+ 'oncuechange',
926
+ 'ondurationchange',
927
+ 'onemptied',
928
+ 'onencrypted',
929
+ 'onended',
930
+ 'onloadeddata',
931
+ 'onloadedmetadata',
932
+ 'onloadstart',
933
+ 'onpause',
934
+ 'onplay',
935
+ 'onplaying',
936
+ 'onprogress',
937
+ 'onratechange',
938
+ 'onseeked',
939
+ 'onseeking',
940
+ 'onstalled',
941
+ 'onsuspend',
942
+ 'ontimeupdate',
943
+ 'onvolumechange',
944
+ 'onwaiting',
945
+
946
+ // MouseEvents
947
+ 'onauxclick',
948
+ 'onclick',
949
+ 'oncontextmenu',
950
+ 'ondblclick',
951
+ 'ondrag',
952
+ 'ondragend',
953
+ 'ondragenter',
954
+ 'ondragexit',
955
+ 'ondragleave',
956
+ 'ondragover',
957
+ 'ondragstart',
958
+ 'ondrop',
959
+ 'onmousedown',
960
+ 'onmouseenter',
961
+ 'onmouseleave',
962
+ 'onmousemove',
963
+ 'onmouseout',
964
+ 'onmouseover',
965
+ 'onmouseup',
966
+
967
+ // Selection Events
968
+ 'onselect',
969
+ 'onselectionchange',
970
+ 'onselectstart',
971
+
972
+ // Touch Events
973
+ 'ontouchcancel',
974
+ 'ontouchend',
975
+ 'ontouchmove',
976
+ 'ontouchstart',
977
+
978
+ // Pointer Events
979
+ 'ongotpointercapture',
980
+ 'onpointercancel',
981
+ 'onpointerdown',
982
+ 'onpointerenter',
983
+ 'onpointerleave',
984
+ 'onpointermove',
985
+ 'onpointerout',
986
+ 'onpointerover',
987
+ 'onpointerup',
988
+ 'onlostpointercapture',
989
+
990
+ // UI Events
991
+ 'onscroll',
992
+ 'onresize',
993
+
994
+ // Wheel Events
995
+ 'onwheel',
996
+
997
+ // Animation Events
998
+ 'onanimationstart',
999
+ 'onanimationend',
1000
+ 'onanimationiteration',
1001
+
1002
+ // Transition Events
1003
+ 'ontransitionstart',
1004
+ 'ontransitionrun',
1005
+ 'ontransitionend',
1006
+ 'ontransitioncancel',
1007
+
1008
+ // Svelte Transition Events
1009
+ 'onoutrostart',
1010
+ 'onoutroend',
1011
+ 'onintrostart',
1012
+ 'onintroend',
1013
+
1014
+ // Message Events
1015
+ 'onmessage',
1016
+ 'onmessageerror',
1017
+
1018
+ // Document Events
1019
+ 'onvisibilitychange',
1020
+
1021
+ // Global Events
1022
+ 'oncancel',
1023
+ 'onclose',
1024
+ 'onfullscreenchange',
1025
+ 'onfullscreenerror'
1026
+ ]
1027
+
1028
+ export const checkAttributeByTagName = (tag, attribute) => {
1029
+ if (Object.prototype.hasOwnProperty.call(HTML_ATTRIBUTES, tag)) {
1030
+ const attributes = HTML_ATTRIBUTES[tag]
1031
+ return attributes.includes(attribute) || attributes.includes('default')
1032
+ } else {
1033
+ const defaultAttributes = HTML_ATTRIBUTES.default
1034
+ return defaultAttributes.includes(attribute)
1035
+ }
1036
+ }
1037
+ export const checkEventFunctions = (key) => {
1038
+ if (!isString(key)) return false
1039
+ const normalizedKey = key.toLowerCase()
1040
+ return DOM_EVENTS.includes(normalizedKey)
1041
+ }
1042
+
1043
+ export const filterAttributesByTagName = (tag, props) => {
1044
+ const filteredObject = {}
1045
+
1046
+ for (const key in props) {
1047
+ if (Object.prototype.hasOwnProperty.call(props, key)) {
1048
+ const isAttribute = checkAttributeByTagName(tag, key)
1049
+ const isEvent = checkEventFunctions(key)
1050
+ if (isDefined(props[key]) && (isAttribute || isEvent)) {
1051
+ filteredObject[key] = props[key]
1052
+ }
1053
+ }
1054
+ }
1055
+
1056
+ return filteredObject
1057
+ }
package/package.json CHANGED
@@ -2,8 +2,11 @@
2
2
  "name": "attrs-in-props",
3
3
  "description": "Utilize props as attributes",
4
4
  "author": "symbo.ls",
5
- "version": "2.11.131",
5
+ "version": "2.11.164",
6
6
  "repository": "https://github.com/symbo-ls/smbls",
7
7
  "main": "index.js",
8
- "gitHead": "bb04754011c9d569b2486b9add6f8e45a33001e4"
8
+ "gitHead": "943a48800e5959b8c1f15d5d8d49224565038c23",
9
+ "dependencies": {
10
+ "@domql/utils": "latest"
11
+ }
9
12
  }