@haiilo/catalyst 0.7.4 → 0.8.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.
Files changed (142) hide show
  1. package/dist/catalyst/catalyst.css +1 -1
  2. package/dist/catalyst/catalyst.esm.js +1 -1
  3. package/dist/catalyst/catalyst.esm.js.map +1 -1
  4. package/dist/catalyst/index.esm.js +1 -1
  5. package/dist/catalyst/p-2ad6f8d8.js +2 -0
  6. package/dist/catalyst/{p-7c06183a.js.map → p-2ad6f8d8.js.map} +1 -1
  7. package/dist/catalyst/p-659073b5.js +3 -0
  8. package/dist/catalyst/p-659073b5.js.map +1 -0
  9. package/dist/catalyst/{p-c7f3b231.js → p-6a8a4dc0.js} +2 -2
  10. package/dist/catalyst/{p-c7f3b231.js.map → p-6a8a4dc0.js.map} +0 -0
  11. package/dist/catalyst/{p-5616e2cd.js → p-6fce43dd.js} +2 -2
  12. package/dist/catalyst/{p-5616e2cd.js.map → p-6fce43dd.js.map} +0 -0
  13. package/dist/catalyst/p-89c24fb5.entry.js +12 -0
  14. package/dist/catalyst/p-89c24fb5.entry.js.map +1 -0
  15. package/dist/catalyst/{p-4254363e.entry.js → p-c0b4200d.entry.js} +2 -2
  16. package/dist/catalyst/{p-4254363e.entry.js.map → p-c0b4200d.entry.js.map} +0 -0
  17. package/dist/catalyst/{p-12486027.js → p-decdc6f1.js} +2 -2
  18. package/dist/catalyst/p-decdc6f1.js.map +1 -0
  19. package/dist/catalyst/p-f45bcfd6.js +2 -0
  20. package/dist/catalyst/p-f45bcfd6.js.map +1 -0
  21. package/dist/catalyst/scss/_mixins.scss +1 -1
  22. package/dist/catalyst/scss/_variables.scss +2 -0
  23. package/dist/catalyst/scss/fonts/{_fonts.mixins.scss → _fonts-mixins.scss} +0 -0
  24. package/dist/catalyst/scss/index.scss +4 -3
  25. package/dist/cjs/{app-globals-aa29ad72.js → app-globals-79765026.js} +3 -3
  26. package/dist/cjs/{app-globals-aa29ad72.js.map → app-globals-79765026.js.map} +1 -1
  27. package/dist/cjs/cat-alert_20.cjs.entry.js +12632 -0
  28. package/dist/cjs/cat-alert_20.cjs.entry.js.map +1 -0
  29. package/dist/cjs/{cat-form-hint-93a6936b.js → cat-form-hint-25fdfed5.js} +2 -2
  30. package/dist/cjs/{cat-form-hint-93a6936b.js.map → cat-form-hint-25fdfed5.js.map} +1 -1
  31. package/dist/cjs/{cat-icon-registry-49b11b51.js → cat-icon-registry-b015a65f.js} +37 -43
  32. package/dist/cjs/cat-icon-registry-b015a65f.js.map +1 -0
  33. package/dist/cjs/{cat-notification-156f4cf5.js → cat-notification-fe237312.js} +2 -2
  34. package/dist/cjs/{cat-notification-156f4cf5.js.map → cat-notification-fe237312.js.map} +1 -1
  35. package/dist/cjs/cat-textarea.cjs.entry.js +3 -3
  36. package/dist/cjs/catalyst.cjs.js +6 -6
  37. package/dist/cjs/catalyst.cjs.js.map +1 -1
  38. package/dist/cjs/{index-499bad41.js → index-936b777e.js} +10 -5
  39. package/dist/cjs/index-936b777e.js.map +1 -0
  40. package/dist/cjs/index.cjs.js +3 -3
  41. package/dist/cjs/loader.cjs.js +6 -6
  42. package/dist/cjs/loader.cjs.js.map +1 -1
  43. package/dist/cjs/{loglevel-c9b2d01f.js → loglevel-b5d158ad.js} +6 -1
  44. package/dist/cjs/loglevel-b5d158ad.js.map +1 -0
  45. package/dist/collection/collection-manifest.json +3 -1
  46. package/dist/collection/components/cat-avatar/cat-avatar.js +2 -2
  47. package/dist/collection/components/cat-avatar/cat-avatar.js.map +1 -1
  48. package/dist/collection/components/cat-i18n/cat-i18n-registry.js +35 -41
  49. package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +1 -1
  50. package/dist/collection/components/cat-input/cat-input.js +2 -2
  51. package/dist/collection/components/cat-input/cat-input.js.map +1 -1
  52. package/dist/collection/components/cat-modal/cat-modal.css +65 -0
  53. package/dist/collection/components/cat-modal/cat-modal.js +117 -0
  54. package/dist/collection/components/cat-modal/cat-modal.js.map +1 -0
  55. package/dist/collection/components/cat-select/cat-select.css +602 -0
  56. package/dist/collection/components/cat-select/cat-select.js +528 -0
  57. package/dist/collection/components/cat-select/cat-select.js.map +1 -0
  58. package/dist/collection/init.js +1 -1
  59. package/dist/collection/init.js.map +1 -1
  60. package/dist/collection/scss/_mixins.scss +1 -1
  61. package/dist/collection/scss/_variables.scss +2 -0
  62. package/dist/collection/scss/fonts/{_fonts.mixins.scss → _fonts-mixins.scss} +0 -0
  63. package/dist/collection/scss/index.scss +4 -3
  64. package/dist/components/cat-avatar.js +2 -2
  65. package/dist/components/cat-avatar.js.map +1 -1
  66. package/dist/components/cat-i18n-registry.js +35 -41
  67. package/dist/components/cat-i18n-registry.js.map +1 -1
  68. package/dist/components/cat-icon.js +1 -1
  69. package/dist/components/cat-icon2.js +56 -2
  70. package/dist/components/cat-icon2.js.map +1 -1
  71. package/dist/components/cat-input.js +2 -2
  72. package/dist/components/cat-input.js.map +1 -1
  73. package/dist/components/cat-menu.js +3 -742
  74. package/dist/components/cat-menu.js.map +1 -1
  75. package/dist/components/cat-modal.d.ts +11 -0
  76. package/dist/components/cat-modal.js +111 -0
  77. package/dist/components/cat-modal.js.map +1 -0
  78. package/dist/components/cat-select.d.ts +11 -0
  79. package/dist/components/cat-select.js +7790 -0
  80. package/dist/components/cat-select.js.map +1 -0
  81. package/dist/components/cat-toast-demo.js +549 -4
  82. package/dist/components/cat-toast-demo.js.map +1 -1
  83. package/dist/components/cat-tooltip.js +2 -1
  84. package/dist/components/cat-tooltip.js.map +1 -1
  85. package/dist/components/first-tabbable.js +1 -1068
  86. package/dist/components/first-tabbable.js.map +1 -1
  87. package/dist/components/floating-ui.dom.esm.js +1070 -0
  88. package/dist/components/floating-ui.dom.esm.js.map +1 -0
  89. package/dist/components/focus-trap.esm.js +746 -0
  90. package/dist/components/focus-trap.esm.js.map +1 -0
  91. package/dist/components/index.d.ts +21 -5
  92. package/dist/components/index.js +24 -4
  93. package/dist/components/index.js.map +1 -1
  94. package/dist/components/loglevel.js +5 -1
  95. package/dist/components/loglevel.js.map +1 -1
  96. package/dist/esm/{app-globals-cf55f7f5.js → app-globals-7d163b94.js} +3 -3
  97. package/dist/esm/{app-globals-cf55f7f5.js.map → app-globals-7d163b94.js.map} +1 -1
  98. package/dist/esm/cat-alert_20.entry.js +12609 -0
  99. package/dist/esm/cat-alert_20.entry.js.map +1 -0
  100. package/dist/esm/{cat-form-hint-dc443c7c.js → cat-form-hint-790d1e46.js} +2 -2
  101. package/dist/esm/{cat-form-hint-dc443c7c.js.map → cat-form-hint-790d1e46.js.map} +1 -1
  102. package/dist/esm/{cat-icon-registry-3ea75755.js → cat-icon-registry-dc1ef79a.js} +37 -43
  103. package/dist/esm/cat-icon-registry-dc1ef79a.js.map +1 -0
  104. package/dist/{components/cat-notification.js → esm/cat-notification-a9655c00.js} +2 -2
  105. package/dist/esm/{cat-notification-cd98c266.js.map → cat-notification-a9655c00.js.map} +1 -1
  106. package/dist/esm/cat-textarea.entry.js +3 -3
  107. package/dist/esm/catalyst.js +6 -6
  108. package/dist/esm/catalyst.js.map +1 -1
  109. package/dist/esm/{index-039e6f5f.js → index-41ceb7da.js} +10 -5
  110. package/dist/esm/index-41ceb7da.js.map +1 -0
  111. package/dist/esm/index.js +3 -3
  112. package/dist/esm/loader.js +6 -6
  113. package/dist/esm/loader.js.map +1 -1
  114. package/dist/esm/{loglevel-39a9e3f9.js → loglevel-c8b59c3a.js} +6 -2
  115. package/dist/{cjs/loglevel-c9b2d01f.js.map → esm/loglevel-c8b59c3a.js.map} +1 -1
  116. package/dist/esm/polyfills/css-shim.js +1 -1
  117. package/dist/types/components/cat-i18n/cat-i18n-registry.d.ts +9 -10
  118. package/dist/types/components/cat-modal/cat-modal.d.ts +20 -0
  119. package/dist/types/components/cat-select/cat-select.d.ts +84 -0
  120. package/dist/types/components.d.ts +184 -25
  121. package/package.json +11 -10
  122. package/dist/catalyst/p-12486027.js.map +0 -1
  123. package/dist/catalyst/p-12b96af6.js +0 -2
  124. package/dist/catalyst/p-12b96af6.js.map +0 -1
  125. package/dist/catalyst/p-2ec5c87a.js +0 -2
  126. package/dist/catalyst/p-2ec5c87a.js.map +0 -1
  127. package/dist/catalyst/p-7c06183a.js +0 -2
  128. package/dist/catalyst/p-dda85567.entry.js +0 -10
  129. package/dist/catalyst/p-dda85567.entry.js.map +0 -1
  130. package/dist/cjs/cat-alert_18.cjs.entry.js +0 -4831
  131. package/dist/cjs/cat-alert_18.cjs.entry.js.map +0 -1
  132. package/dist/cjs/cat-icon-registry-49b11b51.js.map +0 -1
  133. package/dist/cjs/index-499bad41.js.map +0 -1
  134. package/dist/components/cat-icon-registry.js +0 -59
  135. package/dist/components/cat-icon-registry.js.map +0 -1
  136. package/dist/components/cat-notification.js.map +0 -1
  137. package/dist/esm/cat-alert_18.entry.js +0 -4810
  138. package/dist/esm/cat-alert_18.entry.js.map +0 -1
  139. package/dist/esm/cat-icon-registry-3ea75755.js.map +0 -1
  140. package/dist/esm/cat-notification-cd98c266.js +0 -550
  141. package/dist/esm/index-039e6f5f.js.map +0 -1
  142. package/dist/esm/loglevel-39a9e3f9.js.map +0 -1
