@idevs/corelib 0.0.97 → 1.0.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.
Files changed (119) hide show
  1. package/CHANGELOG.md +743 -0
  2. package/README.md +221 -24
  3. package/dist/editors/checkboxButtonEditor.d.ts +3 -1
  4. package/dist/editors/checkboxButtonEditor.d.ts.map +1 -0
  5. package/dist/editors/checkboxButtonEditor.js +28 -18
  6. package/dist/editors/checkboxButtonEditor.js.map +1 -1
  7. package/dist/editors/dateMonthEditor.d.ts +3 -1
  8. package/dist/editors/dateMonthEditor.d.ts.map +1 -0
  9. package/dist/editors/dateMonthEditor.js +14 -7
  10. package/dist/editors/dateMonthEditor.js.map +1 -1
  11. package/dist/editors/index.d.ts +2 -1
  12. package/dist/editors/index.d.ts.map +1 -0
  13. package/dist/editors/index.js +18 -2
  14. package/dist/editors/index.js.map +1 -1
  15. package/dist/formatters/formatters.d.ts +2 -1
  16. package/dist/formatters/formatters.d.ts.map +1 -0
  17. package/dist/formatters/formatters.js +35 -23
  18. package/dist/formatters/formatters.js.map +1 -1
  19. package/dist/formatters/index.d.ts +2 -1
  20. package/dist/formatters/index.d.ts.map +1 -0
  21. package/dist/formatters/index.js +17 -1
  22. package/dist/formatters/index.js.map +1 -1
  23. package/dist/globals/index.d.ts +17 -10
  24. package/dist/globals/index.d.ts.map +1 -0
  25. package/dist/globals/index.js +65 -105
  26. package/dist/globals/index.js.map +1 -1
  27. package/dist/helpers/custom-fonts.d.ts +2 -1
  28. package/dist/helpers/custom-fonts.d.ts.map +1 -0
  29. package/dist/helpers/custom-fonts.js +4 -1
  30. package/dist/helpers/custom-fonts.js.map +1 -1
  31. package/dist/helpers/dialogHelper.d.ts +6 -9
  32. package/dist/helpers/dialogHelper.d.ts.map +1 -0
  33. package/dist/helpers/dialogHelper.js +17 -10
  34. package/dist/helpers/dialogHelper.js.map +1 -1
  35. package/dist/helpers/excelExportHelper.d.ts +2 -1
  36. package/dist/helpers/excelExportHelper.d.ts.map +1 -0
  37. package/dist/helpers/excelExportHelper.js +7 -4
  38. package/dist/helpers/excelExportHelper.js.map +1 -1
  39. package/dist/helpers/gridHelper.d.ts +2 -1
  40. package/dist/helpers/gridHelper.d.ts.map +1 -0
  41. package/dist/helpers/gridHelper.js +14 -9
  42. package/dist/helpers/gridHelper.js.map +1 -1
  43. package/dist/helpers/index.d.ts +2 -1
  44. package/dist/helpers/index.d.ts.map +1 -0
  45. package/dist/helpers/index.js +20 -4
  46. package/dist/helpers/index.js.map +1 -1
  47. package/dist/helpers/pdfExportHelper.d.ts +2 -1
  48. package/dist/helpers/pdfExportHelper.d.ts.map +1 -0
  49. package/dist/helpers/pdfExportHelper.js +83 -17
  50. package/dist/helpers/pdfExportHelper.js.map +1 -1
  51. package/dist/index.d.ts +5 -2
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +26 -5
  54. package/dist/index.js.map +1 -1
  55. package/dist/types/common.d.ts +12 -0
  56. package/dist/types/common.d.ts.map +1 -0
  57. package/dist/types/common.js +3 -0
  58. package/dist/types/common.js.map +1 -0
  59. package/dist/types/export.d.ts +50 -0
  60. package/dist/types/export.d.ts.map +1 -0
  61. package/dist/types/export.js +24 -0
  62. package/dist/types/export.js.map +1 -0
  63. package/dist/types/index.d.ts +3 -0
  64. package/dist/types/index.d.ts.map +1 -0
  65. package/dist/types/index.js +19 -0
  66. package/dist/types/index.js.map +1 -0
  67. package/dist/ui/DropdownToolButton.d.ts +2 -1
  68. package/dist/ui/DropdownToolButton.d.ts.map +1 -0
  69. package/dist/ui/DropdownToolButton.js +15 -11
  70. package/dist/ui/DropdownToolButton.js.map +1 -1
  71. package/dist/ui/ToggleToolButton.d.ts +2 -1
  72. package/dist/ui/ToggleToolButton.d.ts.map +1 -0
  73. package/dist/ui/ToggleToolButton.js +7 -3
  74. package/dist/ui/ToggleToolButton.js.map +1 -1
  75. package/dist/ui/index.d.ts +2 -1
  76. package/dist/ui/index.d.ts.map +1 -0
  77. package/dist/ui/index.js +18 -2
  78. package/dist/ui/index.js.map +1 -1
  79. package/dist/utils/date.d.ts +16 -0
  80. package/dist/utils/date.d.ts.map +1 -0
  81. package/dist/utils/date.js +85 -0
  82. package/dist/utils/date.js.map +1 -0
  83. package/dist/utils/dom.d.ts +13 -0
  84. package/dist/utils/dom.d.ts.map +1 -0
  85. package/dist/utils/dom.js +78 -0
  86. package/dist/utils/dom.js.map +1 -0
  87. package/dist/utils/format.d.ts +22 -0
  88. package/dist/utils/format.d.ts.map +1 -0
  89. package/dist/utils/format.js +100 -0
  90. package/dist/utils/format.js.map +1 -0
  91. package/dist/utils/index.d.ts +4 -0
  92. package/dist/utils/index.d.ts.map +1 -0
  93. package/dist/utils/index.js +20 -0
  94. package/dist/utils/index.js.map +1 -0
  95. package/package.json +48 -29
  96. package/dist/ui/ToolDropdownButton.d.ts +0 -49
  97. package/dist/ui/ToolDropdownButton.js +0 -230
  98. package/dist/ui/ToolDropdownButton.js.map +0 -1
  99. package/src/editors/checkboxButtonEditor.ts +0 -184
  100. package/src/editors/dateMonthEditor.ts +0 -47
  101. package/src/editors/index.ts +0 -2
  102. package/src/formatters/formatters.ts +0 -185
  103. package/src/formatters/index.ts +0 -1
  104. package/src/globals/index.ts +0 -385
  105. package/src/helpers/custom-fonts.d.ts +0 -5
  106. package/src/helpers/custom-fonts.ts +0 -18
  107. package/src/helpers/dialogHelper.ts +0 -143
  108. package/src/helpers/excelExportHelper.ts +0 -29
  109. package/src/helpers/gridHelper.ts +0 -107
  110. package/src/helpers/html2pdf.d.ts +0 -19
  111. package/src/helpers/index.ts +0 -4
  112. package/src/helpers/pdfExportHelper.ts +0 -179
  113. package/src/index.ts +0 -5
  114. package/src/tsconfig.json +0 -29
  115. package/src/ui/DropdownToolButton.ts +0 -305
  116. package/src/ui/ToggleToolButton.ts +0 -71
  117. package/src/ui/index.ts +0 -2
  118. /package/{css → dist/css}/idevs.dropdown.css +0 -0
  119. /package/{css → dist/css}/idevs.print.css +0 -0
