gd-bs 6.6.90 → 6.6.92

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 (60) hide show
  1. package/build/bs.js +1 -1
  2. package/build/components/alert/index.js +2 -2
  3. package/build/components/button/index.js +13 -3
  4. package/build/components/custom-element.js +529 -0
  5. package/build/components/dropdown/index.js +30 -32
  6. package/build/components/floating-ui/index.js +375 -0
  7. package/build/components/index.js +4 -0
  8. package/build/components/modal/index.js +8 -2
  9. package/build/components/nav/index.js +7 -7
  10. package/build/components/nav/templates.js +1 -1
  11. package/build/components/popover/index.js +37 -201
  12. package/build/components/tooltip/index.js +40 -117
  13. package/build/custom-elements.js +46 -0
  14. package/build/index-icons.js +5 -5
  15. package/build/index.js +5 -5
  16. package/build/render.js +581 -0
  17. package/dev.html +229 -0
  18. package/dist/gd-bs-icons.js +1 -1
  19. package/dist/gd-bs-icons.js.LICENSE.txt +20 -216
  20. package/dist/gd-bs-icons.min.js +1 -1
  21. package/dist/gd-bs.d.ts +113 -150
  22. package/dist/gd-bs.js +1 -1
  23. package/dist/gd-bs.js.LICENSE.txt +20 -216
  24. package/dist/gd-bs.min.js +1 -1
  25. package/index.html +9 -3
  26. package/indexv2.html +572 -0
  27. package/package.json +5 -5
  28. package/pre-build.js +7 -0
  29. package/src/bs.scss +2 -2
  30. package/src/components/alert/index.ts +3 -3
  31. package/src/components/button/index.ts +12 -3
  32. package/src/components/custom-element.ts +532 -0
  33. package/src/components/dropdown/index.ts +30 -36
  34. package/src/components/dropdown/types.d.ts +4 -4
  35. package/src/components/floating-ui/index.ts +392 -0
  36. package/src/components/floating-ui/types.d.ts +73 -0
  37. package/src/components/form/controlTypes.d.ts +3 -3
  38. package/src/components/index.ts +6 -1
  39. package/src/components/modal/index.ts +10 -4
  40. package/src/components/modal/types.d.ts +3 -2
  41. package/src/components/nav/index.ts +7 -7
  42. package/src/components/nav/templates.ts +1 -1
  43. package/src/components/nav/types.d.ts +1 -0
  44. package/src/components/navbar/types.d.ts +2 -2
  45. package/src/components/popover/index.ts +39 -205
  46. package/src/components/popover/types.d.ts +12 -45
  47. package/src/components/tooltip/index.ts +33 -110
  48. package/src/components/tooltip/types.d.ts +9 -45
  49. package/src/components/tooltipGroup/types.d.ts +3 -2
  50. package/src/components/types.d.ts +0 -47
  51. package/src/custom-elements.js +46 -0
  52. package/src/index-icons.d.ts +1 -3
  53. package/src/index-icons.ts +4 -4
  54. package/src/index.d.ts +2 -2
  55. package/src/index.ts +4 -4
  56. package/src/render.ts +583 -0
  57. package/src/styles/_core.scss +0 -2
  58. package/src/styles/_custom.scss +3 -8
  59. package/src/styles/_floating-ui.scss +275 -0
  60. package/src/styles/_tippy.scss +0 -249
@@ -1,5 +1,4 @@
1
- import tippy, { animateFill, followCursor, inlinePositioning, sticky } from "tippy.js";
2
- import { ITippyProps } from "../types";
1
+ import { IFloatingUI } from "../floating-ui/types";
3
2
  import { ITooltip, ITooltipProps } from "./types";
4
3
  import { Base } from "../base";
5
4
  import { IButton } from "../button/types";
@@ -7,6 +6,7 @@ import { Button, ButtonTypes } from "../button";
7
6
  import { IDropdown } from "../dropdown/types";
8
7
  import { Dropdown, DropdownTypes } from "../dropdown";
9
8
  import { appendContent } from "../common";
9
+ import { FloatingUI, FloatingUIPlacements } from "../floating-ui";
10
10
 
11
11
  /**
12
12
  * Tooltip Types
@@ -28,23 +28,7 @@ export enum TooltipTypes {
28
28
  /**
29
29
  * Tooltip Placements
30
30
  */