@@ -1,12 +1,557 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
- import { N as NotificationsService } from './cat-notification.js';
1
+ import { proxyCustomElement, HTMLElement as HTMLElement$1, h } from '@stencil/core/internal/client';
2
+ import { c as createCommonjsModule, a as commonjsGlobal } from './loglevel.js';
3
3
  import { d as defineCustomElement$4 } from './cat-button2.js';
4
4
  import { d as defineCustomElement$3 } from './cat-icon2.js';
5
5
  import { d as defineCustomElement$2 } from './cat-spinner2.js';
6
6
 
7
+ var toastify = createCommonjsModule(function (module) {
8
+ /*!
9
+ * Toastify js 1.11.2
10
+ * https://github.com/apvarun/toastify-js
11
+ * @license MIT licensed
12
+ *
13
+ * Copyright (C) 2018 Varun A P
14
+ */
15
+ (function(root, factory) {
16
+ if (module.exports) {
17
+ module.exports = factory();
18
+ } else {
19
+ root.Toastify = factory();
20
+ }
21
+ })(commonjsGlobal, function(global) {
22
+ // Object initialization
23
+ var Toastify = function(options) {
24
+ // Returning a new init object
25
+ return new Toastify.lib.init(options);
26
+ },
27
+ // Library version
28
+ version = "1.11.2";
29
+
30
+ // Set the default global options
31
+ Toastify.defaults = {
32
+ oldestFirst: true,
33
+ text: "Toastify is awesome!",
34
+ node: undefined,
35
+ duration: 3000,
36
+ selector: undefined,
37
+ callback: function () {
38
+ },
39
+ destination: undefined,
40
+ newWindow: false,
41
+ close: false,
42
+ gravity: "toastify-top",
43
+ positionLeft: false,
44
+ position: '',
45
+ backgroundColor: '',
46
+ avatar: "",
47
+ className: "",
48
+ stopOnFocus: true,
49
+ onClick: function () {
50
+ },
51
+ offset: {x: 0, y: 0},
52
+ escapeMarkup: true,
53
+ style: {background: ''}
54
+ };
55
+
56
+ // Defining the prototype of the object
57
+ Toastify.lib = Toastify.prototype = {
58
+ toastify: version,
59
+
60
+ constructor: Toastify,
61
+
62
+ // Initializing the object with required parameters
63
+ init: function(options) {
64
+ // Verifying and validating the input object
65
+ if (!options) {
66
+ options = {};
67
+ }
68
+
69
+ // Creating the options object
70
+ this.options = {};
71
+
72
+ this.toastElement = null;
73
+
74
+ // Validating the options
75
+ this.options.text = options.text || Toastify.defaults.text; // Display message
76
+ this.options.node = options.node || Toastify.defaults.node; // Display content as node
77
+ this.options.duration = options.duration === 0 ? 0 : options.duration || Toastify.defaults.duration; // Display duration
78
+ this.options.selector = options.selector || Toastify.defaults.selector; // Parent selector
79
+ this.options.callback = options.callback || Toastify.defaults.callback; // Callback after display
80
+ this.options.destination = options.destination || Toastify.defaults.destination; // On-click destination
81
+ this.options.newWindow = options.newWindow || Toastify.defaults.newWindow; // Open destination in new window
82
+ this.options.close = options.close || Toastify.defaults.close; // Show toast close icon
83
+ this.options.gravity = options.gravity === "bottom" ? "toastify-bottom" : Toastify.defaults.gravity; // toast position - top or bottom
84
+ this.options.positionLeft = options.positionLeft || Toastify.defaults.positionLeft; // toast position - left or right
85
+ this.options.position = options.position || Toastify.defaults.position; // toast position - left or right
86
+ this.options.backgroundColor = options.backgroundColor || Toastify.defaults.backgroundColor; // toast background color
87
+ this.options.avatar = options.avatar || Toastify.defaults.avatar; // img element src - url or a path
88
+ this.options.className = options.className || Toastify.defaults.className; // additional class names for the toast
89
+ this.options.stopOnFocus = options.stopOnFocus === undefined ? Toastify.defaults.stopOnFocus : options.stopOnFocus; // stop timeout on focus
90
+ this.options.onClick = options.onClick || Toastify.defaults.onClick; // Callback after click
91
+ this.options.offset = options.offset || Toastify.defaults.offset; // toast offset
92
+ this.options.escapeMarkup = options.escapeMarkup !== undefined ? options.escapeMarkup : Toastify.defaults.escapeMarkup;
93
+ this.options.style = options.style || Toastify.defaults.style;
94
+ if(options.backgroundColor) {
95
+ this.options.style.background = options.backgroundColor;
96
+ }
97
+
98
+ // Returning the current object for chaining functions
99
+ return this;
100
+ },
101
+
102
+ // Building the DOM element
103
+ buildToast: function() {
104
+ // Validating if the options are defined
105
+ if (!this.options) {
106
+ throw "Toastify is not initialized";
107
+ }
108
+
109
+ // Creating the DOM object
110
+ var divElement = document.createElement("div");
111
+ divElement.className = "toastify on " + this.options.className;
112
+
113
+ // Positioning toast to left or right or center
114
+ if (!!this.options.position) {
115
+ divElement.className += " toastify-" + this.options.position;
116
+ } else {
117
+ // To be depreciated in further versions
118
+ if (this.options.positionLeft === true) {
119
+ divElement.className += " toastify-left";
120
+ console.warn('Property `positionLeft` will be depreciated in further versions. Please use `position` instead.');
121
+ } else {
122
+ // Default position
123
+ divElement.className += " toastify-right";
124
+ }
125
+ }
126
+
127
+ // Assigning gravity of element
128
+ divElement.className += " " + this.options.gravity;
129
+
130
+ if (this.options.backgroundColor) {
131
+ // This is being deprecated in favor of using the style HTML DOM property
132
+ console.warn('DEPRECATION NOTICE: "backgroundColor" is being deprecated. Please use the "style.background" property.');
133
+ }
134
+
135
+ // Loop through our style object and apply styles to divElement
136
+ for (var property in this.options.style) {
137
+ divElement.style[property] = this.options.style[property];
138
+ }
139
+
140
+ // Adding the toast message/node
141
+ if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) {
142
+ // If we have a valid node, we insert it
143
+ divElement.appendChild(this.options.node);
144
+ } else {
145
+ if (this.options.escapeMarkup) {
146
+ divElement.innerText = this.options.text;
147
+ } else {
148
+ divElement.innerHTML = this.options.text;
149
+ }
150
+
151
+ if (this.options.avatar !== "") {
152
+ var avatarElement = document.createElement("img");
153
+ avatarElement.src = this.options.avatar;
154
+
155
+ avatarElement.className = "toastify-avatar";
156
+
157
+ if (this.options.position == "left" || this.options.positionLeft === true) {
158
+ // Adding close icon on the left of content
159
+ divElement.appendChild(avatarElement);
160
+ } else {
161
+ // Adding close icon on the right of content
162
+ divElement.insertAdjacentElement("afterbegin", avatarElement);
163
+ }
164
+ }
165
+ }
166
+
167
+ // Adding a close icon to the toast
168
+ if (this.options.close === true) {
169
+ // Create a span for close element
170
+ var closeElement = document.createElement("span");
171
+ closeElement.innerHTML = "✖";
172
+
173
+ closeElement.className = "toast-close";
174
+
175
+ // Triggering the removal of toast from DOM on close click
176
+ closeElement.addEventListener(
177
+ "click",
178
+ function(event) {
179
+ event.stopPropagation();
180
+ this.removeElement(this.toastElement);
181
+ window.clearTimeout(this.toastElement.timeOutValue);
182
+ }.bind(this)
183
+ );
184
+
185
+ //Calculating screen width
186
+ var width = window.innerWidth > 0 ? window.innerWidth : screen.width;
187
+
188
+ // Adding the close icon to the toast element
189
+ // Display on the right if screen width is less than or equal to 360px
190
+ if ((this.options.position == "left" || this.options.positionLeft === true) && width > 360) {
191
+ // Adding close icon on the left of content
192
+ divElement.insertAdjacentElement("afterbegin", closeElement);
193
+ } else {
194
+ // Adding close icon on the right of content
195
+ divElement.appendChild(closeElement);
196
+ }
197
+ }
198
+
199
+ // Clear timeout while toast is focused
200
+ if (this.options.stopOnFocus && this.options.duration > 0) {
201
+ var self = this;
202
+ // stop countdown
203
+ divElement.addEventListener(
204
+ "mouseover",
205
+ function(event) {
206
+ window.clearTimeout(divElement.timeOutValue);
207
+ }
208
+ );
209
+ // add back the timeout
210
+ divElement.addEventListener(
211
+ "mouseleave",
212
+ function() {
213
+ divElement.timeOutValue = window.setTimeout(
214
+ function() {
215
+ // Remove the toast from DOM
216
+ self.removeElement(divElement);
217
+ },
218
+ self.options.duration
219
+ );
220
+ }
221
+ );
222
+ }
223
+
224
+ // Adding an on-click destination path
225
+ if (typeof this.options.destination !== "undefined") {
226
+ divElement.addEventListener(
227
+ "click",
228
+ function(event) {
229
+ event.stopPropagation();
230
+ if (this.options.newWindow === true) {
231
+ window.open(this.options.destination, "_blank");
232
+ } else {
233
+ window.location = this.options.destination;
234
+ }
235
+ }.bind(this)
236
+ );
237
+ }
238
+
239
+ if (typeof this.options.onClick === "function" && typeof this.options.destination === "undefined") {
240
+ divElement.addEventListener(
241
+ "click",
242
+ function(event) {
243
+ event.stopPropagation();
244
+ this.options.onClick();
245
+ }.bind(this)
246
+ );
247
+ }
248
+
249
+ // Adding offset
250
+ if(typeof this.options.offset === "object") {
251
+
252
+ var x = getAxisOffsetAValue("x", this.options);
253
+ var y = getAxisOffsetAValue("y", this.options);
254
+
255
+ var xOffset = this.options.position == "left" ? x : "-" + x;
256
+ var yOffset = this.options.gravity == "toastify-top" ? y : "-" + y;
257
+
258
+ divElement.style.transform = "translate(" + xOffset + "," + yOffset + ")";
259
+
260
+ }
261
+
262
+ // Returning the generated element
263
+ return divElement;
264
+ },
265
+
266
+ // Displaying the toast
267
+ showToast: function() {
268
+ // Creating the DOM object for the toast
269
+ this.toastElement = this.buildToast();
270
+
271
+ // Getting the root element to with the toast needs to be added
272
+ var rootElement;
273
+ if (typeof this.options.selector === "string") {
274
+ rootElement = document.getElementById(this.options.selector);
275
+ } else if (this.options.selector instanceof HTMLElement || (typeof ShadowRoot !== 'undefined' && this.options.selector instanceof ShadowRoot)) {
276
+ rootElement = this.options.selector;
277
+ } else {
278
+ rootElement = document.body;
279
+ }
280
+
281
+ // Validating if root element is present in DOM
282
+ if (!rootElement) {
283
+ throw "Root element is not defined";
284
+ }
285
+
286
+ // Adding the DOM element
287
+ var elementToInsert = Toastify.defaults.oldestFirst ? rootElement.firstChild : rootElement.lastChild;
288
+ rootElement.insertBefore(this.toastElement, elementToInsert);
289
+
290
+ // Repositioning the toasts in case multiple toasts are present
291
+ Toastify.reposition();
292
+
293
+ if (this.options.duration > 0) {
294
+ this.toastElement.timeOutValue = window.setTimeout(
295
+ function() {
296
+ // Remove the toast from DOM
297
+ this.removeElement(this.toastElement);
298
+ }.bind(this),
299
+ this.options.duration
300
+ ); // Binding `this` for function invocation
301
+ }
302
+
303
+ // Supporting function chaining
304
+ return this;
305
+ },
306
+
307
+ hideToast: function() {
308
+ if (this.toastElement.timeOutValue) {
309
+ clearTimeout(this.toastElement.timeOutValue);
310
+ }
311
+ this.removeElement(this.toastElement);
312
+ },
313
+
314
+ // Removing the element from the DOM
315
+ removeElement: function(toastElement) {
316
+ // Hiding the element
317
+ // toastElement.classList.remove("on");
318
+ toastElement.className = toastElement.className.replace(" on", "");
319
+
320
+ // Removing the element from DOM after transition end
321
+ window.setTimeout(
322
+ function() {
323
+ // remove options node if any
324
+ if (this.options.node && this.options.node.parentNode) {
325
+ this.options.node.parentNode.removeChild(this.options.node);
326
+ }
327
+
328
+ // Remove the element from the DOM, only when the parent node was not removed before.
329
+ if (toastElement.parentNode) {
330
+ toastElement.parentNode.removeChild(toastElement);
331
+ }
332
+
333
+ // Calling the callback function
334
+ this.options.callback.call(toastElement);
335
+
336
+ // Repositioning the toasts again
337
+ Toastify.reposition();
338
+ }.bind(this),
339
+ 400
340
+ ); // Binding `this` for function invocation
341
+ },
342
+ };
343
+
344
+ // Positioning the toasts on the DOM
345
+ Toastify.reposition = function() {
346
+
347
+ // Top margins with gravity
348
+ var topLeftOffsetSize = {
349
+ top: 15,
350
+ bottom: 15,
351
+ };
352
+ var topRightOffsetSize = {
353
+ top: 15,
354
+ bottom: 15,
355
+ };
356
+ var offsetSize = {
357
+ top: 15,
358
+ bottom: 15,
359
+ };
360
+
361
+ // Get all toast messages on the DOM
362
+ var allToasts = document.getElementsByClassName("toastify");
363
+
364
+ var classUsed;
365
+
366
+ // Modifying the position of each toast element
367
+ for (var i = 0; i < allToasts.length; i++) {
368
+ // Getting the applied gravity
369
+ if (containsClass(allToasts[i], "toastify-top") === true) {
370
+ classUsed = "toastify-top";
371
+ } else {
372
+ classUsed = "toastify-bottom";
373
+ }
374
+
375
+ var height = allToasts[i].offsetHeight;
376
+ classUsed = classUsed.substr(9, classUsed.length-1);
377
+ // Spacing between toasts
378
+ var offset = 15;
379
+
380
+ var width = window.innerWidth > 0 ? window.innerWidth : screen.width;
381
+
382
+ // Show toast in center if screen with less than or equal to 360px
383
+ if (width <= 360) {
384
+ // Setting the position
385
+ allToasts[i].style[classUsed] = offsetSize[classUsed] + "px";
386
+
387
+ offsetSize[classUsed] += height + offset;
388
+ } else {
389
+ if (containsClass(allToasts[i], "toastify-left") === true) {
390
+ // Setting the position
391
+ allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + "px";
392
+
393
+ topLeftOffsetSize[classUsed] += height + offset;
394
+ } else {
395
+ // Setting the position
396
+ allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + "px";
397
+
398
+ topRightOffsetSize[classUsed] += height + offset;
399
+ }
400
+ }
401
+ }
402
+
403
+ // Supporting function chaining
404
+ return this;
405
+ };
406
+
407
+ // Helper function to get offset.
408
+ function getAxisOffsetAValue(axis, options) {
409
+
410
+ if(options.offset[axis]) {
411
+ if(isNaN(options.offset[axis])) {
412
+ return options.offset[axis];
413
+ }
414
+ else {
415
+ return options.offset[axis] + 'px';
416
+ }
417
+ }
418
+
419
+ return '0px';
420
+
421
+ }
422
+
423
+ function containsClass(elem, yourClass) {
424
+ if (!elem || typeof yourClass !== "string") {
425
+ return false;
426
+ } else if (
427
+ elem.className &&
428
+ elem.className
429
+ .trim()
430
+ .split(/\s+/gi)
431
+ .indexOf(yourClass) > -1
432
+ ) {
433
+ return true;
434
+ } else {
435
+ return false;
436
+ }
437
+ }
438
+
439
+ // Setting up the prototype for the init object
440
+ Toastify.lib.init.prototype = Toastify.lib;
441
+
442
+ // Returning the Toastify function to be assigned to the window object/module
443
+ return Toastify;
444
+ });
445
+ });
446
+
447
+ var TypeIcons;
448
+ (function (TypeIcons) {
449
+ TypeIcons["success"] = "check-circle-filled";
450
+ TypeIcons["error"] = "sparkle-filled";
451
+ TypeIcons["info"] = "sparkle-filled";
452
+ })(TypeIcons || (TypeIcons = {}));
453
+ const ToastPositions = {
454
+ 'top-left': {
455
+ gravity: 'top',
456
+ position: 'left'
457
+ },
458
+ 'top-center': {
459
+ gravity: 'top',
460
+ position: 'center'
461
+ },
462
+ 'top-right': {
463
+ gravity: 'top',
464
+ position: 'right'
465
+ },
466
+ 'bottom-left': {
467
+ gravity: 'bottom',
468
+ position: 'left'
469
+ },
470
+ 'bottom-center': {
471
+ gravity: 'bottom',
472
+ position: 'center'
473
+ },
474
+ 'bottom-right': {
475
+ gravity: 'bottom',
476
+ position: 'right'
477
+ }
478
+ };
479
+ class CatNotificationService {
480
+ toastHTMLTemplate(title, message = ' ', options) {
481
+ var _a;
482
+ const template = document.createElement('template');
483
+ const typeIcon = (options === null || options === void 0 ? void 0 : options.type) ? TypeIcons[options.type] : TypeIcons.info;
484
+ title = title.trim();
485
+ message = message.trim();
486
+ const hasMessage = message && message !== '';
487
+ const hasMessageClass = hasMessage ? 'has-message' : '';
488
+ template.innerHTML = `<div class="cat-toastify-wrapper">
489
+ <div class="cat-toastify-icon-wrapper ${(_a = options === null || options === void 0 ? void 0 : options.type) !== null && _a !== void 0 ? _a : 'info'}">
490
+ <cat-icon icon="${typeIcon}"></cat-icon>
491
+ </div>
492
+ <div class="cat-toastify-title-wrapper ${hasMessageClass}">
493
+ <div class="cat-toastify-title">${title}</div></div>
494
+ ${hasMessage ? `<div class="cat-toastify-message">${message}</div>` : ''}
495
+ </div>`;
496
+ return template.content.firstChild;
497
+ }
498
+ error(title, message = ' ', options) {
499
+ const position = this.getPosition(options);
500
+ const toastOptions = {
501
+ node: (options === null || options === void 0 ? void 0 : options.content) ? options.content : this.toastHTMLTemplate(title, message, options),
502
+ duration: CatNotificationService.DURATION,
503
+ close: true,
504
+ className: 'cat-toastify',
505
+ gravity: position.gravity,
506
+ position: position.position,
507
+ stopOnFocus: true
508
+ };
509
+ toastify(toastOptions).showToast();
510
+ }
511
+ success(title, message = ' ', options) {
512
+ const position = this.getPosition(options);
513
+ const toastOptions = {
514
+ node: (options === null || options === void 0 ? void 0 : options.content) ? options.content : this.toastHTMLTemplate(title, message, options),
515
+ duration: CatNotificationService.DURATION,
516
+ close: true,
517
+ className: 'cat-toastify',
518
+ gravity: position.gravity,
519
+ position: position.position,
520
+ stopOnFocus: true
521
+ };
522
+ toastify(toastOptions).showToast();
523
+ }
524
+ info(title, message = ' ', options) {
525
+ const position = this.getPosition(options);
526
+ const toastOptions = {
527
+ node: (options === null || options === void 0 ? void 0 : options.content) ? options.content : this.toastHTMLTemplate(title, message, options),
528
+ duration: CatNotificationService.DURATION,
529
+ close: true,
530
+ className: 'cat-toastify',
531
+ gravity: position.gravity,
532
+ position: position.position,
533
+ stopOnFocus: true
534
+ };
535
+ toastify(toastOptions).showToast();
536
+ }
537
+ getPosition(options) {
538
+ const position = {
539
+ gravity: 'bottom',
540
+ position: 'right'
541
+ };
542
+ if ((options === null || options === void 0 ? void 0 : options.position) && ToastPositions[options.position]) {
543
+ position.position = ToastPositions[options.position].position;
544
+ position.gravity = ToastPositions[options.position].gravity;
545
+ }
546
+ return position;
547
+ }
548
+ }
549
+ CatNotificationService.DURATION = 8000;
550
+ const NotificationsService = new CatNotificationService();
551
+
7
552
  const catToastDemoCss = ":host{display:block}";
