@pageboard/html 0.15.14 → 0.16.1

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/ui/form.js CHANGED
@@ -98,16 +98,21 @@ class HTMLElementForm extends Page.create(HTMLFormElement) {
98
98
  }
99
99
  }
100
100
  paint(state) {
101
- // ?submit=<name> for auto-submit
102
- // WORKAROUND use Page instead of state
103
- const name = state.query.submit;
104
- if (!name || name != this.name) return;
105
- // make sure to not resubmit in case of self-redirection
106
- delete state.query.submit;
107
- state.finish(() => {
108
- if (state.status != 200) return;
109
- state.dispatch(this, 'submit');
110
- });
101
+ if (state.scope.$write) return;
102
+ const name = state.query.submit; // explicit auto-submit
103
+ if (name && name == this.name || this.elements.length == 0 && this.action != state.toString()) {
104
+ // FIXME
105
+ // button target="" makes it not part of elements ?
106
+ if (state.scope.$read) {
107
+ console.info("form#paint would auto-submit:", this.action);
108
+ } else {
109
+ delete state.query.submit;
110
+ state.finish(() => {
111
+ if (state.status != 200) return;
112
+ state.dispatch(this, 'submit');
113
+ });
114
+ }
115
+ }
111
116
  }
112
117
  read(withDefaults = false, submitter) {
113
118
  const fd = new FormData(this, submitter);
@@ -322,7 +327,9 @@ class HTMLElementForm extends Page.create(HTMLFormElement) {
322
327
  form.disable();
323
328
  form.classList.add('loading');
324
329
  scope.$response = await state.fetch(
325
- form.method, form.getAttribute('action'), scope.$request
330
+ form.method,
331
+ e.submitter?.getAttribute('formaction') || form.action,
332
+ scope.$request
326
333
  );
327
334
  } catch (err) {
328
335
  scope.$response = err;
@@ -416,8 +423,8 @@ HTMLButtonElement.prototype.fill = HTMLInputElement.prototype.fill = function (v
416
423
  this.checked = true;
417
424
  } else {
418
425
  this.checked = (Array.isArray(val) ? val : [val]).some(str => {
419
- if (str == false && this.value == "") return true;
420
- return str.toString() == this.value;
426
+ if ((str == false || str == null) && this.value == "") return true;
427
+ return (str ?? '').toString() == this.value;
421
428
  });
422
429
  }
423
430
  } else {
package/ui/inlines.css CHANGED
@@ -38,3 +38,6 @@ span.purple {
38
38
  color: purple;
39
39
  }
40
40
 
41
+ [contenteditable] span[translate="no"] {
42
+ text-decoration: dashed underline;
43
+ }
package/ui/layout.js CHANGED
@@ -10,6 +10,7 @@ class HTMLElementLayout extends Page.create(HTMLDivElement) {
10
10
  return this.style.backgroundSize || 'none';
11
11
  }
12
12
  reveal(state) {
13
+ // FIXME all layout triggers unneeded observer reveal, because it's only for backgroundImage
13
14
  if (!this.options.src) {
14
15
  this.style.backgroundImage = '';
15
16
  return;
package/ui/medialist.css CHANGED
@@ -1,12 +1,51 @@
1
- .ui.items.medialist {
2
- margin:0;
1
+ .medialist {
2
+ margin: 1.5em 0em;
3
3
  }
4
- .ui.items.medialist > .item {
4
+
5
+ .medialist > .item {
6
+ display: flex;
5
7
  min-height:4em;
6
8
  }
7
- .medialist > .item > .image > .image {
8
- position: absolute;
9
- overflow: hidden;
10
- max-height: 100%;
11
- max-width: 100%;
9
+
10
+ .medialist > .item > .image {
11
+ flex: 0 0 auto;
12
+ width: 175px;
13
+ }
14
+
15
+ .medialist.small > .item > .image {
16
+ width: 100px;
17
+ }
18
+
19
+ .medialist.large > .item > .image {
20
+ width: 250px;
21
+ }
22
+
23
+ .medialist > .item > .content {
24
+ flex: 1 1 auto;
25
+ }
26
+
27
+ .medialist:first-child {
28
+ margin-top: 0em !important;
29
+ }
30
+
31
+ .medialist:last-child {
32
+ margin-bottom: 0em !important;
33
+ }
34
+
35
+ @media (width <= 511px) {
36
+ /* Mobile Only */
37
+ .medialist > .item {
38
+ flex-direction: column;
39
+ margin: 2em 0em;
40
+ }
41
+ .medialist > .item > .image {
42
+ display: block;
43
+ margin-left: auto;
44
+ margin-right: auto;
45
+ max-width: 100% !important;
46
+ width: 100% !important;
47
+ }
48
+ .medialist > .item > .content {
49
+ display: block;
50
+ }
12
51
  }
package/ui/storage.js CHANGED
@@ -1,43 +1,28 @@
1
1
  class UserStore {
2
+ #store = window.localStorage ?? {};
3
+ all() {
4
+ return this.#store;
5
+ }
2
6
  get(key) {
3
- let storage = window.localStorage;
4
- let val;
5
- if (storage) {
6
- try {
7
- val = storage.getItem(key);
8
- } catch(ex) {
9
- storage = null;
10
- }
11
- }
12
- if (!storage) {
13
- val = this.getCookies()[key];
7
+ try {
8
+ return this.#store.getItem(key);
9
+ } catch (ex) {
10
+ console.error(ex);
14
11
  }
15
- return val;
16
12
  }
17
13
  set(key, val) {
18
- let storage = window.localStorage;
19
- if (storage) {
20
- try {
21
- storage.setItem(key, val);
22
- } catch(ex) {
23
- storage = null;
24
- }
25
- }
26
- if (!storage) {
27
- this.setCookie(key, val);
14
+ try {
15
+ if (val == null) return this.del(key);
16
+ else return this.#store.setItem(key, val);
17
+ } catch (ex) {
18
+ console.error(ex);
28
19
  }
29
20
  }
30
21
  del(key) {
31
- let storage = window.localStorage;
32
- if (storage) {
33
- try {
34
- storage.removeItem(key);
35
- } catch(ex) {
36
- storage = null;
37
- }
38
- }
39
- if (!storage) {
40
- this.clearCookie(key);
22
+ try {
23
+ return this.#store.removeItem(key);
24
+ } catch (ex) {
25
+ console.error(ex);
41
26
  }
42
27
  }
43
28
  clearCookies(re) {
@@ -68,5 +53,5 @@ class UserStore {
68
53
  }
69
54
  }
70
55
 
71
- Page.setup(state => state.scope.storage = new UserStore());
56
+ Page.paint(state => state.scope.storage = new UserStore());
72
57
 
package/lib/formdata.js DELETED
@@ -1,21 +0,0 @@
1
- /*! formdata-polyfill. MIT License. Jimmy W?rting <https://jimmy.warting.se/opensource> */
2
- ;(function(){var h;function l(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var m="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
3
- function n(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var q=n(this);function r(a,b){if(b)a:{var c=q;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&m(c,a,{configurable:!0,writable:!0,value:b})}}
4
- r("Symbol",function(a){function b(f){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(f||"")+"_"+e++,f)}function c(f,g){this.A=f;m(this,"description",{configurable:!0,writable:!0,value:g})}if(a)return a;c.prototype.toString=function(){return this.A};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",e=0;return b});
5
- r("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=q[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&m(d.prototype,a,{configurable:!0,writable:!0,value:function(){return u(l(this))}})}return a});function u(a){a={next:a};a[Symbol.iterator]=function(){return this};return a}
6
- function v(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:l(a)}}var w;if("function"==typeof Object.setPrototypeOf)w=Object.setPrototypeOf;else{var y;a:{var z={a:!0},A={};try{A.__proto__=z;y=A.a;break a}catch(a){}y=!1}w=y?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var B=w;function C(){this.m=!1;this.j=null;this.v=void 0;this.h=1;this.u=this.C=0;this.l=null}
7
- function D(a){if(a.m)throw new TypeError("Generator is already running");a.m=!0}C.prototype.o=function(a){this.v=a};C.prototype.s=function(a){this.l={D:a,F:!0};this.h=this.C||this.u};C.prototype.return=function(a){this.l={return:a};this.h=this.u};function E(a,b){a.h=3;return{value:b}}function F(a){this.g=new C;this.G=a}F.prototype.o=function(a){D(this.g);if(this.g.j)return G(this,this.g.j.next,a,this.g.o);this.g.o(a);return H(this)};
8
- function I(a,b){D(a.g);var c=a.g.j;if(c)return G(a,"return"in c?c["return"]:function(d){return{value:d,done:!0}},b,a.g.return);a.g.return(b);return H(a)}F.prototype.s=function(a){D(this.g);if(this.g.j)return G(this,this.g.j["throw"],a,this.g.o);this.g.s(a);return H(this)};
9
- function G(a,b,c,d){try{var e=b.call(a.g.j,c);if(!(e instanceof Object))throw new TypeError("Iterator result "+e+" is not an object");if(!e.done)return a.g.m=!1,e;var f=e.value}catch(g){return a.g.j=null,a.g.s(g),H(a)}a.g.j=null;d.call(a.g,f);return H(a)}function H(a){for(;a.g.h;)try{var b=a.G(a.g);if(b)return a.g.m=!1,{value:b.value,done:!1}}catch(c){a.g.v=void 0,a.g.s(c)}a.g.m=!1;if(a.g.l){b=a.g.l;a.g.l=null;if(b.F)throw b.D;return{value:b.return,done:!0}}return{value:void 0,done:!0}}
10
- function J(a){this.next=function(b){return a.o(b)};this.throw=function(b){return a.s(b)};this.return=function(b){return I(a,b)};this[Symbol.iterator]=function(){return this}}function K(a,b){b=new J(new F(b));B&&a.prototype&&B(b,a.prototype);return b}function L(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var f=c++;return{value:b(f,a[f]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e}
11
- r("Array.prototype.entries",function(a){return a?a:function(){return L(this,function(b,c){return[b,c]})}});
12
- if("undefined"!==typeof Blob&&("undefined"===typeof FormData||!FormData.prototype.keys)){var M=function(a,b){for(var c=0;c<a.length;c++)b(a[c])},N=function(a){return a.replace(/\r?\n|\r/g,"\r\n")},O=function(a,b,c){if(b instanceof Blob){c=void 0!==c?String(c+""):"string"===typeof b.name?b.name:"blob";if(b.name!==c||"[object Blob]"===Object.prototype.toString.call(b))b=new File([b],c);return[String(a),b]}return[String(a),String(b)]},P=function(a,b){if(a.length<b)throw new TypeError(b+" argument required, but only "+
13
- a.length+" present.");},Q="object"===typeof globalThis?globalThis:"object"===typeof window?window:"object"===typeof self?self:this,R=Q.FormData,S=Q.XMLHttpRequest&&Q.XMLHttpRequest.prototype.send,T=Q.Request&&Q.fetch,U=Q.navigator&&Q.navigator.sendBeacon,V=Q.Element&&Q.Element.prototype,W=Q.Symbol&&Symbol.toStringTag;W&&(Blob.prototype[W]||(Blob.prototype[W]="Blob"),"File"in Q&&!File.prototype[W]&&(File.prototype[W]="File"));try{new File([],"")}catch(a){Q.File=function(b,c,d){b=new Blob(b,d||{});
14
- Object.defineProperties(b,{name:{value:c},lastModified:{value:+(d&&void 0!==d.lastModified?new Date(d.lastModified):new Date)},toString:{value:function(){return"[object File]"}}});W&&Object.defineProperty(b,W,{value:"File"});return b}}var escape=function(a){return a.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22")},X=function(a){this.i=[];var b=this;a&&M(a.elements,function(c){if(c.name&&!c.disabled&&"submit"!==c.type&&"button"!==c.type&&!c.matches("form fieldset[disabled] *"))if("file"===
15
- c.type){var d=c.files&&c.files.length?c.files:[new File([],"",{type:"application/octet-stream"})];M(d,function(e){b.append(c.name,e)})}else"select-multiple"===c.type||"select-one"===c.type?M(c.options,function(e){!e.disabled&&e.selected&&b.append(c.name,e.value)}):"checkbox"===c.type||"radio"===c.type?c.checked&&b.append(c.name,c.value):(d="textarea"===c.type?N(c.value):c.value,b.append(c.name,d))})};h=X.prototype;h.append=function(a,b,c){P(arguments,2);this.i.push(O(a,b,c))};h.delete=function(a){P(arguments,
16
- 1);var b=[];a=String(a);M(this.i,function(c){c[0]!==a&&b.push(c)});this.i=b};h.entries=function b(){var c,d=this;return K(b,function(e){1==e.h&&(c=0);if(3!=e.h)return c<d.i.length?e=E(e,d.i[c]):(e.h=0,e=void 0),e;c++;e.h=2})};h.forEach=function(b,c){P(arguments,1);for(var d=v(this),e=d.next();!e.done;e=d.next()){var f=v(e.value);e=f.next().value;f=f.next().value;b.call(c,f,e,this)}};h.get=function(b){P(arguments,1);var c=this.i;b=String(b);for(var d=0;d<c.length;d++)if(c[d][0]===b)return c[d][1];
17
- return null};h.getAll=function(b){P(arguments,1);var c=[];b=String(b);M(this.i,function(d){d[0]===b&&c.push(d[1])});return c};h.has=function(b){P(arguments,1);b=String(b);for(var c=0;c<this.i.length;c++)if(this.i[c][0]===b)return!0;return!1};h.keys=function c(){var d=this,e,f,g,k,p;return K(c,function(t){1==t.h&&(e=v(d),f=e.next());if(3!=t.h){if(f.done){t.h=0;return}g=f.value;k=v(g);p=k.next().value;return E(t,p)}f=e.next();t.h=2})};h.set=function(c,d,e){P(arguments,2);c=String(c);var f=[],g=O(c,
18
- d,e),k=!0;M(this.i,function(p){p[0]===c?k&&(k=!f.push(g)):f.push(p)});k&&f.push(g);this.i=f};h.values=function d(){var e=this,f,g,k,p,t;return K(d,function(x){1==x.h&&(f=v(e),g=f.next());if(3!=x.h){if(g.done){x.h=0;return}k=g.value;p=v(k);p.next();t=p.next().value;return E(x,t)}g=f.next();x.h=2})};X.prototype._asNative=function(){for(var d=new R,e=v(this),f=e.next();!f.done;f=e.next()){var g=v(f.value);f=g.next().value;g=g.next().value;d.append(f,g)}return d};X.prototype._blob=function(){var d="----formdata-polyfill-"+
19
- Math.random(),e=[],f="--"+d+'\r\nContent-Disposition: form-data; name="';this.forEach(function(g,k){return"string"==typeof g?e.push(f+escape(N(k))+('"\r\n\r\n'+N(g)+"\r\n")):e.push(f+escape(N(k))+('"; filename="'+escape(g.name)+'"\r\nContent-Type: '+(g.type||"application/octet-stream")+"\r\n\r\n"),g,"\r\n")});e.push("--"+d+"--");return new Blob(e,{type:"multipart/form-data; boundary="+d})};X.prototype[Symbol.iterator]=function(){return this.entries()};X.prototype.toString=function(){return"[object FormData]"};
20
- V&&!V.matches&&(V.matches=V.matchesSelector||V.mozMatchesSelector||V.msMatchesSelector||V.oMatchesSelector||V.webkitMatchesSelector||function(d){d=(this.document||this.ownerDocument).querySelectorAll(d);for(var e=d.length;0<=--e&&d.item(e)!==this;);return-1<e});W&&(X.prototype[W]="FormData");if(S){var Y=Q.XMLHttpRequest.prototype.setRequestHeader;Q.XMLHttpRequest.prototype.setRequestHeader=function(d,e){Y.call(this,d,e);"content-type"===d.toLowerCase()&&(this.B=!0)};Q.XMLHttpRequest.prototype.send=
21
- function(d){d instanceof X?(d=d._blob(),this.B||this.setRequestHeader("Content-Type",d.type),S.call(this,d)):S.call(this,d)}}T&&(Q.fetch=function(d,e){e&&e.body&&e.body instanceof X&&(e.body=e.body._blob());return T.call(this,d,e)});U&&(Q.navigator.sendBeacon=function(d,e){e instanceof X&&(e=e._asNative());return U.call(this,d,e)});Q.FormData=X};})();
@@ -1,304 +0,0 @@
1
- /* Functional styling;
2
- * These styles are required for noUiSlider to function.
3
- * You don't need to change these rules to apply your design.
4
- */
5
- .noUi-target,
6
- .noUi-target * {
7
- -webkit-touch-callout: none;
8
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
9
- -webkit-user-select: none;
10
- -ms-touch-action: none;
11
- touch-action: none;
12
- -ms-user-select: none;
13
- -moz-user-select: none;
14
- user-select: none;
15
- -moz-box-sizing: border-box;
16
- box-sizing: border-box;
17
- }
18
- .noUi-target {
19
- position: relative;
20
- }
21
- .noUi-base,
22
- .noUi-connects {
23
- width: 100%;
24
- height: 100%;
25
- position: relative;
26
- z-index: 1;
27
- }
28
- /* Wrapper for all connect elements.
29
- */
30
- .noUi-connects {
31
- overflow: hidden;
32
- z-index: 0;
33
- }
34
- .noUi-connect,
35
- .noUi-origin {
36
- will-change: transform;
37
- position: absolute;
38
- z-index: 1;
39
- top: 0;
40
- right: 0;
41
- height: 100%;
42
- width: 100%;
43
- -ms-transform-origin: 0 0;
44
- -webkit-transform-origin: 0 0;
45
- -webkit-transform-style: preserve-3d;
46
- transform-origin: 0 0;
47
- transform-style: flat;
48
- }
49
- /* Offset direction
50
- */
51
- .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin {
52
- left: 0;
53
- right: auto;
54
- }
55
- /* Give origins 0 height/width so they don't interfere with clicking the
56
- * connect elements.
57
- */
58
- .noUi-vertical .noUi-origin {
59
- top: -100%;
60
- width: 0;
61
- }
62
- .noUi-horizontal .noUi-origin {
63
- height: 0;
64
- }
65
- .noUi-handle {
66
- -webkit-backface-visibility: hidden;
67
- backface-visibility: hidden;
68
- position: absolute;
69
- }
70
- .noUi-touch-area {
71
- height: 100%;
72
- width: 100%;
73
- }
74
- .noUi-state-tap .noUi-connect,
75
- .noUi-state-tap .noUi-origin {
76
- -webkit-transition: transform 0.3s;
77
- transition: transform 0.3s;
78
- }
79
- .noUi-state-drag * {
80
- cursor: inherit !important;
81
- }
82
- /* Slider size and handle placement;
83
- */
84
- .noUi-horizontal {
85
- height: 18px;
86
- }
87
- .noUi-horizontal .noUi-handle {
88
- width: 34px;
89
- height: 28px;
90
- right: -17px;
91
- top: -6px;
92
- }
93
- .noUi-vertical {
94
- width: 18px;
95
- }
96
- .noUi-vertical .noUi-handle {
97
- width: 28px;
98
- height: 34px;
99
- right: -6px;
100
- bottom: -17px;
101
- }
102
- .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {
103
- left: -17px;
104
- right: auto;
105
- }
106
- /* Styling;
107
- * Giving the connect element a border radius causes issues with using transform: scale
108
- */
109
- .noUi-target {
110
- background: #FAFAFA;
111
- border-radius: 4px;
112
- border: 1px solid #D3D3D3;
113
- box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB;
114
- }
115
- .noUi-connects {
116
- border-radius: 3px;
117
- }
118
- .noUi-connect {
119
- background: #3FB8AF;
120
- }
121
- /* Handles and cursors;
122
- */
123
- .noUi-draggable {
124
- cursor: ew-resize;
125
- }
126
- .noUi-vertical .noUi-draggable {
127
- cursor: ns-resize;
128
- }
129
- .noUi-handle {
130
- border: 1px solid #D9D9D9;
131
- border-radius: 3px;
132
- background: #FFF;
133
- cursor: default;
134
- box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB;
135
- }
136
- .noUi-active {
137
- box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #DDD, 0 3px 6px -3px #BBB;
138
- }
139
- /* Handle stripes;
140
- */
141
- .noUi-handle:before,
142
- .noUi-handle:after {
143
- content: "";
144
- display: block;
145
- position: absolute;
146
- height: 14px;
147
- width: 1px;
148
- background: #E8E7E6;
149
- left: 14px;
150
- top: 6px;
151
- }
152
- .noUi-handle:after {
153
- left: 17px;
154
- }
155
- .noUi-vertical .noUi-handle:before,
156
- .noUi-vertical .noUi-handle:after {
157
- width: 14px;
158
- height: 1px;
159
- left: 6px;
160
- top: 14px;
161
- }
162
- .noUi-vertical .noUi-handle:after {
163
- top: 17px;
164
- }
165
- /* Disabled state;
166
- */
167
- [disabled] .noUi-connect {
168
- background: #B8B8B8;
169
- }
170
- [disabled].noUi-target,
171
- [disabled].noUi-handle,
172
- [disabled] .noUi-handle {
173
- cursor: not-allowed;
174
- }
175
- /* Base;
176
- *
177
- */
178
- .noUi-pips,
179
- .noUi-pips * {
180
- -moz-box-sizing: border-box;
181
- box-sizing: border-box;
182
- }
183
- .noUi-pips {
184
- position: absolute;
185
- color: #999;
186
- }
187
- /* Values;
188
- *
189
- */
190
- .noUi-value {
191
- position: absolute;
192
- white-space: nowrap;
193
- text-align: center;
194
- }
195
- .noUi-value-sub {
196
- color: #ccc;
197
- font-size: 10px;
198
- }
199
- /* Markings;
200
- *
201
- */
202
- .noUi-marker {
203
- position: absolute;
204
- background: #CCC;
205
- }
206
- .noUi-marker-sub {
207
- background: #AAA;
208
- }
209
- .noUi-marker-large {
210
- background: #AAA;
211
- }
212
- /* Horizontal layout;
213
- *
214
- */
215
- .noUi-pips-horizontal {
216
- padding: 10px 0;
217
- height: 80px;
218
- top: 100%;
219
- left: 0;
220
- width: 100%;
221
- }
222
- .noUi-value-horizontal {
223
- -webkit-transform: translate(-50%, 50%);
224
- transform: translate(-50%, 50%);
225
- }
226
- .noUi-rtl .noUi-value-horizontal {
227
- -webkit-transform: translate(50%, 50%);
228
- transform: translate(50%, 50%);
229
- }
230
- .noUi-marker-horizontal.noUi-marker {
231
- margin-left: -1px;
232
- width: 2px;
233
- height: 5px;
234
- }
235
- .noUi-marker-horizontal.noUi-marker-sub {
236
- height: 10px;
237
- }
238
- .noUi-marker-horizontal.noUi-marker-large {
239
- height: 15px;
240
- }
241
- /* Vertical layout;
242
- *
243
- */
244
- .noUi-pips-vertical {
245
- padding: 0 10px;
246
- height: 100%;
247
- top: 0;
248
- left: 100%;
249
- }
250
- .noUi-value-vertical {
251
- -webkit-transform: translate(0, -50%);
252
- transform: translate(0, -50%);
253
- padding-left: 25px;
254
- }
255
- .noUi-rtl .noUi-value-vertical {
256
- -webkit-transform: translate(0, 50%);
257
- transform: translate(0, 50%);
258
- }
259
- .noUi-marker-vertical.noUi-marker {
260
- width: 5px;
261
- height: 2px;
262
- margin-top: -1px;
263
- }
264
- .noUi-marker-vertical.noUi-marker-sub {
265
- width: 10px;
266
- }
267
- .noUi-marker-vertical.noUi-marker-large {
268
- width: 15px;
269
- }
270
- .noUi-tooltip {
271
- display: block;
272
- position: absolute;
273
- border: 1px solid #D9D9D9;
274
- border-radius: 3px;
275
- background: #fff;
276
- color: #000;
277
- padding: 5px;
278
- text-align: center;
279
- white-space: nowrap;
280
- }
281
- .noUi-horizontal .noUi-tooltip {
282
- -webkit-transform: translate(-50%, 0);
283
- transform: translate(-50%, 0);
284
- left: 50%;
285
- bottom: 120%;
286
- }
287
- .noUi-vertical .noUi-tooltip {
288
- -webkit-transform: translate(0, -50%);
289
- transform: translate(0, -50%);
290
- top: 50%;
291
- right: 120%;
292
- }
293
- .noUi-horizontal .noUi-origin > .noUi-tooltip {
294
- -webkit-transform: translate(50%, 0);
295
- transform: translate(50%, 0);
296
- left: auto;
297
- bottom: 10px;
298
- }
299
- .noUi-vertical .noUi-origin > .noUi-tooltip {
300
- -webkit-transform: translate(0, -18px);
301
- transform: translate(0, -18px);
302
- top: auto;
303
- right: 28px;
304
- }