31
- export enum TooltipPlacements {
32
- Auto = 1,
33
- AutoStart = 2,
34
- AutoEnd = 3,
35
- Bottom = 4,
36
- BottomStart = 5,
37
- BottomEnd = 6,
38
- Left = 7,
39
- LeftStart = 8,
40
- LeftEnd = 9,
41
- Right = 10,
42
- RightStart = 11,
43
- RightEnd = 12,
44
- Top = 13,
45
- TopStart = 14,
46
- TopEnd = 15
47
- }
31
+ export { FloatingUIPlacements as TooltipPlacements }
48
32
 
49
33
  /**
50
34
  * Tooltip
@@ -53,7 +37,7 @@ class _Tooltip extends Base<ITooltipProps> {
53
37
  private _btn: IButton = null;
54
38
  private _ddl: IDropdown = null;
55
39
  private _elContent: HTMLElement = null;
56
- private _tippy = null;
40
+ private _floatingUI: IFloatingUI = null;
57
41
 
58
42
  // Constructor
59
43
  constructor(props: ITooltipProps, template: string = "") {
@@ -106,65 +90,6 @@ class _Tooltip extends Base<ITooltipProps> {
106
90
 
107
91
  // Configure the options
108
92
  private configureOptions() {
109
- // Set the placements
110
- let placement = null;
111
- switch (this.props.placement) {
112
- // Auto
113
- case TooltipPlacements.Auto:
114
- placement = "auto";
115
- break;
116
- case TooltipPlacements.AutoEnd:
117
- placement = "auto-end";
118
- break;
119
- case TooltipPlacements.AutoStart:
120
- placement = "auto-start";
121
- break;
122
- // Bottom
123
- case TooltipPlacements.Bottom:
124
- placement = "bottom";
125
- break;
126
- case TooltipPlacements.BottomEnd:
127
- placement = "bottom-end";
128
- break;
129
- case TooltipPlacements.BottomStart:
130
- placement = "bottom-start";
131
- break;
132
- // Left
133
- case TooltipPlacements.Left:
134
- placement = "left";
135
- break;
136
- case TooltipPlacements.LeftEnd:
137
- placement = "left-end";
138
- break;
139
- case TooltipPlacements.LeftStart:
140
- placement = "left-start";
141
- break;
142
- // Right
143
- case TooltipPlacements.Right:
144
- placement = "right";
145
- break;
146
- case TooltipPlacements.RightEnd:
147
- placement = "right-end";
148
- break;
149
- case TooltipPlacements.RightStart:
150
- placement = "right-start";
151
- break;
152
- // Top
153
- case TooltipPlacements.Top:
154
- placement = "top";
155
- break;
156
- case TooltipPlacements.TopEnd:
157
- placement = "top-end";
158
- break;
159
- case TooltipPlacements.TopStart:
160
- placement = "top-start";
161
- break;
162
- // Default - Auto
163
- default:
164
- placement = "top";
165
- break;
166
- }
167
-
168
93
  // Set the theme
169
94
  let theme = null;
170
95
  switch (this.props.type) {
@@ -272,30 +197,16 @@ class _Tooltip extends Base<ITooltipProps> {
272
197
  break;
273
198
  }
274
199
 
275
- // Set the options
276
- let options: ITippyProps = {
277
- ...{
278
- allowHTML: false,
279
- animation: "scale",
280
- arrow: true,
281
- content: this.props.content,
282
- delay: 100,
283
- inertia: true,
284
- interactive: false,
285
- placement,
286
- plugins: [animateFill, followCursor, inlinePositioning, sticky],
287
- theme
288
- },
289
- ...this.props.options
290
- };
291
-
292
- // Create the tooltip content element
293
- this._elContent = document.createElement("div") as HTMLElement;
294
- this._elContent.classList.add("tooltip-content");
295
- appendContent(this._elContent, options.content as any);
296
- options.content = this._elContent;
200
+ // Set the tooltip content element
201
+ if (typeof (this.props.content) === "string") {
202
+ this._elContent = document.createElement("div") as HTMLElement;
203
+ this._elContent.innerHTML = this.props.content;
204
+ } else {
205
+ this._elContent = this.props.content as any;
206
+ }
297
207
 
298
208
  // Set the on create event
209
+ /*
299
210
  options["onCreate"] = (tippyObj) => {
300
211
  // Get the content element
301
212
  let elContent = tippyObj.popper.querySelector(".tippy-content") as HTMLElement;
@@ -316,9 +227,21 @@ class _Tooltip extends Base<ITooltipProps> {
316
227
  // Call the custom event if it's defined
317
228
  this.props.options && this.props.options.onCreate ? this.props.options.onCreate(tippyObj) : null;
318
229
  }
319
-
320
- // Create the tippy
321
- this._tippy = tippy(this.props.target || this.el, options as any);
230
+ */
231
+
232
+ // Create the floating ui
233
+ this._floatingUI = FloatingUI({
234
+ className: "floating-tooltip",
235
+ elContent: this._elContent,
236
+ elTarget: this.el,
237
+ options: {
238
+ ...{ arrow: true, flip: true, shift: { padding: 5 } },
239
+ ...this.props.options
240
+ },
241
+ show: this.props.show,
242
+ placement: this.props.placement,
243
+ theme: this.props.type
244
+ });
322
245
  }
