@thednp/color-picker 2.0.0-alpha2 → 2.0.0-alpha3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thednp/color-picker",
3
- "version": "2.0.0-alpha2",
3
+ "version": "2.0.0-alpha3",
4
4
  "author": "thednp",
5
5
  "license": "MIT",
6
6
  "description": "🎨 Modern Color Picker Component",
package/src/ts/index.ts CHANGED
@@ -208,6 +208,8 @@ export default class ColorPicker {
208
208
  public static setAttribute = setAttribute;
209
209
  public static getBoundingClientRect = getBoundingClientRect;
210
210
  public static version = version;
211
+ public static colorNames = colorNames;
212
+ public static colorPickerLabels = colorPickerLabels;
211
213
 
212
214
  id: number;
213
215
  input: HTMLInputElement;
@@ -318,22 +320,6 @@ export default class ColorPicker {
318
320
  this.colorPresets = colorPresets.split(',').map((x: string) => x.trim());
319
321
  }
320
322
 
321
- // bind events
322
- this.showPicker = this.showPicker.bind(this);
323
- this.togglePicker = this.togglePicker.bind(this);
324
- this.toggleMenu = this.toggleMenu.bind(this);
325
- this.menuClickHandler = this.menuClickHandler.bind(this);
326
- this.menuKeyHandler = this.menuKeyHandler.bind(this);
327
- this.pointerDown = this.pointerDown.bind(this);
328
- this.pointerMove = this.pointerMove.bind(this);
329
- this.pointerUp = this.pointerUp.bind(this);
330
- this.update = this.update.bind(this);
331
- this.handleScroll = this.handleScroll.bind(this);
332
- this.handleFocusOut = this.handleFocusOut.bind(this);
333
- this.changeHandler = this.changeHandler.bind(this);
334
- this.handleDismiss = this.handleDismiss.bind(this);
335
- this.handleKnobs = this.handleKnobs.bind(this);
336
-
337
323
  // generate markup
338
324
  setMarkup(this);
339
325
 
@@ -513,11 +499,11 @@ export default class ColorPicker {
513
499
  * @param e
514
500
  * @this {ColorPicker}
515
501
  */
516
- handleFocusOut({ relatedTarget }: FocusEvent & { relatedTarget: HTMLElement }): void {
502
+ handleFocusOut = ({ relatedTarget }: FocusEvent & { relatedTarget: HTMLElement }): void => {
517
503
  if (relatedTarget && !this.parent.contains(relatedTarget)) {
518
504
  this.hide(true);
519
505
  }
520
- }
506
+ };
521
507
 
522
508
  /**
523
509
  * The `ColorPicker` *keyup* event listener when open.
@@ -525,11 +511,11 @@ export default class ColorPicker {
525
511
  * @param e
526
512
  * @this {ColorPicker}
527
513
  */
528
- handleDismiss({ code }: KeyboardEvent): void {
514
+ handleDismiss = ({ code }: KeyboardEvent): void => {
529
515
  if (this.isOpen && code === keyEscape) {
530
516
  this.hide();
531
517
  }
532
- }
518
+ };
533
519
 
534
520
  /**
535
521
  * The `ColorPicker` *scroll* event listener when open.
@@ -537,7 +523,7 @@ export default class ColorPicker {
537
523
  * @param e
538
524
  * @this {ColorPicker}
539
525
  */
540
- handleScroll(e: Event): void {
526
+ handleScroll = (e: Event): void => {
541
527
  const { activeElement } = getDocument(this.input);
542
528
 
543
529
  this.updateDropdownPosition();
@@ -550,14 +536,14 @@ export default class ColorPicker {
550
536
  e.stopPropagation();
551
537
  e.preventDefault();
552
538
  }
553
- }
539
+ };
554
540
 
555
541
  /**
556
542
  * The `ColorPicker` keyboard event listener for menu navigation.
557
543
  *
558
544
  * @param e
559
545
  */
560
- menuKeyHandler(e: Event & { target: HTMLElement; code: string }) {
546
+ menuKeyHandler = (e: Event & { target: HTMLElement; code: string }) => {
561
547
  const { target, code } = e;
562
548
  const { previousElementSibling, nextElementSibling, parentElement } = target;
563
549
  const isColorOptionsMenu = parentElement && hasClass(parentElement, 'color-options');
@@ -591,7 +577,7 @@ export default class ColorPicker {
591
577
  if ([keyEnter, keySpace].includes(code)) {
592
578
  this.menuClickHandler(e);
593
579
  }
594
- }
580
+ };
595
581
 
596
582
  /**
597
583
  * The `ColorPicker` click event listener for the colour menu presets / defaults.
@@ -599,7 +585,7 @@ export default class ColorPicker {
599
585
  * @param e
600
586
  * @this {ColorPicker}
601
587
  */
602
- menuClickHandler(e: Event): void {
588
+ menuClickHandler = (e: Event): void => {
603
589
  const { target } = e;
604
590
  const { colorMenu } = this;
605
591
  const newOption = (getAttribute(target as HTMLElement, 'data-value') || '').trim();
@@ -637,14 +623,14 @@ export default class ColorPicker {
637
623
  }
638
624
  firePickerChange(this);
639
625
  }
640
- }
626
+ };
641
627
 
642
628
  /**
643
629
  * The `ColorPicker` *touchstart* / *mousedown* events listener for control knobs.
644
630
  *
645
631
  * @param e
646
632
  */
647
- pointerDown(e: Event & { target: HTMLElement; pageX: number; pageY: number }) {
633
+ pointerDown = (e: Event & { target: HTMLElement; pageX: number; pageY: number }) => {
648
634
  const { target, pageX, pageY } = e;
649
635
  const { colorMenu, visuals, controlKnobs } = this;
650
636
  const [v1, v2, v3] = visuals;
@@ -675,7 +661,7 @@ export default class ColorPicker {
675
661
  }
676
662
  }
677
663
  e.preventDefault();
678
- }
664
+ };
679
665
 
680
666
  /**
681
667
  * The `ColorPicker` *touchend* / *mouseup* events listener for control knobs.
@@ -683,7 +669,7 @@ export default class ColorPicker {
683
669
  * @param e
684
670
  * @this
685
671
  */
686
- pointerUp({ target }: PointerEvent & { target: HTMLElement }) {
672
+ pointerUp = ({ target }: PointerEvent & { target: HTMLElement }) => {
687
673
  const { parent } = this;
688
674
  const doc = getDocument(parent);
689
675
  const currentOpen = querySelector(`${colorPickerParentSelector}.open`, doc) !== null;
@@ -694,14 +680,14 @@ export default class ColorPicker {
694
680
  }
695
681
 
696
682
  this.dragElement = undefined;
697
- }
683
+ };
698
684
 
699
685
  /**
700
686
  * The `ColorPicker` *touchmove* / *mousemove* events listener for control knobs.
701
687
  *
702
688
  * @param {PointerEvent} e
703
689
  */
704
- pointerMove(e: PointerEvent): void {
690
+ pointerMove = (e: PointerEvent): void => {
705
691
  const { dragElement, visuals } = this;
706
692
  const [v1, v2, v3] = visuals;
707
693
  const { pageX, pageY } = e;
@@ -724,14 +710,14 @@ export default class ColorPicker {
724
710
  if (dragElement === v3) {
725
711
  this.changeAlpha(offsetY);
726
712
  }
727
- }
713
+ };
728
714
 
729
715
  /**
730
716
  * The `ColorPicker` *keydown* event listener for control knobs.
731
717
  *
732
718
  * @param e
733
719
  */
734
- handleKnobs(e: Event & { code: string }) {
720
+ handleKnobs = (e: Event & { code: string }) => {
735
721
  const { target, code } = e;
736
722
 
737
723
  // only react to arrow buttons
@@ -777,10 +763,10 @@ export default class ColorPicker {
777
763
  }
778
764
  this.handleScroll(e);
779
765
  }
780
- }
766
+ };
781
767
 
782
768
  /** The event listener of the colour form inputs. */
783
- changeHandler(): void {
769
+ changeHandler = (): void => {
784
770
  let colorSource;
785
771
  const { inputs, format, value: currentValue, input, controlPositions, visuals } = this;
786
772
  const { activeElement } = getDocument(input);
@@ -845,7 +831,7 @@ export default class ColorPicker {
845
831
  this.value = currentValue;
846
832
  }
847
833
  }
848
- }
834
+ };
849
835
 
