@jamesrock/rockjs 1.37.0 → 1.38.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.
- package/index.js +38 -0
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -978,6 +978,44 @@ export class Tempo {
|
|
|
978
978
|
};
|
|
979
979
|
};
|
|
980
980
|
|
|
981
|
+
export class Toggle extends DisplayObject {
|
|
982
|
+
constructor(items, name = '{name}', initialValue, className) {
|
|
983
|
+
|
|
984
|
+
super();
|
|
985
|
+
|
|
986
|
+
this.node = makeNode('form', className);
|
|
987
|
+
this.name = name;
|
|
988
|
+
this.initialValue = initialValue;
|
|
989
|
+
this.toggle = makeToggle(items, name, initialValue);
|
|
990
|
+
|
|
991
|
+
append(this.node)(this.toggle);
|
|
992
|
+
|
|
993
|
+
};
|
|
994
|
+
getValue() {
|
|
995
|
+
|
|
996
|
+
const data = new FormData(this.node);
|
|
997
|
+
return data.get(this.name);
|
|
998
|
+
|
|
999
|
+
};
|
|
1000
|
+
getValueAsNumber() {
|
|
1001
|
+
|
|
1002
|
+
return Number(this.getValue());
|
|
1003
|
+
|
|
1004
|
+
};
|
|
1005
|
+
updateItemLabel(value, label) {
|
|
1006
|
+
|
|
1007
|
+
this.toggle.querySelector(`label[for="${this.name}-${value}"]`).innerText = label;
|
|
1008
|
+
return this;
|
|
1009
|
+
|
|
1010
|
+
};
|
|
1011
|
+
scrollIntoView() {
|
|
1012
|
+
|
|
1013
|
+
this.toggle.querySelector(`input[value="${this.initialValue}"]`).scrollIntoView({block: 'center'});
|
|
1014
|
+
return this;
|
|
1015
|
+
|
|
1016
|
+
};
|
|
1017
|
+
};
|
|
1018
|
+
|
|
981
1019
|
// temporary alias
|
|
982
1020
|
export const createNode = makeNode;
|
|
983
1021
|
export const createSVGNode = makeSVGNode;
|