323
246
 
324
247
  /**
@@ -348,19 +271,19 @@ class _Tooltip extends Base<ITooltipProps> {
348
271
  // Hides the tooltip
349
272
  hide() {
350
273
  // See if it's visible
351
- if (this.isVisible) { this._tippy.hide(); }
274
+ if (this.isVisible) { this._floatingUI.hide(); }
352
275
  }
353
276
 
354
277
  // Determines if the tooltip is visible
355
- get isVisible(): boolean { return this._tippy.state.isVisible; }
278
+ get isVisible(): boolean { return this._floatingUI.isVisible; }
356
279
 
357
- // The tippy instance
358
- get tippy() { return this._tippy; }
280
+ // The floating ui instance
281
+ get floatingUI() { return this._floatingUI; }
359
282
 
360
283
  // Sets the tippy content
361
284
  setContent(content: string | Element) {
362
285
  // Set the tippy content
363
- this.tippy.setContent(content);
286
+ this._floatingUI.setContent(content);
364
287
 
365
288
  // See if the content is a string
366
289
  if (typeof (content) === "string") {
@@ -373,7 +296,7 @@ class _Tooltip extends Base<ITooltipProps> {
373
296
  // Shows the tooltip
374
297
  show() {
375
298
  // See if it's hidden
376
- if (!this.isVisible) { this._tippy.show(); }
299
+ if (!this.isVisible) { this._floatingUI.show(); }
377
300
  }
378
301
 
379
302
  // Toggles the tooltip
@@ -44,16 +44,17 @@ export const Tooltip: (props: ITooltipProps, template?: string) => ITooltip;
44
44
  /**
45
45
  * Tooltip Placements
46
46
  */
47
- export const TooltipPlacements: ITooltipPlacements;
47
+ export const TooltipPlacements: IFloatingUIPlacements;
48
48
 
49
49
  /**
50
50
  * Tooltip Types
51
51
  */
52
- export const TooltipTypes: ITooltipTypes;
52
+ export const TooltipTypes: IFloatingUITypes;
53
53
 
54
- import { IBaseProps, ITippyProps } from "../types";
54
+ import { IBaseProps } from "../types";
55
55
  import { IButtonProps, IButton } from "../button/types";
56
56
  import { IDropdownProps, IDropdown } from "../dropdown/types";
57
+ import { IFloatingUIOptions, IFloatingUIPlacements, IFloatingUITypes } from "../floating-ui/types";
57
58
 
58
59
  /**
59
60
  * Tooltip
@@ -74,13 +75,13 @@ export interface ITooltip {
74
75
  /** Reference to the dropdown. */
75
76
  ddl?: IDropdown;
76
77
 
77
- /** The tippy instance. */
78
- tippy: any;
78
+ /** The floating ui instance. */
79
+ floatingUI: any;
79
80
 
80
81
  /** Toggles an element's tooltip. */
81
82
  toggle: () => void;
82
83
 
83
- /** Sets the tippy content. */
84
+ /** Sets the floating ui content. */
84
85
  setContent: (content: string | Element) => void;
85
86
 
86
87
  /** Reveals an element’s tooltip. */