8
553
 
9
- const CatToastDemo$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
554
+ const CatToastDemo$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
10
555
  constructor() {
11
556
  super();
12
557
  this.__registerHost();
@@ -79,6 +624,6 @@ function defineCustomElement$1() {
79
624
  const CatToastDemo = CatToastDemo$1;
80
625
  const defineCustomElement = defineCustomElement$1;
81
626
 
82
- export { CatToastDemo, defineCustomElement };
627
+ export { CatToastDemo, NotificationsService as N, defineCustomElement };
83
628
 
84
629
  //# sourceMappingURL=cat-toast-demo.js.map
@@ -1 +1 @@
1
- {"file":"cat-toast-demo.js","mappings":";;;;;;AAAA,MAAM,eAAe,GAAG,sBAAsB;;MCYjCA,cAAY;;;;;EACvB,MAAM;IACJ,OAAO,kBAAY,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAiC,CAAC;GACtF;EAEO,OAAO;IACb,MAAM,WAAW,GAA0B;MACzC,QAAQ,EAAE,UAAU;KACrB,CAAC;IACF,MAAM,YAAY,GAA0B;MAC1C,QAAQ,EAAE,YAAY;MACtB,IAAI,EAAE,OAAO;KACd,CAAC;IACF,MAAM,aAAa,GAA0B;MAC3C,QAAQ,EAAE,aAAa;MACvB,IAAI,EAAE,OAAO;KACd,CAAC;IACF,MAAM,eAAe,GAA0B;MAC7C,QAAQ,EAAE,cAAc;MACxB,IAAI,EAAE,SAAS;KAChB,CAAC;IACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,GAAG,wEAAwE,CAAC;IAC9F,MAAM,eAAe,GAA0B;MAC7C,QAAQ,EAAE,cAAc;MACxB,IAAI,EAAE,SAAS;MACf,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAyB;KACpD,CAAC;IAEF,oBAAoB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC5C,oBAAoB,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;IAC7G,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IACrE,oBAAoB,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;IACvD,oBAAoB,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;IAC7D,oBAAoB,CAAC,KAAK,CACxB,eAAe,EACf,8RAA8R,EAC9R,aAAa,CACd,CAAC;IACF,oBAAoB,CAAC,OAAO,CAAC,iDAAiD,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;GACvG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["CatToastDemo"],"sources":["./src/components/cat-toast-demo/cat-toast-demo.scss?tag=cat-toast-demo","./src/components/cat-toast-demo/cat-toast-demo.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, h } from '@stencil/core';\nimport { NotificationsService, ToastOptions } from '../cat-notification/cat-notification';\n\n/**\n * Toast Component Demo\n *\n * @part toast - The content of the toast.\n */\n@Component({\n tag: 'cat-toast-demo',\n styleUrl: 'cat-toast-demo.scss'\n})\nexport class CatToastDemo {\n render() {\n return <cat-button onClick={this.onClick.bind(this)}>Show Notifications</cat-button>;\n }\n\n private onClick() {\n const infoOptions: Partial<ToastOptions> = {\n position: 'top-left'\n };\n const errorOptions: Partial<ToastOptions> = {\n position: 'top-center',\n type: 'error'\n };\n const errorOptions2: Partial<ToastOptions> = {\n position: 'bottom-left',\n type: 'error'\n };\n const successOptions3: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'success'\n };\n const template = document.createElement('template');\n template.innerHTML = `<div style=\"padding: 7px 30px 7px 10px\">Custom HTML Node Content</div>`;\n const successOptions4: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'success',\n content: template.content.firstChild as HTMLElement\n };\n\n NotificationsService.error('Default Click');\n NotificationsService.error('Long default title, long default title, long default title, long default title');\n NotificationsService.info('Info Click', 'Info message', infoOptions);\n NotificationsService.success('', ' ', successOptions4);\n NotificationsService.error('Error Title', ' ', errorOptions);\n NotificationsService.error(\n 'Error 2 Title',\n 'Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message,Very long message, Very long message, Very long message, Very long message, Very long message, ',\n errorOptions2\n );\n NotificationsService.success('Success Title - very long title without message', ' ', successOptions3);\n }\n}\n"],"version":3}
1
+ {"file":"cat-toast-demo.js","mappings":"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","names":["this","Toastify","CatToastDemo"],"sources":["../node_modules/toastify-js/src/toastify.js","./src/components/cat-notification/cat-notification.tsx","./src/components/cat-toast-demo/cat-toast-demo.scss?tag=cat-toast-demo","./src/components/cat-toast-demo/cat-toast-demo.tsx"],"sourcesContent":["/*!\n * Toastify js 1.11.2\n * https://github.com/apvarun/toastify-js\n * @license MIT licensed\n *\n * Copyright (C) 2018 Varun A P\n */\n(function(root, factory) {\n if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Toastify = factory();\n }\n})(this, function(global) {\n // Object initialization\n var Toastify = function(options) {\n // Returning a new init object\n return new Toastify.lib.init(options);\n },\n // Library version\n version = \"1.11.2\";\n\n // Set the default global options\n Toastify.defaults = {\n oldestFirst: true,\n text: \"Toastify is awesome!\",\n node: undefined,\n duration: 3000,\n selector: undefined,\n callback: function () {\n },\n destination: undefined,\n newWindow: false,\n close: false,\n gravity: \"toastify-top\",\n positionLeft: false,\n position: '',\n backgroundColor: '',\n avatar: \"\",\n className: \"\",\n stopOnFocus: true,\n onClick: function () {\n },\n offset: {x: 0, y: 0},\n escapeMarkup: true,\n style: {background: ''}\n };\n\n // Defining the prototype of the object\n Toastify.lib = Toastify.prototype = {\n toastify: version,\n\n constructor: Toastify,\n\n // Initializing the object with required parameters\n init: function(options) {\n // Verifying and validating the input object\n if (!options) {\n options = {};\n }\n\n // Creating the options object\n this.options = {};\n\n this.toastElement = null;\n\n // Validating the options\n this.options.text = options.text || Toastify.defaults.text; // Display message\n this.options.node = options.node || Toastify.defaults.node; // Display content as node\n this.options.duration = options.duration === 0 ? 0 : options.duration || Toastify.defaults.duration; // Display duration\n this.options.selector = options.selector || Toastify.defaults.selector; // Parent selector\n this.options.callback = options.callback || Toastify.defaults.callback; // Callback after display\n this.options.destination = options.destination || Toastify.defaults.destination; // On-click destination\n this.options.newWindow = options.newWindow || Toastify.defaults.newWindow; // Open destination in new window\n this.options.close = options.close || Toastify.defaults.close; // Show toast close icon\n this.options.gravity = options.gravity === \"bottom\" ? \"toastify-bottom\" : Toastify.defaults.gravity; // toast position - top or bottom\n this.options.positionLeft = options.positionLeft || Toastify.defaults.positionLeft; // toast position - left or right\n this.options.position = options.position || Toastify.defaults.position; // toast position - left or right\n this.options.backgroundColor = options.backgroundColor || Toastify.defaults.backgroundColor; // toast background color\n this.options.avatar = options.avatar || Toastify.defaults.avatar; // img element src - url or a path\n this.options.className = options.className || Toastify.defaults.className; // additional class names for the toast\n this.options.stopOnFocus = options.stopOnFocus === undefined ? Toastify.defaults.stopOnFocus : options.stopOnFocus; // stop timeout on focus\n this.options.onClick = options.onClick || Toastify.defaults.onClick; // Callback after click\n this.options.offset = options.offset || Toastify.defaults.offset; // toast offset\n this.options.escapeMarkup = options.escapeMarkup !== undefined ? options.escapeMarkup : Toastify.defaults.escapeMarkup;\n this.options.style = options.style || Toastify.defaults.style;\n if(options.backgroundColor) {\n this.options.style.background = options.backgroundColor;\n }\n\n // Returning the current object for chaining functions\n return this;\n },\n\n // Building the DOM element\n buildToast: function() {\n // Validating if the options are defined\n if (!this.options) {\n throw \"Toastify is not initialized\";\n }\n\n // Creating the DOM object\n var divElement = document.createElement(\"div\");\n divElement.className = \"toastify on \" + this.options.className;\n\n // Positioning toast to left or right or center\n if (!!this.options.position) {\n divElement.className += \" toastify-\" + this.options.position;\n } else {\n // To be depreciated in further versions\n if (this.options.positionLeft === true) {\n divElement.className += \" toastify-left\";\n console.warn('Property `positionLeft` will be depreciated in further versions. Please use `position` instead.')\n } else {\n // Default position\n divElement.className += \" toastify-right\";\n }\n }\n\n // Assigning gravity of element\n divElement.className += \" \" + this.options.gravity;\n\n if (this.options.backgroundColor) {\n // This is being deprecated in favor of using the style HTML DOM property\n console.warn('DEPRECATION NOTICE: \"backgroundColor\" is being deprecated. Please use the \"style.background\" property.');\n }\n\n // Loop through our style object and apply styles to divElement\n for (var property in this.options.style) {\n divElement.style[property] = this.options.style[property];\n }\n\n // Adding the toast message/node\n if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) {\n // If we have a valid node, we insert it\n divElement.appendChild(this.options.node)\n } else {\n if (this.options.escapeMarkup) {\n divElement.innerText = this.options.text;\n } else {\n divElement.innerHTML = this.options.text;\n }\n\n if (this.options.avatar !== \"\") {\n var avatarElement = document.createElement(\"img\");\n avatarElement.src = this.options.avatar;\n\n avatarElement.className = \"toastify-avatar\";\n\n if (this.options.position == \"left\" || this.options.positionLeft === true) {\n // Adding close icon on the left of content\n divElement.appendChild(avatarElement);\n } else {\n // Adding close icon on the right of content\n divElement.insertAdjacentElement(\"afterbegin\", avatarElement);\n }\n }\n }\n\n // Adding a close icon to the toast\n if (this.options.close === true) {\n // Create a span for close element\n var closeElement = document.createElement(\"span\");\n closeElement.innerHTML = \"&#10006;\";\n\n closeElement.className = \"toast-close\";\n\n // Triggering the removal of toast from DOM on close click\n closeElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.removeElement(this.toastElement);\n window.clearTimeout(this.toastElement.timeOutValue);\n }.bind(this)\n );\n\n //Calculating screen width\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Adding the close icon to the toast element\n // Display on the right if screen width is less than or equal to 360px\n if ((this.options.position == \"left\" || this.options.positionLeft === true) && width > 360) {\n // Adding close icon on the left of content\n divElement.insertAdjacentElement(\"afterbegin\", closeElement);\n } else {\n // Adding close icon on the right of content\n divElement.appendChild(closeElement);\n }\n }\n\n // Clear timeout while toast is focused\n if (this.options.stopOnFocus && this.options.duration > 0) {\n var self = this;\n // stop countdown\n divElement.addEventListener(\n \"mouseover\",\n function(event) {\n window.clearTimeout(divElement.timeOutValue);\n }\n )\n // add back the timeout\n divElement.addEventListener(\n \"mouseleave\",\n function() {\n divElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n self.removeElement(divElement);\n },\n self.options.duration\n )\n }\n )\n }\n\n // Adding an on-click destination path\n if (typeof this.options.destination !== \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n if (this.options.newWindow === true) {\n window.open(this.options.destination, \"_blank\");\n } else {\n window.location = this.options.destination;\n }\n }.bind(this)\n );\n }\n\n if (typeof this.options.onClick === \"function\" && typeof this.options.destination === \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.options.onClick();\n }.bind(this)\n );\n }\n\n // Adding offset\n if(typeof this.options.offset === \"object\") {\n\n var x = getAxisOffsetAValue(\"x\", this.options);\n var y = getAxisOffsetAValue(\"y\", this.options);\n\n var xOffset = this.options.position == \"left\" ? x : \"-\" + x;\n var yOffset = this.options.gravity == \"toastify-top\" ? y : \"-\" + y;\n\n divElement.style.transform = \"translate(\" + xOffset + \",\" + yOffset + \")\";\n\n }\n\n // Returning the generated element\n return divElement;\n },\n\n // Displaying the toast\n showToast: function() {\n // Creating the DOM object for the toast\n this.toastElement = this.buildToast();\n\n // Getting the root element to with the toast needs to be added\n var rootElement;\n if (typeof this.options.selector === \"string\") {\n rootElement = document.getElementById(this.options.selector);\n } else if (this.options.selector instanceof HTMLElement || (typeof ShadowRoot !== 'undefined' && this.options.selector instanceof ShadowRoot)) {\n rootElement = this.options.selector;\n } else {\n rootElement = document.body;\n }\n\n // Validating if root element is present in DOM\n if (!rootElement) {\n throw \"Root element is not defined\";\n }\n\n // Adding the DOM element\n var elementToInsert = Toastify.defaults.oldestFirst ? rootElement.firstChild : rootElement.lastChild;\n rootElement.insertBefore(this.toastElement, elementToInsert);\n\n // Repositioning the toasts in case multiple toasts are present\n Toastify.reposition();\n\n if (this.options.duration > 0) {\n this.toastElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n this.removeElement(this.toastElement);\n }.bind(this),\n this.options.duration\n ); // Binding `this` for function invocation\n }\n\n // Supporting function chaining\n return this;\n },\n\n hideToast: function() {\n if (this.toastElement.timeOutValue) {\n clearTimeout(this.toastElement.timeOutValue);\n }\n this.removeElement(this.toastElement);\n },\n\n // Removing the element from the DOM\n removeElement: function(toastElement) {\n // Hiding the element\n // toastElement.classList.remove(\"on\");\n toastElement.className = toastElement.className.replace(\" on\", \"\");\n\n // Removing the element from DOM after transition end\n window.setTimeout(\n function() {\n // remove options node if any\n if (this.options.node && this.options.node.parentNode) {\n this.options.node.parentNode.removeChild(this.options.node);\n }\n\n // Remove the element from the DOM, only when the parent node was not removed before.\n if (toastElement.parentNode) {\n toastElement.parentNode.removeChild(toastElement);\n }\n\n // Calling the callback function\n this.options.callback.call(toastElement);\n\n // Repositioning the toasts again\n Toastify.reposition();\n }.bind(this),\n 400\n ); // Binding `this` for function invocation\n },\n };\n\n // Positioning the toasts on the DOM\n Toastify.reposition = function() {\n\n // Top margins with gravity\n var topLeftOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var topRightOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var offsetSize = {\n top: 15,\n bottom: 15,\n };\n\n // Get all toast messages on the DOM\n var allToasts = document.getElementsByClassName(\"toastify\");\n\n var classUsed;\n\n // Modifying the position of each toast element\n for (var i = 0; i < allToasts.length; i++) {\n // Getting the applied gravity\n if (containsClass(allToasts[i], \"toastify-top\") === true) {\n classUsed = \"toastify-top\";\n } else {\n classUsed = \"toastify-bottom\";\n }\n\n var height = allToasts[i].offsetHeight;\n classUsed = classUsed.substr(9, classUsed.length-1)\n // Spacing between toasts\n var offset = 15;\n\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Show toast in center if screen with less than or equal to 360px\n if (width <= 360) {\n // Setting the position\n allToasts[i].style[classUsed] = offsetSize[classUsed] + \"px\";\n\n offsetSize[classUsed] += height + offset;\n } else {\n if (containsClass(allToasts[i], \"toastify-left\") === true) {\n // Setting the position\n allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + \"px\";\n\n topLeftOffsetSize[classUsed] += height + offset;\n } else {\n // Setting the position\n allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + \"px\";\n\n topRightOffsetSize[classUsed] += height + offset;\n }\n }\n }\n\n // Supporting function chaining\n return this;\n };\n\n // Helper function to get offset.\n function getAxisOffsetAValue(axis, options) {\n\n if(options.offset[axis]) {\n if(isNaN(options.offset[axis])) {\n return options.offset[axis];\n }\n else {\n return options.offset[axis] + 'px';\n }\n }\n\n return '0px';\n\n }\n\n function containsClass(elem, yourClass) {\n if (!elem || typeof yourClass !== \"string\") {\n return false;\n } else if (\n elem.className &&\n elem.className\n .trim()\n .split(/\\s+/gi)\n .indexOf(yourClass) > -1\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n // Setting up the prototype for the init object\n Toastify.lib.init.prototype = Toastify.lib;\n\n // Returning the Toastify function to be assigned to the window object/module\n return Toastify;\n});\n","import Toastify, { Options } from 'toastify-js';\n\nexport enum TypeIcons {\n 'success' = 'check-circle-filled',\n 'error' = 'sparkle-filled',\n 'info' = 'sparkle-filled'\n}\n\nexport const ToastPositions: { [key: string]: { gravity: 'top' | 'bottom'; position: 'left' | 'center' | 'right' } } = {\n 'top-left': {\n gravity: 'top',\n position: 'left'\n },\n 'top-center': {\n gravity: 'top',\n position: 'center'\n },\n 'top-right': {\n gravity: 'top',\n position: 'right'\n },\n 'bottom-left': {\n gravity: 'bottom',\n position: 'left'\n },\n 'bottom-center': {\n gravity: 'bottom',\n position: 'center'\n },\n 'bottom-right': {\n gravity: 'bottom',\n position: 'right'\n }\n};\n\nexport interface ToastPosition {\n gravity: 'top' | 'bottom';\n position: 'left' | 'center' | 'right';\n}\n\nexport interface ToastOptions {\n /**\n * HTML content of the toast\n */\n content: Node;\n /**\n * Show close button\n */\n close: boolean;\n /**\n * Toast position\n */\n position: 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\n /**\n * Type of toast\n */\n type: 'success' | 'info' | 'error';\n /**\n * Invoked when the toast is clicked\n */\n onClick: () => void;\n /**\n * Toggle the default behavior of escaping HTML markup\n */\n escapeMarkup: boolean;\n}\n\nclass CatNotificationService {\n private static DURATION = 8000;\n\n toastHTMLTemplate(title: string, message = ' ', options?: Partial<ToastOptions>): HTMLElement {\n const template = document.createElement('template');\n const typeIcon = options?.type ? TypeIcons[options.type] : TypeIcons.info;\n title = title.trim();\n message = message.trim();\n const hasMessage = message && message !== '';\n const hasMessageClass = hasMessage ? 'has-message' : '';\n template.innerHTML = `<div class=\"cat-toastify-wrapper\">\n <div class=\"cat-toastify-icon-wrapper ${options?.type ?? 'info'}\">\n <cat-icon icon=\"${typeIcon}\"></cat-icon>\n </div>\n <div class=\"cat-toastify-title-wrapper ${hasMessageClass}\">\n <div class=\"cat-toastify-title\">${title}</div></div>\n ${hasMessage ? `<div class=\"cat-toastify-message\">${message}</div>` : ''}\n </div>`;\n return template.content.firstChild as HTMLElement;\n }\n\n error(title: string, message = ' ', options?: Partial<ToastOptions>): void {\n const position: ToastPosition = this.getPosition(options);\n const toastOptions: Options = {\n node: options?.content ? options.content : this.toastHTMLTemplate(title, message, options),\n duration: CatNotificationService.DURATION,\n close: true,\n className: 'cat-toastify',\n gravity: position.gravity,\n position: position.position,\n stopOnFocus: true\n };\n Toastify(toastOptions).showToast();\n }\n\n success(title: string, message = ' ', options?: Partial<ToastOptions>): void {\n const position: ToastPosition = this.getPosition(options);\n const toastOptions: Options = {\n node: options?.content ? options.content : this.toastHTMLTemplate(title, message, options),\n duration: CatNotificationService.DURATION,\n close: true,\n className: 'cat-toastify',\n gravity: position.gravity,\n position: position.position,\n stopOnFocus: true\n };\n Toastify(toastOptions).showToast();\n }\n\n info(title: string, message = ' ', options?: Partial<ToastOptions>): void {\n const position: ToastPosition = this.getPosition(options);\n const toastOptions: Options = {\n node: options?.content ? options.content : this.toastHTMLTemplate(title, message, options),\n duration: CatNotificationService.DURATION,\n close: true,\n className: 'cat-toastify',\n gravity: position.gravity,\n position: position.position,\n stopOnFocus: true\n };\n Toastify(toastOptions).showToast();\n }\n\n private getPosition(options?: Partial<ToastOptions>): ToastPosition {\n const position: ToastPosition = {\n gravity: 'bottom',\n position: 'right'\n };\n if (options?.position && ToastPositions[options.position]) {\n position.position = ToastPositions[options.position].position;\n position.gravity = ToastPositions[options.position].gravity;\n }\n return position;\n }\n}\n\nexport const NotificationsService = new CatNotificationService();\n",":host {\n display: block;\n}\n","import { Component, h } from '@stencil/core';\nimport { NotificationsService, ToastOptions } from '../cat-notification/cat-notification';\n\n/**\n * Toast Component Demo\n *\n * @part toast - The content of the toast.\n */\n@Component({\n tag: 'cat-toast-demo',\n styleUrl: 'cat-toast-demo.scss'\n})\nexport class CatToastDemo {\n render() {\n return <cat-button onClick={this.onClick.bind(this)}>Show Notifications</cat-button>;\n }\n\n private onClick() {\n const infoOptions: Partial<ToastOptions> = {\n position: 'top-left'\n };\n const errorOptions: Partial<ToastOptions> = {\n position: 'top-center',\n type: 'error'\n };\n const errorOptions2: Partial<ToastOptions> = {\n position: 'bottom-left',\n type: 'error'\n };\n const successOptions3: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'success'\n };\n const template = document.createElement('template');\n template.innerHTML = `<div style=\"padding: 7px 30px 7px 10px\">Custom HTML Node Content</div>`;\n const successOptions4: Partial<ToastOptions> = {\n position: 'bottom-right',\n type: 'success',\n content: template.content.firstChild as HTMLElement\n };\n\n NotificationsService.error('Default Click');\n NotificationsService.error('Long default title, long default title, long default title, long default title');\n NotificationsService.info('Info Click', 'Info message', infoOptions);\n NotificationsService.success('', ' ', successOptions4);\n NotificationsService.error('Error Title', ' ', errorOptions);\n NotificationsService.error(\n 'Error 2 Title',\n 'Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message, Very long message,Very long message, Very long message, Very long message, Very long message, Very long message, ',\n errorOptions2\n );\n NotificationsService.success('Success Title - very long title without message', ' ', successOptions3);\n }\n}\n"],"version":3}
@@ -1,5 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { b as firstTabbable, c as autoUpdate, d as computePosition, o as offset, e as flip } from './first-tabbable.js';
2
+ import { a as autoUpdate, c as computePosition, o as offset, f as flip } from './floating-ui.dom.esm.js';
3
+ import { f as firstTabbable } from './first-tabbable.js';
3
4
 
4
5
  const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0;
5
6