@creative-web-solution/front-library 7.1.6 → 7.1.9

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/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # CHANGELOG
2
2
 
3
+
4
+ ## 7.1.9
5
+
6
+ * SelectSkin: Fix templating
7
+
8
+
9
+ ## 7.1.7
10
+
11
+ * Typescript: Fix some type
12
+
13
+
3
14
  ## 7.1.6
4
15
 
5
16
  * Minor fix
@@ -15,6 +26,7 @@
15
26
  * Typescript: Fix tsify and browserify compatibility
16
27
  * HistoryController: Remove UrlParser for window.URL
17
28
 
29
+
18
30
  ## 7.1.3
19
31
 
20
32
  * Typescript: Fix some type
@@ -16,16 +16,16 @@ const defaultOptions: FLib.SkinCheckbox.Options = {
16
16
  */
17
17
  export default class SkinCheckbox implements FLib.SkinCheckbox.SkinCheckbox {
18
18
 
19
- #$checkbox!: FLib.SkinCheckbox.CustomCheckbox;
20
- #options!: FLib.SkinCheckbox.Options;
21
- #$parent!: FLib.SkinCheckbox.CustomCheckboxParent;
19
+ #$checkbox: FLib.SkinCheckbox.CustomCheckbox;
20
+ #options: FLib.SkinCheckbox.Options;
21
+ #$parent: FLib.SkinCheckbox.CustomCheckboxParent;
22
22
 
23
23
 
24
24
  constructor( $checkbox: HTMLInputElement, userOptions: Partial<FLib.SkinCheckbox.Options> = {} ) {
25
25
 
26
26
  // Already skinned
27
27
  if ( ($checkbox as FLib.SkinCheckbox.CustomCheckbox).__skinAPI ) {
28
- return;
28
+ throw 'SkinSelect: Select already skinned';
29
29
  }
30
30
 
31
31
  this.#$checkbox = $checkbox;
@@ -27,16 +27,16 @@ const defaultOptions = {
27
27
  * ```
28
28
  */
29
29
  export default class SkinRadioButton implements FLib.SkinRadio.SkinRadio {
30
- #$radio!: FLib.SkinRadio.CustomRadioButton;
31
- #options!: FLib.SkinRadio.Options;
32
- #$parent!: FLib.SkinRadio.CustomRadioButtonParent;
33
- #$rdGroup!: NodeListOf<FLib.SkinRadio.CustomRadioButton>;
30
+ #$radio: FLib.SkinRadio.CustomRadioButton;
31
+ #options: FLib.SkinRadio.Options;
32
+ #$parent: FLib.SkinRadio.CustomRadioButtonParent;
33
+ #$rdGroup: NodeListOf<FLib.SkinRadio.CustomRadioButton>;
34
34
 
35
35
  constructor( $radio: HTMLInputElement, userOptions?: Partial<FLib.SkinRadio.Options> ) {
36
36
 
37
37
  // Already skinned
38
38
  if ( ($radio as FLib.SkinRadio.CustomRadioButton).__skinAPI ) {
39
- return;
39
+ throw 'SkinSelect: Select already skinned';
40
40
  }
41
41
 
42
42
  this.#$radio = $radio;
@@ -38,22 +38,26 @@ const defaultOptions: FLib.SkinSelect.Options = {
38
38
  * You can access the skin API in the __skinAPI property of the $select HTMLElement or its wrapper.
39
39
  */
40
40
  export default class SkinSelect implements FLib.SkinSelect.SkinSelect {
41
- #$select!: FLib.SkinSelect.CustomSelect;
41
+ #$select: FLib.SkinSelect.CustomSelect;
42
42
  #loading = false;
43
- #options!: FLib.SkinSelect.Options;
44
- #extraClass!: string;
45
- #$parent!: FLib.SkinSelect.CustomSelectParent;
46
- #$title!: HTMLElement;
43
+ #options: FLib.SkinSelect.Options;
44
+ #extraClass: string;
45
+ #$parent: FLib.SkinSelect.CustomSelectParent;
46
+ #$title: HTMLElement;
47
47
  #isListOpened = false;
48
48
  #$options: NodeList | undefined;
49
49
  #$lastOption: HTMLElement | null = null;
50
50
  #focusedItemIndex = -1;
51
51
  #$layer: HTMLElement | undefined;
52
52
 
53
+
53
54
  constructor( $select: FLib.SkinSelect.CustomSelect, userOptions?: Partial<FLib.SkinSelect.Options> ) {
54
55
 
55
- if ( $select.hasAttribute( 'multiple' ) || $select.__skinAPI ) {
56
- return;
56
+ if ( $select.hasAttribute( 'multiple' ) ) {
57
+ throw 'SkinSelect: This feature doesn\'t work on select with multiple selection';
58
+ }
59
+ else if ( $select.__skinAPI ) {
60
+ throw 'SkinSelect: Select already skinned';
57
61
  }
58
62
 
59
63
  this.#$select = $select;
@@ -146,7 +150,7 @@ export default class SkinSelect implements FLib.SkinSelect.SkinSelect {
146
150
 
147
151
 
148
152
  #openList = (): void => {
149
- if ( this.#$select.disabled || this.#loading ) {
153
+ if ( this.#$select?.disabled || this.#loading ) {
150
154
  return;
151
155
  }
152
156
 
@@ -385,14 +389,17 @@ export default class SkinSelect implements FLib.SkinSelect.SkinSelect {
385
389
 
386
390
  for ( const opt of Array.from( this.#$select.options ) ) {
387
391
  HTML_LIST.push( quickTemplate( this.#options.listTpl.item, {
388
- "onClass": opt.selected ? " on" : "",
389
- "text": opt.text,
390
- "value": opt.value
392
+ "onClass": opt.selected ? " on" : "",
393
+ "text": opt.text,
394
+ "value": opt.value,
395
+ "itemClassName": this.#options.itemClassName
391
396
  } ) );
392
397
  }
393
398
 
394
399
  this.#$parent.appendChild( strToDOM( quickTemplate( this.#options.listTpl.wrapper, {
395
- "items": HTML_LIST.join( '' )
400
+ "items": HTML_LIST.join( '' ),
401
+ "layerClassName": this.#options.layerClassName,
402
+ "listClassName": this.#options.listClassName
396
403
  } ) ) );
397
404
 
398
405
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Front Library
2
2
 
3
- @version: 7.1.6
3
+ @version: 7.1.9
4
4
 
5
5
 
6
6
  ## Use
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@creative-web-solution/front-library",
3
3
  "title": "Frontend library",
4
4
  "description": "Frontend functions and modules",
5
- "version": "7.1.6",
5
+ "version": "7.1.9",
6
6
  "homepage": "https://github.com/creative-web-solution/front-library",
7
7
  "author": "Creative Web Solution <contact@cws-studio.com> (https://www.cws-studio.com)",
8
8
  "keywords": [],