@@ -94,46 +95,9 @@ export interface ITooltipProps extends IBaseProps<ITooltip> {
94
95
  btnProps?: IButtonProps;
95
96
  ddlProps?: IDropdownProps;
96
97
  content?: string | Element;
97
- options?: ITippyProps;
98
+ options?: IFloatingUIOptions;
98
99
  placement?: number;
100
+ show?: boolean;
99
101
  target?: HTMLElement;
100
102
  type?: number;
101
- }
102
-
103
- /**
104
- * Tooltip Types
105
- */
106
- export type ITooltipTypes = {
107
- Danger: number;
108
- Dark: number;
109
- Info: number;
110
- Light: number;
111
- LightBorder: number;
112
- Material: number;
113
- Primary: number;
114
- Secondary: number;
115
- Success: number;
116
- Translucent: number;
117
- Warning: number;
118
- }
119
-
120
- /**
121
- * Tooltip Placements
122
- */
123
- export type ITooltipPlacements = {
124
- Auto: number;
125
- AutoStart: number;
126
- AutoEnd: number;
127
- Bottom: number;
128
- BottomStart: number;
129
- BottomEnd: number;
130
- Left: number;
131
- LeftStart: number;
132
- LeftEnd: number;
133
- Right: number;
134
- RightStart: number;
135
- RightEnd: number;
136
- Top: number;
137
- TopStart: number;
138
- TopEnd: number;
139
103
  }
@@ -40,8 +40,9 @@
40
40
  */
41
41
  export const TooltipGroup: (props: ITooltipGroupProps, template?: string, btnTemplate?: string) => ITooltipGroup;
42
42
 
43
- import { IBaseProps, ITippyProps } from "../types";
43
+ import { IBaseProps } from "../types";
44
44
  import { ITooltip, ITooltipProps } from "../tooltip/types";
45
+ import { IFloatingUIOptions } from "../floating-ui/types";
45
46
 
46
47
  /**
47
48
  * Tooltip Group
@@ -74,7 +75,7 @@ export interface ITooltipGroupProps extends IBaseProps<ITooltipGroup> {
74
75
  isSmall?: boolean;
75
76
  isVertical?: boolean;
76
77
  label?: string;
77
- tooltipOptions?: ITippyProps;
78
+ tooltipOptions?: IFloatingUIOptions;
78
79
  tooltipPlacement?: number;
79
80
  tooltipType?: number;
80
81
  }
@@ -30,51 +30,4 @@ export interface IBaseProps<IBaseObj = any> {
30
30
 
31
31
  /** The element to render the component to. */
32
32
  el?: HTMLElement;
33
- }
34
-
35
- /** Tippy Options */
36
- export interface ITippyProps {
37
- allowHTML?: boolean;
38
- animateFill?: boolean;
39
- animation?: string | boolean;
40
- appendTo?: HTMLElement;
41
- aria?: object;
42
- arrow?: boolean | string | SVGElement | DocumentFragment;
43
- content?: string | Element;
44
- delay?: number | [number | null, number | null];
45
- duration?: number | [number | null, number | null];
46
- followCursor?: boolean | 'horizontal' | 'vertical' | 'initial';
47
- hideOnClick?: boolean | 'toggle';
48
- ignoreAttributes?: boolean;
49
- inertia?: boolean;
50
- inlinePositioning?: boolean;
51
- interactive?: boolean;
52
- interactiveBorder?: number;
53
- interactiveDebounce?: number;
54
- maxWidth?: number | string;
55
- moveTransition?: string;
56
- offset?: number[];
57
- onAfterUpdate?: (tippyObj?, props?) => void;
58
- onBeforeUpdate?: (tippyObj?, props?) => void;
59
- onClickOutside?: (tippyObj?, ev?) => void;
60
- onCreate?: (tippyObj?) => void;
61
- onDestroy?: (tippyObj?) => void;
62
- onHidden?: (tippyObj?) => void;
63
- onHide?: (tippyObj?) => void;
64
- onMount?: (tippyObj?) => void;
65
- onShow?: (tippyObj?) => void;
66
- onShown?: (tippyObj?) => void;
67
- onTrigger?: (tippyObj?, ev?) => void;
68
- onUntrigger?: (tippyObj?, ev?) => void;
69
- placement?: string;
70
- plugins?: any[];
71
- popperOptions?: object;
72
- role?: string;
73
- showOnCreate?: boolean;
74
- sticky?: boolean | 'reference' | 'popper';
75
- theme?: string;
76
- touch?: boolean | 'hold' | ['hold', number];
77
- trigger?: string;
78
- triggerTarget?: HTMLElement | HTMLElement[] | null;
79
- zIndex?: number;
80
33
  }