850
836
  /**
851
837
  * Updates `ColorPicker` first control:
@@ -975,14 +961,14 @@ export default class ColorPicker {
975
961
  * * initialization
976
962
  * * window resize
977
963
  */
978
- update() {
964
+ update = () => {
979
965
  this.updateDropdownPosition();
980
966
  this.updateAppearance();
981
967
  this.setControlPositions();
982
968
  this.updateInputs(true);
983
969
  this.updateControls();
984
970
  this.updateVisuals();
985
- }
971
+ };
986
972
 
987
973
  /** Updates the open dropdown position on *scroll* event. */
988
974
  updateDropdownPosition() {
@@ -1155,7 +1141,7 @@ export default class ColorPicker {
1155
1141
  *
1156
1142
  * @param e
1157
1143
  */
1158
- togglePicker(e?: Event) {
1144
+ togglePicker = (e?: Event) => {
1159
1145
  if (e) e.preventDefault();
1160
1146
  const { colorPicker } = this;
1161
1147
 
@@ -1164,16 +1150,16 @@ export default class ColorPicker {
1164
1150
  } else {
1165
1151
  showDropdown(this, colorPicker);
1166
1152
  }
1167
- }
1153
+ };
1168
1154
 
1169
1155
  /** Shows the `ColorPicker` dropdown. */
1170
- showPicker() {
1156
+ showPicker = () => {
1171
1157
  const { colorPicker } = this;
1172
1158
 
1173
1159
  if (!['top', 'bottom'].some(c => hasClass(colorPicker, c))) {
1174
1160
  showDropdown(this, colorPicker);
1175
1161
  }
1176
- }
1162
+ };
1177
1163
 
1178
1164
  /**
1179
1165
  * Toggles the visibility of the `ColorPicker` presets menu.
@@ -1181,7 +1167,7 @@ export default class ColorPicker {
1181
1167
  * @param e
1182
1168
  * @this {ColorPicker}
1183
1169
  */
1184
- toggleMenu(e?: Event) {
1170
+ toggleMenu = (e?: Event) => {
1185
1171
  if (e) e.preventDefault();
1186
1172
  const { colorMenu } = this;
1187
1173
 
@@ -1190,7 +1176,7 @@ export default class ColorPicker {
1190
1176
  } else {
1191
1177
  showDropdown(this, colorMenu);
1192
1178
  }
1193
- }
1179
+ };
1194
1180
 
1195
1181
  /**
1196
1182
  * Hides the currently open `ColorPicker` dropdown.