@@ -1,305 +0,0 @@
1
- import { first, isEmptyOrNull, tryFirst } from '@serenity-is/corelib'
2
-
3
- export type DropdownToolButtonOptions = {
4
- title?: string
5
- cssClass?: string
6
- icon?: string
7
- disabled?: boolean
8
- dropdownMenuPosition?: 'right'
9
- isDropUp?: boolean
10
- }
11
-
12
- export type DropdownToolButtonItem = {
13
- key: string
14
- title?: string
15
- hint?: string
16
- cssClass?: string
17
- icon?: string
18
- onClick?: (e: Event) => void
19
- isSeparator?: boolean
20
- disabled?: boolean
21
- isDropdownHeader?: boolean
22
- dropdownHeaderTitle?: string
23
- }
24
-
25
- export type ToolDropdownSideButtonItem = {
26
- key: string
27
- title?: string
28
- hint?: string
29
- cssClass?: string
30
- icon?: string
31
- onClick?: (e: Event) => void
32
- disabled?: boolean
33
- }
34
-
35
- export class DropdownToolButton {
36
- public element: JQuery = null
37
- private isDisabled = false
38
- private itemDisablingState: { key: string; disabled: boolean }[] = []
39
- private options: DropdownToolButtonOptions
40
-
41
- public constructor(container: JQuery, buttons: DropdownToolButtonItem[], opt?: DropdownToolButtonOptions) {
42
- this.options = opt || {}
43
- this.isDisabled = this.options.disabled || false
44
- this.element = this.buildBaseDropdown()
45
- this.addDropdownItems(buttons)
46
-
47
- container.append(this.element)
48
- }
49
-
50
- private getDisablingStateItem(key: string): boolean {
51
- if (tryFirst(this.itemDisablingState, x => x.key == key) != null) {
52
- return first(this.itemDisablingState, x => x.key == key).disabled || false
53
- }
54
-
55
- return false
56
- }
57
-
58
- private setDisablingStateItem(key: string, value: boolean) {
59
- if (tryFirst(this.itemDisablingState, x => x.key == key) != null) {
60
- first(this.itemDisablingState, x => x.key == key).disabled = value || false
61
- return
62
- }
63
-
64
- this.itemDisablingState.push({ key: key, disabled: value || false })
65
- }
66
-
67
- private removeDisablingStateItem(key: string) {
68
- this.itemDisablingState.some((item, idx) => {
69
- if (item.key == key) {
70
- this.itemDisablingState.splice(idx, 1)
71
-
72
- return true
73
- }
74
- })
75
- }
76
-
77
- private buildBaseDropdown(): JQuery {
78
- const dropdownTemplate = `<div class="buttons-inner dropdown" style="overflow: visible">
79
- <div class="idevs-tool-dropdown-button tool-button icon-tool-button ${this.options.cssClass ?? ''} ${
80
- this.options.isDropUp ? 'dropup' : ''
81
- } ${this.isDisabled ? 'disabled' : ''}" style="cursor: unset;">
82
- <div class="button-outer dropdown-toggle ${this.isDisabled ? 'disabled' : ''}"
83
- data-bs-toggle="dropdown"
84
- style="cursor: pointer;">
85
- <span class="button-inner">
86
- <i class="${this.options.icon}"></i>
87
- ${this.options.title ?? ''}
88
- </span>
89
- <i class="caret"></i>
90
- </div>
91
- <ul class="dropdown-menu ${this.options.dropdownMenuPosition == 'right' ? 'dropdown-menu-right' : ''}"></ul>
92
- </div>
93
- </div>`
94
-
95
- return $(dropdownTemplate)
96
- }
97
-
98
- public addDropdownItems(buttons: DropdownToolButtonItem[]) {
99
- if (buttons && buttons.length > 0) {
100
- buttons.forEach(button => {
101
- this.addDropdownItem(button)
102
- })
103
- }
104
- }
105
-
106
- public addDropdownItem(button: DropdownToolButtonItem, idx?: number) {
107
- if (!isEmptyOrNull(button.key)) {
108
- if (this.itemDisablingState.map(x => x.key).indexOf(button.key) > -1) {
109
- alert(`Dropdown has existed key: ${button.key}`)
110
- return
111
- }
112
-
113
- this.setDisablingStateItem(button.key, button.disabled || false)
114
- }
115
-
116
- let dropdownItemElement: JQuery
117
-
118
- if (button.isDropdownHeader && !isEmptyOrNull(button.dropdownHeaderTitle)) {
119
- dropdownItemElement = $(`<li class="dropdown-header ${button.cssClass ?? ''}">${button.dropdownHeaderTitle}</li>`)
120
- } else {
121
- if (button.isSeparator) {
122
- dropdownItemElement = $(`<li class="dropdown-divider"></li>`)
123
- } else {
124
- dropdownItemElement = $(`<li class="${button.disabled ? 'disabled' : ''}"
125
- title="${button.hint ?? ''}"
126
- data-idevs-key="${button.key ?? ''}">
127
- <a href="#" class="${button.cssClass ?? 'dropdown-item'}">
128
- <i class="${button.icon ?? ''}"></i>
129
- ${button.title}
130
- </a>
131
- </li>`)
132
-
133
- dropdownItemElement.on('click', (e: Event) => {
134
- e.preventDefault()
135
-
136
- if (this.isDisabled) {
137
- return
138
- }
139
-
140
- let buttonIsDisabled = button.disabled
141
-
142
- if (!isEmptyOrNull(button.key)) {
143
- buttonIsDisabled = this.getDisablingStateItem(button.key)
144
- }
145
- if (buttonIsDisabled) {
146
- return
147
- }
148
-
149
- button.onClick(e)
150
- })
151
- }
152
- }
153
-
154
- if (idx === null || typeof idx === 'undefined') {
155
- this.element.find('.dropdown-menu').append(dropdownItemElement)
156
- return
157
- }
158
-
159
- if (idx <= 0) {
160
- this.element.find('.dropdown-menu').prepend(dropdownItemElement)
161
- return
162
- }
163
-
164
- const nbrOfButtons = this.element.find(`.dropdown-menu > li`).length
165
-
166
- if (idx > nbrOfButtons) {
167
- idx = nbrOfButtons
168
- }
169
-
170
- this.element.find(`.dropdown-menu > li:nth-child(${idx})`).after(dropdownItemElement)
171
- }
172
-
173
- public enableDropdown(enable: boolean) {
174
- const drd = this.element.find('.dropdown').first()
175
- if (drd) {
176
- if (enable) {
177
- if (drd.hasClass('disabled')) {
178
- drd.removeClass('disabled')
179
- }
180
- } else {
181
- if (!drd.hasClass('disabled')) {
182
- drd.addClass('disabled')
183
- }
184
- }
185
- }
186
-
187
- const drdToggle = this.element.find('.dropdown-toggle').first()
188
- if (drdToggle) {
189
- if (enable) {
190
- if (drdToggle.hasClass('disabled')) {
191
- drd.removeClass('disabled')
192
- } else {
193
- if (!drdToggle.hasClass('disabled')) {
194
- drdToggle.addClass('disabled')
195
- }
196
- }
197
- }
198
- }
199
-
200
- this.isDisabled = !enable
201
- }
202
-
203
- public enableDropdownItemByKey(key: string, enable: boolean) {
204
- const drdItem = this.element.find(`.dropdown-menu li[data-idevs-key="${key}"]`).first()
205
- if (drdItem) {
206
- if (enable) {
207
- if (drdItem.hasClass('disabled')) {
208
- drdItem.removeClass('disabled')
209
- }
210
- } else {
211
- if (!drdItem.hasClass('disabled')) {
212
- drdItem.addClass('disabled')
213
- }
214
- }
215
- }
216
-
217
- this.setDisablingStateItem(key, !enable)
218
- }
219
-
220
- public enableSideButtonByKey(key: string, enable: boolean) {
221
- const tButton = this.element.find(`.tool-button[data-idevs-key="${key}"]`).first()
222
- if (tButton) {
223
- if (enable) {
224
- if (tButton.hasClass('disabled')) {
225
- tButton.removeClass('disabled')
226
- }
227
- } else {
228
- if (!tButton.hasClass('disabled')) {
229
- tButton.addClass('disabled')
230
- }
231
- }
232
- }
233
-
234
- this.setDisablingStateItem(key, !enable)
235
- }
236
-
237
- public removeDropdownItem(key: string) {
238
- this.element.find(`.dropdown-menu li[data-idevs-key="${key}"]`).remove()
239
- this.removeDisablingStateItem(key)
240
- }
241
-
242
- public removeSideButtonItem(key: string) {
243
- this.element.find(`.tool-button[data-idevs-key="${key}"]`).remove()
244
- this.removeDisablingStateItem(key)
245
- }
246
-
247
- public addSideButtonItem(button: ToolDropdownSideButtonItem, idx?: number) {
248
- if (!isEmptyOrNull(button.key)) {
249
- if (this.itemDisablingState.map(x => x.key).indexOf(button.key) > -1) {
250
- alert(`Dropdown has existed key: ${button.key}`)
251
- return
252
- }
253
-
254
- this.setDisablingStateItem(button.key, button.disabled || false)
255
- }
256
-
257
- const sideButtonTemplate = `<div class="tool-button add-button icon-tool-button ${button.cssClass ?? ''} ${
258
- button.disabled ? 'disabled' : ''
259
- }"
260
- data-idevs-key="${button.key ?? ''}"
261
- title="${button.title ?? ''}">
262
- <div class="button-outer">
263
- <span class="button-inner">
264
- <i class="${button.icon ?? ''}"></i>
265
- </span>
266
- </div>
267
- </div>`
268
-
269
- const sideButton = $(sideButtonTemplate)
270
-
271
- sideButton.on('click', (e: Event) => {
272
- e.preventDefault()
273
-
274
- let buttonIsDisabled = button.disabled
275
-
276
- if (!isEmptyOrNull(button.key)) {
277
- buttonIsDisabled = this.getDisablingStateItem(button.key)
278
- }
279
-
280
- if (buttonIsDisabled) {
281
- return
282
- }
283
-
284
- button.onClick(e)
285
- })
286
-
287
- if (idx === null || typeof idx === 'undefined') {
288
- this.element.append(sideButton)
289
- return
290
- }
291
-
292
- if (idx <= 0) {
293
- this.element.prepend(sideButton)
294
- return
295
- }
296
-
297
- const nbrOfButtons = this.element.find(`div.tool-button`).length
298
-
299
- if (idx > nbrOfButtons) {
300
- idx = nbrOfButtons
301
- }
302
-
303
- this.element.find(`div.tool-button:nth-child(${idx})`).after(sideButton)
304
- }
305
- }
@@ -1,71 +0,0 @@
1
- import { neededTarget } from '../globals'
2
-
3
- export type ToggleToolButtonOptions = {
4
- title?: string
5
- hint?: string
6
- cssClass?: string
7
- altCssClass?: string
8
- icon?: string
9
- altIcon?: string
10
- onClick?: (e: JQuery.ClickEvent<HTMLElement, null, HTMLElement, HTMLElement>) => void
11
- disabled?: boolean
12
- }
13
-
14
- export class ToggleToolButton {
15
- public element: JQuery = null
16
- private isDisabled = false
17
- private options: ToggleToolButtonOptions
18
-
19
- public constructor(container: JQuery, opt?: ToggleToolButtonOptions) {
20
- this.options = opt || {}
21
- this.isDisabled = this.options.disabled || false
22
- this.element = this.buildBaseButton()
23
-
24
- this.element.on('click', e => {
25
- if (this.isDisabled) return
26
-
27
- const target = neededTarget(e.target as HTMLElement, '.idevs-toggle-button')
28
- if (this.options.altIcon) {
29
- const icon = target.querySelector(`i`)
30
- if (icon.className == this.options.icon) {
31
- icon.className = this.options.altIcon
32
- } else {
33
- icon.className = this.options.icon
34
- }
35
- }
36
-
37
- if (this.options.cssClass && this.options.altCssClass) {
38
- if (target.className.includes(this.options.cssClass)) {
39
- target.className = target.className.replace(this.options.cssClass, this.options.altCssClass)
40
- } else {
41
- target.className = target.className.replace(this.options.altCssClass, this.options.cssClass)
42
- }
43
- }
44
-
45
- if (this.options.onClick) {
46
- this.options.onClick(e)
47
- }
48
- })
49
-
50
- container.append(this.element)
51
- }
52
-
53
- private buildBaseButton(): JQuery {
54
- const buttonTemplate = `<div class="buttons-inner" style="overflow: visible">
55
- <div class="idevs-toggle-button tool-button icon-tool-button ${this.options.cssClass ?? ''} ${
56
- this.isDisabled ? 'disabled' : ''
57
- }" style="cursor: unset;">
58
- <div class="button-outer ${this.isDisabled ? 'disabled' : ''}"
59
- style="cursor: pointer;">
60
- <span class="button-inner">
61
- <i class="${this.options.icon}"></i>
62
- ${this.options.title ?? ''}
63
- </span>
64
- <i class="caret"></i>
65
- </div>
66
- </div>
67
- </div>`
68
-
69
- return $(buttonTemplate)
70
- }
71
- }
package/src/ui/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './DropdownToolButton'
2
- export * from './ToggleToolButton'
File without changes
File without changes