@@ -0,0 +1,46 @@
1
+ class BSElement extends HTMLElement {
2
+ constructor() { super(); }
3
+ connectedCallback() {
4
+ if (this.nodeName == "BS-PAGING") {
5
+ setTimeout(() => { new GD.Components.CustomElement(this); });
6
+ } else {
7
+ // Wait for the children elements to render
8
+ const observer = new MutationObserver(() => {
9
+ setTimeout(() => { new GD.Components.CustomElement(this); });
10
+ observer.disconnect();
11
+ });
12
+ observer.observe(this, { childList: true, subtree: true });
13
+ }
14
+ }
15
+ }
16
+ customElements.define("bs-accordion", class Accordion extends BSElement { });
17
+ customElements.define("bs-alert", class Alert extends BSElement { });
18
+ customElements.define("bs-badge", class Badge extends BSElement { });
19
+ customElements.define("bs-breadcrumb", class Breadcrumb extends BSElement { });
20
+ customElements.define("bs-button", class Button extends BSElement { });
21
+ customElements.define("bs-button-group", class ButtonGroup extends BSElement { });
22
+ customElements.define("bs-collapse", class Collapse extends BSElement { });
23
+ customElements.define("bs-card", class Card extends BSElement { });
24
+ customElements.define("bs-card-group", class CardGroup extends BSElement { });
25
+ customElements.define("bs-carousel", class Carousel extends BSElement { });
26
+ customElements.define("bs-checkbox-group", class CheckboxGroup extends BSElement { });
27
+ customElements.define("bs-dropdown", class Dropdown extends BSElement { });
28
+ customElements.define("bs-form", class Form extends BSElement { });
29
+ customElements.define("bs-form-control", class FormControl extends BSElement { });
30
+ customElements.define("bs-icon-link", class IconLink extends BSElement { });
31
+ customElements.define("bs-input-group", class InputGroup extends BSElement { });
32
+ customElements.define("bs-list-box", class ListBox extends BSElement { });
33
+ customElements.define("bs-list-group", class ListGroup extends BSElement { });
34
+ customElements.define("bs-modal", class Modal extends BSElement { });
35
+ customElements.define("bs-nav", class Nav extends BSElement { });
36
+ customElements.define("bs-navbar", class Navbar extends BSElement { });
37
+ customElements.define("bs-offcanvas", class Offcanvas extends BSElement { });
38
+ customElements.define("bs-paging", class Paging extends BSElement { });
39
+ customElements.define("bs-popover", class Popover extends BSElement { });
40
+ customElements.define("bs-progress", class Progress extends BSElement { });
41
+ customElements.define("bs-progress-group", class ProgressGroup extends BSElement { });
42
+ customElements.define("bs-spinner", class Spinner extends BSElement { });
43
+ customElements.define("bs-table", class Table extends BSElement { });
44
+ customElements.define("bs-toast", class Toast extends BSElement { });
45
+ customElements.define("bs-toolbar", class Toolbar extends BSElement { });
46
+ customElements.define("bs-tooltip", class Tooltip extends BSElement { });
@@ -1,9 +1,7 @@
1
1
  import * as Components from "./components/components";
2
2
  import { Icons, IconTypes } from "./icons";
3
- declare var tippy: Function;
4
3
 
5
4
  export {
6
5
  Components,
7
- Icons, IconTypes,
8
- tippy
6
+ Icons, IconTypes
9
7
  }
@@ -8,14 +8,14 @@ import "./ie";
8
8
  import * as Components from "./components";
9
9
  export { Components }
10
10
 
11
- // TippyJS library
12
- import tippy from "tippy.js";
13
- export { tippy }
11
+ // Render method
12
+ import { render } from "./render";
13
+ export { render };
14
14
 
15
15
  // Icons
16
16
  import { Icons, IconTypes } from "./icons";
17
17
  export { Icons, IconTypes }
18
18
 
19
19
  // Bootstrap Global library
20
- const BS = { Components, Icons, IconTypes, tippy }
20
+ const BS = { Components, Icons, IconTypes, render }
21
21
  window["GD"] = window["GD"] || BS;
package/src/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as Components from "./components/components";
2
- declare var tippy: Function;
2
+ declare var render: (el: HTMLElement) => void;
3
3
 
4
4
  export {
5
- Components, tippy
5
+ Components, render
6
6
  }
package/src/index.ts CHANGED
@@ -8,10 +8,10 @@ import "./ie";
8
8
  import * as Components from "./components";
9
9
  export { Components }
10
10
 
11
- // TippyJS library
12
- import tippy from "tippy.js";
13
- export { tippy }
11
+ // Render method
12
+ import { render } from "./render";
13
+ export { render };
14
14
 
15
15
  // Bootstrap Global library
16
- const BS = { Components, tippy }
16
+ const BS = { Components, render }
17
17
  window["GD"] = window["GD"] || BS;