@indice/ng-components 0.2.175 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_styles.scss +63 -15
- package/{esm2020 → esm2022}/indice-ng-components.mjs +4 -4
- package/esm2022/lib/controls/advanced-search/advanced-search.component.mjs +156 -0
- package/esm2022/lib/controls/advanced-search/models.mjs +109 -0
- package/esm2022/lib/controls/avatar-initials/avatar-initials.component.mjs +48 -0
- package/{esm2020 → esm2022}/lib/controls/breadcrumb/breadcrumb-item.mjs +14 -14
- package/{esm2020 → esm2022}/lib/controls/breadcrumb/breadcrumb.component.mjs +26 -26
- package/{esm2020 → esm2022}/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -20
- package/esm2022/lib/controls/combobox/combobox.component.mjs +121 -0
- package/esm2022/lib/controls/content-tile/content-tile-header/content-tile-header.component.mjs +17 -0
- package/esm2022/lib/controls/content-tile/content-tile-item/content-tile-item.component.mjs +19 -0
- package/esm2022/lib/controls/content-tile/content-tile.component.mjs +63 -0
- package/esm2022/lib/controls/date-picker/date-picker.component.mjs +300 -0
- package/esm2022/lib/controls/drop-down-menu/drop-down-menu.component.mjs +72 -0
- package/{esm2020 → esm2022}/lib/controls/kpi-tile/kpi-tile.component.mjs +43 -43
- package/esm2022/lib/controls/language-selection/language-selection.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/controls/list-view/list-column.component.mjs +25 -25
- package/{esm2020 → esm2022}/lib/controls/list-view/list-details-section.component.mjs +17 -17
- package/{esm2020 → esm2022}/lib/controls/list-view/list-tile.component.mjs +17 -17
- package/esm2022/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
- package/esm2022/lib/controls/list-view/list-view.component.mjs +210 -0
- package/{esm2020 → esm2022}/lib/controls/nav-links-list/nav-links-list.component.mjs +54 -54
- package/esm2022/lib/controls/notifications-indicator/notifications-indicator.component.mjs +79 -0
- package/esm2022/lib/controls/pager/pager.component.mjs +130 -0
- package/esm2022/lib/controls/progress-bar/progress-bar.component.mjs +46 -0
- package/esm2022/lib/controls/side-pane/side-pane.component.mjs +87 -0
- package/esm2022/lib/controls/skeleton-loader/skeleton-loader.component.mjs +29 -0
- package/esm2022/lib/controls/stats-grid/stats-grid.component.mjs +49 -0
- package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-info.directive.mjs +16 -16
- package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-label.directive.mjs +16 -16
- package/esm2022/lib/controls/stepper/lib-step.component.mjs +81 -0
- package/esm2022/lib/controls/stepper/lib-stepper.component.mjs +108 -0
- package/{esm2020 → esm2022}/lib/controls/stepper/types/step-selected-event.mjs +3 -3
- package/{esm2020 → esm2022}/lib/controls/stepper/types/stepper-type.mjs +11 -11
- package/esm2022/lib/controls/tabs/lib-tab-group.component.mjs +66 -0
- package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab-label.directive.mjs +16 -16
- package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab.component.mjs +57 -57
- package/{esm2020 → esm2022}/lib/controls/toaster/toaster-container.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/controls/toaster/toaster.component.mjs +31 -31
- package/esm2022/lib/controls/toggle/toggle.component.mjs +64 -0
- package/esm2022/lib/controls/toggle-button/toggle-button.component.mjs +87 -0
- package/esm2022/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +34 -0
- package/esm2022/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
- package/esm2022/lib/directives/click-outside.directive.mjs +189 -0
- package/{esm2020 → esm2022}/lib/directives/dynamic-component-host.directive.mjs +17 -17
- package/esm2022/lib/helpers/base-list.component.mjs +230 -0
- package/esm2022/lib/icons.mjs +36 -0
- package/{esm2020 → esm2022}/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -19
- package/esm2022/lib/layouts/shell/shell-header/shell-header.component.mjs +130 -0
- package/esm2022/lib/layouts/shell/shell-layout/shell-layout.component.mjs +90 -0
- package/{esm2020 → esm2022}/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +54 -54
- package/{esm2020 → esm2022}/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +45 -45
- package/esm2022/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +30 -0
- package/{esm2020 → esm2022}/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +20 -20
- package/esm2022/lib/layouts/views/form-layout/form-layout.component.mjs +86 -0
- package/esm2022/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +101 -0
- package/esm2022/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +106 -0
- package/esm2022/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
- package/esm2022/lib/ng-components.module.mjs +320 -0
- package/esm2022/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
- package/esm2022/lib/pages/auth/auth-renew/auth-renew.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/pages/auth/logged-out/logged-out.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/pages/http-status/error/error.component.mjs +17 -17
- package/{esm2020 → esm2022}/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -14
- package/esm2022/lib/pipes/address.pipe.mjs +21 -0
- package/esm2022/lib/pipes/duration-format.pipe.mjs +64 -0
- package/esm2022/lib/pipes/short-number.pipe.mjs +43 -0
- package/esm2022/lib/services/breadcrumb.service.mjs +174 -0
- package/{esm2020 → esm2022}/lib/services/component-loader/component-loader-options.class.mjs +7 -7
- package/esm2022/lib/services/component-loader/component-loader.class.mjs +188 -0
- package/esm2022/lib/services/component-loader/component-loader.factory.mjs +32 -0
- package/{esm2020 → esm2022}/lib/services/component-loader/content-ref.class.mjs +12 -12
- package/esm2022/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
- package/esm2022/lib/services/modal-service/modal-container-component.mjs +126 -0
- package/{esm2020 → esm2022}/lib/services/modal-service/modal-options.class.mjs +35 -35
- package/esm2022/lib/services/modal-service/modal-service.mjs +220 -0
- package/{esm2020 → esm2022}/lib/services/modal-service/modal-styles.class.mjs +10 -10
- package/{esm2020 → esm2022}/lib/services/modal-service/modal.class.mjs +27 -27
- package/{esm2020 → esm2022}/lib/services/toaster.service.mjs +26 -26
- package/esm2022/lib/services/user-settings.service.mjs +35 -0
- package/esm2022/lib/services/utilities.service.mjs +47 -0
- package/{esm2020 → esm2022}/lib/tokens.mjs +7 -7
- package/esm2022/lib/types.mjs +133 -0
- package/{esm2020 → esm2022}/public-api.mjs +78 -70
- package/{fesm2020 → fesm2022}/indice-ng-components.mjs +4898 -4592
- package/fesm2022/indice-ng-components.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/controls/advanced-search/advanced-search.component.d.ts +40 -40
- package/lib/controls/advanced-search/models.d.ts +91 -91
- package/lib/controls/avatar-initials/avatar-initials.component.d.ts +14 -14
- package/lib/controls/breadcrumb/breadcrumb-item.d.ts +7 -7
- package/lib/controls/breadcrumb/breadcrumb.component.d.ts +12 -12
- package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +10 -10
- package/lib/controls/combobox/combobox.component.d.ts +35 -34
- package/lib/controls/content-tile/content-tile-header/content-tile-header.component.d.ts +7 -0
- package/lib/controls/content-tile/content-tile-item/content-tile-item.component.d.ts +8 -0
- package/lib/controls/content-tile/content-tile.component.d.ts +23 -0
- package/lib/controls/date-picker/date-picker.component.d.ts +53 -53
- package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +26 -26
- package/lib/controls/kpi-tile/kpi-tile.component.d.ts +15 -15
- package/lib/controls/language-selection/language-selection.component.d.ts +14 -14
- package/lib/controls/list-view/list-column.component.d.ts +9 -9
- package/lib/controls/list-view/list-details-section.component.d.ts +7 -7
- package/lib/controls/list-view/list-tile.component.d.ts +7 -7
- package/lib/controls/list-view/list-view-empty-state.component.d.ts +11 -11
- package/lib/controls/list-view/list-view.component.d.ts +62 -61
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +21 -21
- package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +22 -22
- package/lib/controls/pager/pager.component.d.ts +36 -36
- package/lib/controls/progress-bar/progress-bar.component.d.ts +16 -0
- package/lib/controls/side-pane/side-pane.component.d.ts +22 -18
- package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +12 -11
- package/lib/controls/stats-grid/stats-grid.component.d.ts +16 -0
- package/lib/controls/stepper/lib-step-info.directive.d.ts +8 -8
- package/lib/controls/stepper/lib-step-label.directive.d.ts +8 -8
- package/lib/controls/stepper/lib-step.component.d.ts +34 -34
- package/lib/controls/stepper/lib-stepper.component.d.ts +43 -43
- package/lib/controls/stepper/types/step-selected-event.d.ts +12 -12
- package/lib/controls/stepper/types/stepper-type.d.ts +10 -10
- package/lib/controls/tabs/lib-tab-group.component.d.ts +21 -21
- package/lib/controls/tabs/lib-tab-label.directive.d.ts +8 -8
- package/lib/controls/tabs/lib-tab.component.d.ts +24 -24
- package/lib/controls/toaster/toaster-container.component.d.ts +13 -13
- package/lib/controls/toaster/toaster.component.d.ts +15 -15
- package/lib/controls/toggle/toggle.component.d.ts +19 -19
- package/lib/controls/toggle-button/toggle-button.component.d.ts +25 -25
- package/lib/controls/toggle-buttons-list/toggle-buttons-list.component.d.ts +15 -14
- package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +24 -24
- package/lib/directives/click-outside.directive.d.ts +40 -40
- package/lib/directives/dynamic-component-host.directive.d.ts +9 -9
- package/lib/helpers/base-list.component.d.ts +54 -53
- package/lib/icons.d.ts +34 -34
- package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +8 -8
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +39 -39
- package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +26 -26
- package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +20 -20
- package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +14 -14
- package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +15 -15
- package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +10 -10
- package/lib/layouts/views/form-layout/form-layout.component.d.ts +26 -24
- package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +42 -42
- package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +29 -28
- package/lib/layouts/views/view-layout/view-layout.component.d.ts +31 -31
- package/lib/ng-components.module.d.ts +71 -65
- package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +13 -13
- package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +12 -12
- package/lib/pages/auth/logged-out/logged-out.component.d.ts +12 -12
- package/lib/pages/http-status/error/error.component.d.ts +8 -8
- package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +8 -8
- package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +8 -8
- package/lib/pipes/address.pipe.d.ts +8 -8
- package/lib/pipes/duration-format.pipe.d.ts +8 -8
- package/lib/pipes/short-number.pipe.d.ts +7 -0
- package/lib/services/breadcrumb.service.d.ts +29 -29
- package/lib/services/component-loader/component-loader-options.class.d.ts +30 -30
- package/lib/services/component-loader/component-loader.class.d.ts +92 -92
- package/lib/services/component-loader/component-loader.factory.d.ts +24 -24
- package/lib/services/component-loader/content-ref.class.d.ts +12 -12
- package/lib/services/modal-service/modal-backdrop-component.d.ts +20 -20
- package/lib/services/modal-service/modal-container-component.d.ts +33 -33
- package/lib/services/modal-service/modal-options.class.d.ts +81 -81
- package/lib/services/modal-service/modal-service.d.ts +58 -58
- package/lib/services/modal-service/modal-styles.class.d.ts +10 -10
- package/lib/services/modal-service/modal.class.d.ts +43 -43
- package/lib/services/toaster.service.d.ts +11 -11
- package/lib/services/user-settings.service.d.ts +13 -13
- package/lib/services/utilities.service.d.ts +11 -11
- package/lib/tokens.d.ts +10 -10
- package/lib/types.d.ts +179 -177
- package/package.json +14 -21
- package/public-api.d.ts +68 -60
- package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +0 -156
- package/esm2020/lib/controls/advanced-search/models.mjs +0 -109
- package/esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs +0 -48
- package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -117
- package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -292
- package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -72
- package/esm2020/lib/controls/language-selection/language-selection.component.mjs +0 -31
- package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
- package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -206
- package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -79
- package/esm2020/lib/controls/pager/pager.component.mjs +0 -130
- package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
- package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
- package/esm2020/lib/controls/stepper/lib-step.component.mjs +0 -81
- package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +0 -108
- package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +0 -66
- package/esm2020/lib/controls/toggle/toggle.component.mjs +0 -64
- package/esm2020/lib/controls/toggle-button/toggle-button.component.mjs +0 -87
- package/esm2020/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +0 -31
- package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -71
- package/esm2020/lib/directives/click-outside.directive.mjs +0 -189
- package/esm2020/lib/helpers/base-list.component.mjs +0 -226
- package/esm2020/lib/icons.mjs +0 -36
- package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -130
- package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -90
- package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +0 -30
- package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
- package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -101
- package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -98
- package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
- package/esm2020/lib/ng-components.module.mjs +0 -288
- package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -30
- package/esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs +0 -31
- package/esm2020/lib/pipes/address.pipe.mjs +0 -21
- package/esm2020/lib/pipes/duration-format.pipe.mjs +0 -64
- package/esm2020/lib/services/breadcrumb.service.mjs +0 -174
- package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
- package/esm2020/lib/services/component-loader/component-loader.factory.mjs +0 -32
- package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
- package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
- package/esm2020/lib/services/modal-service/modal-service.mjs +0 -220
- package/esm2020/lib/services/user-settings.service.mjs +0 -35
- package/esm2020/lib/services/utilities.service.mjs +0 -47
- package/esm2020/lib/types.mjs +0 -132
- package/fesm2015/indice-ng-components.mjs +0 -4852
- package/fesm2015/indice-ng-components.mjs.map +0 -1
- package/fesm2020/indice-ng-components.mjs.map +0 -1
package/_styles.scss
CHANGED
|
@@ -18,27 +18,33 @@
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
select {
|
|
21
|
-
@apply
|
|
21
|
+
@apply block w-full rounded-sm border-0 py-1.5 pr-10 ring-1 ring-inset ring-gray-200 placeholder:text-gray-300 focus:ring-1 focus:ring-inset focus:ring-gray-500 sm:text-sm sm:leading-6
|
|
22
|
+
disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
input[type=text] {
|
|
25
|
-
@apply
|
|
26
|
+
@apply block w-full rounded-sm border-0 py-1.5 pr-10 ring-1 ring-inset ring-gray-200 placeholder:text-gray-300 focus:ring-1 focus:ring-inset focus:ring-gray-500 sm:text-sm sm:leading-6
|
|
27
|
+
disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
input[type=password] {
|
|
29
|
-
@apply
|
|
31
|
+
@apply block w-full rounded-sm border-0 py-1.5 pr-10 ring-1 ring-inset ring-gray-200 placeholder:text-gray-300 focus:ring-1 focus:ring-inset focus:ring-gray-500 sm:text-sm sm:leading-6
|
|
32
|
+
disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200;
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
input[type=email] {
|
|
33
|
-
@apply
|
|
36
|
+
@apply block w-full rounded-sm border-0 py-1.5 pr-10 ring-1 ring-inset ring-gray-200 placeholder:text-gray-300 focus:ring-1 focus:ring-inset focus:ring-gray-500 sm:text-sm sm:leading-6
|
|
37
|
+
disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200;
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
input[type=number] {
|
|
37
|
-
@apply
|
|
41
|
+
@apply block w-full rounded-sm border-0 py-1.5 pr-10 ring-1 ring-inset ring-gray-200 placeholder:text-gray-300 focus:ring-1 focus:ring-inset focus:ring-gray-500 sm:text-sm sm:leading-6
|
|
42
|
+
disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200;
|
|
38
43
|
}
|
|
39
44
|
|
|
40
45
|
textarea {
|
|
41
|
-
@apply
|
|
46
|
+
@apply block w-full rounded-sm border-0 py-1.5 pr-10 ring-1 ring-inset ring-gray-200 placeholder:text-gray-300 focus:ring-1 focus:ring-inset focus:ring-gray-500 sm:text-sm sm:leading-6
|
|
47
|
+
disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200;
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
|
|
@@ -428,7 +434,7 @@
|
|
|
428
434
|
}
|
|
429
435
|
|
|
430
436
|
.sidebar-static-menu-sticky-header-container {
|
|
431
|
-
@apply sticky top-0 z-
|
|
437
|
+
@apply sticky top-0 z-20 flex-shrink-0 flex h-16 bg-gray-900 shadow-2xl;
|
|
432
438
|
}
|
|
433
439
|
|
|
434
440
|
.sidebar-static-menu-toggle-button {
|
|
@@ -576,6 +582,23 @@
|
|
|
576
582
|
@apply grid grid-cols-1 gap-x-4 gap-y-8 sm:grid-cols-3 sm:gap-x-6 lg:grid-cols-4 xl:gap-x-8 p-4;
|
|
577
583
|
}
|
|
578
584
|
|
|
585
|
+
.tile-card-footer {
|
|
586
|
+
@apply absolute bottom-0 inset-x-0 bg-gradient-to-b from-transparent to-gray-50 px-2 pb-4 sm:px-4;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
.tile-card-item-btn {
|
|
590
|
+
@apply inline-flex mx-1 items-center rounded-full border border-transparent p-1 text-white shadow-sm focus:outline-none;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
.tile-card-item-btn-selected {
|
|
594
|
+
@apply bg-slate-700 ring-slate-700 ring-1 ring-offset-1;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
.tile-card-item-btn-available {
|
|
598
|
+
@apply bg-slate-500 hover:bg-slate-700 ring-0;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
|
|
579
602
|
|
|
580
603
|
.collapsible-panel-container {
|
|
581
604
|
@apply bg-white border border-gray-200 mb-2;
|
|
@@ -640,10 +663,11 @@
|
|
|
640
663
|
|
|
641
664
|
|
|
642
665
|
.datepicker-input {
|
|
643
|
-
@apply w-full focus:ring-
|
|
666
|
+
@apply block w-full rounded-sm border-0 py-1.5 pr-10 ring-1 ring-inset ring-gray-200 placeholder:text-gray-300 focus:ring-1 focus:ring-inset focus:ring-gray-500 sm:text-sm sm:leading-6
|
|
667
|
+
disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200;
|
|
644
668
|
}
|
|
645
669
|
.datepicker-button {
|
|
646
|
-
@apply relative inline-flex items-center px-
|
|
670
|
+
@apply relative inline-flex items-center px-1.5 py-1.5 border-t border-b border-r border-gray-300 text-sm rounded-r-sm text-gray-700 bg-gray-50 hover:bg-gray-100 focus:outline-0;
|
|
647
671
|
}
|
|
648
672
|
|
|
649
673
|
.datepicker-background {
|
|
@@ -709,12 +733,12 @@
|
|
|
709
733
|
}
|
|
710
734
|
|
|
711
735
|
.dropdown-button {
|
|
712
|
-
@apply bg-white
|
|
713
|
-
|
|
736
|
+
@apply bg-white block w-full rounded-sm border-0 pl-3 py-1.5 pr-10 ring-1 ring-inset ring-gray-200 placeholder:text-gray-300 focus:ring-1 focus:ring-inset focus:ring-gray-500
|
|
737
|
+
text-xs leading-6 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200;
|
|
714
738
|
}
|
|
715
739
|
|
|
716
740
|
.dropdown-selected-text {
|
|
717
|
-
@apply truncate inline-flex items-center;
|
|
741
|
+
@apply truncate w-full inline-flex items-start place-items-center;
|
|
718
742
|
}
|
|
719
743
|
|
|
720
744
|
.dropdown-button-icon {
|
|
@@ -722,11 +746,11 @@
|
|
|
722
746
|
}
|
|
723
747
|
|
|
724
748
|
.dropdown-arrow {
|
|
725
|
-
@apply h-5 w-5 text-gray-
|
|
749
|
+
@apply h-5 w-5 text-gray-600;
|
|
726
750
|
}
|
|
727
751
|
|
|
728
752
|
.dropdown-ul {
|
|
729
|
-
@apply absolute z-50 mt-1 w-auto bg-white shadow-lg max-h-60 rounded-sm py-1 text-xs ring-1 ring-
|
|
753
|
+
@apply absolute z-50 mt-1 w-auto bg-white shadow-lg max-h-60 rounded-sm py-1 text-xs ring-1 ring-gray-300 ring-opacity-5 focus:outline-none overflow-x-hidden;
|
|
730
754
|
}
|
|
731
755
|
|
|
732
756
|
.dropdown-li {
|
|
@@ -766,6 +790,10 @@
|
|
|
766
790
|
@apply flex-1 min-w-0;
|
|
767
791
|
}
|
|
768
792
|
|
|
793
|
+
.form-header-image {
|
|
794
|
+
@apply w-12 h-12;
|
|
795
|
+
}
|
|
796
|
+
|
|
769
797
|
.form-title {
|
|
770
798
|
@apply text-lg leading-6 font-medium text-gray-900;
|
|
771
799
|
}
|
|
@@ -4228,10 +4256,14 @@
|
|
|
4228
4256
|
@apply flex-none mr-2;
|
|
4229
4257
|
}
|
|
4230
4258
|
|
|
4231
|
-
.toggle-buttons-list-drop-down-
|
|
4259
|
+
.toggle-buttons-list-drop-down-container {
|
|
4232
4260
|
@apply block lg:hidden z-10;
|
|
4233
4261
|
}
|
|
4234
4262
|
|
|
4263
|
+
.toggle-buttons-list-drop-down-compact-container {
|
|
4264
|
+
@apply block z-10;
|
|
4265
|
+
}
|
|
4266
|
+
|
|
4235
4267
|
/* mw-40 not supported*/
|
|
4236
4268
|
.toggle-buttons-list-drop-down {
|
|
4237
4269
|
@apply w-full;
|
|
@@ -4261,6 +4293,22 @@
|
|
|
4261
4293
|
@apply ml-1.5 rounded py-0.5 px-1.5 bg-gray-200 text-xs text-gray-700 tabular-nums;
|
|
4262
4294
|
}
|
|
4263
4295
|
|
|
4296
|
+
.progress-bar-container {
|
|
4297
|
+
@apply flex grid grid-cols-1;
|
|
4298
|
+
}
|
|
4299
|
+
|
|
4300
|
+
.progress-bar-label {
|
|
4301
|
+
@apply text-xs mt-2 truncate text-ellipsis;
|
|
4302
|
+
}
|
|
4303
|
+
|
|
4304
|
+
.progress-bar-backdrop {
|
|
4305
|
+
@apply flex mt-1 h-4 rounded-md backdrop-blur-sm bg-slate-200/25;
|
|
4306
|
+
}
|
|
4307
|
+
|
|
4308
|
+
.progress-bar-inner {
|
|
4309
|
+
@apply h-2 m-1 rounded-md bg-sky-200 transition-[width] ease-in-out duration-300 transform;
|
|
4310
|
+
}
|
|
4311
|
+
|
|
4264
4312
|
|
|
4265
4313
|
.modal-active {
|
|
4266
4314
|
overflow: hidden;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kaWNlLW5nLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9pbmRpY2UtbmctY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FilterClause, Operators, OperatorOptions } from './models';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "../date-picker/date-picker.component";
|
|
7
|
+
import * as i4 from "../drop-down-menu/drop-down-menu.component";
|
|
8
|
+
export class AdvancedSearchComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.advancedSearchChanged = new EventEmitter();
|
|
11
|
+
this.searchOptions = [];
|
|
12
|
+
this.operatorsDisabled = false;
|
|
13
|
+
this.filters = [];
|
|
14
|
+
this.menuOptions = [];
|
|
15
|
+
this.operatorMenuOptions = [];
|
|
16
|
+
this.operatorOptions = OperatorOptions;
|
|
17
|
+
this.operators = {};
|
|
18
|
+
this.menuOptionsDictionary = {};
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.searchOptions.forEach((searchOption) => {
|
|
22
|
+
this.menuOptions.push({
|
|
23
|
+
text: searchOption.name,
|
|
24
|
+
value: searchOption.field,
|
|
25
|
+
data: searchOption.dataType,
|
|
26
|
+
description: searchOption.placeholder,
|
|
27
|
+
icon: undefined
|
|
28
|
+
});
|
|
29
|
+
if (searchOption.dataType === 'array') {
|
|
30
|
+
let menuOpts = [];
|
|
31
|
+
searchOption.options?.forEach((selectInputOption) => {
|
|
32
|
+
menuOpts.push({
|
|
33
|
+
text: selectInputOption.label,
|
|
34
|
+
value: selectInputOption.value,
|
|
35
|
+
data: undefined,
|
|
36
|
+
description: selectInputOption.description,
|
|
37
|
+
icon: undefined
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
this.menuOptionsDictionary[searchOption.field] = menuOpts;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
selectedFieldChanged(field) {
|
|
45
|
+
this.selectedField = this.searchOptions.find((searchOption) => searchOption.field === field);
|
|
46
|
+
this.selectedOperator = undefined;
|
|
47
|
+
// Since we have special UI handling for the daterange, we don't need to fill the operatorMenuOptions in that case.
|
|
48
|
+
if (this.selectedField?.dataType != 'daterange') {
|
|
49
|
+
let operatorMenuOpts = [];
|
|
50
|
+
// based on the data type that we are filtering, fill the operator dropdown with the correct operators. The default is the string with equals/not-equals/contains
|
|
51
|
+
this.operatorOptions[this.selectedField?.dataType ?? 'string'].forEach(x => {
|
|
52
|
+
operatorMenuOpts.push({
|
|
53
|
+
text: x.description ?? x.label,
|
|
54
|
+
value: x.value,
|
|
55
|
+
data: undefined,
|
|
56
|
+
description: x.description,
|
|
57
|
+
icon: undefined
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
this.operatorMenuOptions = operatorMenuOpts;
|
|
61
|
+
// Preselect the first option from the operators menu so there will always be a default value, which is the 'equals' operator for all data types for now.
|
|
62
|
+
this.selectedOperator = this.operatorMenuOptions[0].value;
|
|
63
|
+
}
|
|
64
|
+
this.fieldValue = undefined;
|
|
65
|
+
}
|
|
66
|
+
selectedOperatorChanged(operator) {
|
|
67
|
+
this.selectedOperator = operator;
|
|
68
|
+
}
|
|
69
|
+
selectedFieldValueChanged(fieldValue) {
|
|
70
|
+
this.fieldValue = fieldValue;
|
|
71
|
+
}
|
|
72
|
+
search() {
|
|
73
|
+
if (!this.selectedField || !this.selectedField.dataType) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// the filter is of type 'daterange'
|
|
77
|
+
if (this.selectedField.dataType === 'daterange') {
|
|
78
|
+
if (!this.selectedField.multiTerm) {
|
|
79
|
+
this.filters = this.filters.filter((f) => {
|
|
80
|
+
return f.dataType !== 'datetime';
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (this.fieldValueDateFrom) {
|
|
84
|
+
const filterClauseFrom = new FilterClause(this.selectedField.field, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value, 'datetime', this.searchOptions);
|
|
85
|
+
this.filters.push(filterClauseFrom);
|
|
86
|
+
}
|
|
87
|
+
if (this.fieldValueDateTo) {
|
|
88
|
+
const filterClauseTo = new FilterClause(this.selectedField.field, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value, 'datetime', this.searchOptions);
|
|
89
|
+
this.filters.push(filterClauseTo);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// the filter isn't of type 'daterange' (everything else)
|
|
93
|
+
else {
|
|
94
|
+
if (this.fieldValue === undefined) { // handle empty field value
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
// if no operator was provided, it falls back to the default 'equals' operator
|
|
98
|
+
this.selectedOperator = this.selectedOperator ?? Operators.EQUALS.value;
|
|
99
|
+
// create the filterClause
|
|
100
|
+
const filterClause = new FilterClause(this.selectedField.field, this.fieldValue, this.selectedOperator, this.selectedField.dataType, this.searchOptions);
|
|
101
|
+
if (!this.selectedField.multiTerm) { // multiTerm means that we can have multiple filter values of the SAME filter clause (eg "filter case types that are Phone OR Address")
|
|
102
|
+
this.filters = this.filters.filter((f) => {
|
|
103
|
+
return f.member !== this.selectedField.field;
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
else { // selectedField is multiTerm: just checking if we already have the newly selected filterClause in filters
|
|
107
|
+
const isDuplicate = this.filters.some(f => f.toString() === filterClause.toString());
|
|
108
|
+
if (isDuplicate) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
this.filters.push(filterClause);
|
|
113
|
+
this.fieldValue = undefined;
|
|
114
|
+
}
|
|
115
|
+
this.advancedSearchChanged.emit(this.filters);
|
|
116
|
+
}
|
|
117
|
+
removeFilter(index) {
|
|
118
|
+
if (this.filters && this.filters.length >= index) {
|
|
119
|
+
this.filters.splice(index, 1);
|
|
120
|
+
this.advancedSearchChanged.emit(this.filters);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
isDateValueUnpicked() {
|
|
124
|
+
return this.fieldValueDateFrom === undefined && this.fieldValueDateTo === undefined;
|
|
125
|
+
}
|
|
126
|
+
isFieldAndOperatorUnpicked() {
|
|
127
|
+
// if the operators are enabled we need to check for both the field value and the operator value
|
|
128
|
+
return this.operatorsDisabled ? this.fieldValue === undefined : (this.fieldValue === undefined || this.selectedOperator === undefined);
|
|
129
|
+
}
|
|
130
|
+
clear() {
|
|
131
|
+
this.fieldValueDateFrom = undefined;
|
|
132
|
+
this.fieldValueDateTo = undefined;
|
|
133
|
+
this.selectedField = undefined;
|
|
134
|
+
this.fieldValue = undefined;
|
|
135
|
+
this.selectedOperator = undefined;
|
|
136
|
+
this.filters = [];
|
|
137
|
+
this.advancedSearchChanged.emit(this.filters);
|
|
138
|
+
}
|
|
139
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: AdvancedSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
140
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: AdvancedSearchComponent, selector: "lib-advanced-search", inputs: { searchOptions: ["search-options", "searchOptions"], operatorsDisabled: ["operators-disabled", "operatorsDisabled"], filters: "filters" }, outputs: { advancedSearchChanged: "advancedSearchChanged" }, ngImport: i0, template: "<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n \u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u03B1\u03BD\u03AC:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS OPERATOR MENU-->\r\n <div *ngIf=\"!operatorsDisabled && selectedField\"\r\n class=\"advanced-search-filter-operator-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array' || selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-operator-label\"\r\n for=\"selectedOperator\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"operatorMenuOptions\"\r\n [selected]=\"selectedOperator\"\r\n (selectedChanged)=\"selectedOperatorChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n \u0391\u03C0\u03CC:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n \u0388\u03C9\u03C2:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': isDateValueUnpicked() && isFieldAndOperatorUnpicked()}\"\r\n [disabled]=\"isDateValueUnpicked() && isFieldAndOperatorUnpicked()\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- This example requires Tailwind CSS v2.0+ -->\r\n <ng-container *ngFor=\"let filter of filters; let i = index\">\r\n <span *ngIf=\"filter && filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ filter.uiName }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(i)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DatepickerComponent, selector: "lib-date-picker", inputs: ["readonly", "disabled", "inline", "display-format", "placeholder", "value", "minDate", "maxDate"], outputs: ["valueChange"] }, { kind: "component", type: i4.DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: ["options", "selected", "multiple", "placeholder", "show-icons"], outputs: ["selectedChange", "selectedChanged"] }] }); }
|
|
141
|
+
}
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: AdvancedSearchComponent, decorators: [{
|
|
143
|
+
type: Component,
|
|
144
|
+
args: [{ selector: 'lib-advanced-search', template: "<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n \u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u03B1\u03BD\u03AC:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS OPERATOR MENU-->\r\n <div *ngIf=\"!operatorsDisabled && selectedField\"\r\n class=\"advanced-search-filter-operator-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array' || selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-operator-label\"\r\n for=\"selectedOperator\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"operatorMenuOptions\"\r\n [selected]=\"selectedOperator\"\r\n (selectedChanged)=\"selectedOperatorChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n \u0391\u03C0\u03CC:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n \u0388\u03C9\u03C2:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': isDateValueUnpicked() && isFieldAndOperatorUnpicked()}\"\r\n [disabled]=\"isDateValueUnpicked() && isFieldAndOperatorUnpicked()\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- This example requires Tailwind CSS v2.0+ -->\r\n <ng-container *ngFor=\"let filter of filters; let i = index\">\r\n <span *ngIf=\"filter && filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ filter.uiName }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(i)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n</div>" }]
|
|
145
|
+
}], ctorParameters: () => [], propDecorators: { advancedSearchChanged: [{
|
|
146
|
+
type: Output
|
|
147
|
+
}], searchOptions: [{
|
|
148
|
+
type: Input,
|
|
149
|
+
args: ['search-options']
|
|
150
|
+
}], operatorsDisabled: [{
|
|
151
|
+
type: Input,
|
|
152
|
+
args: ['operators-disabled']
|
|
153
|
+
}], filters: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}] } });
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hZHZhbmNlZC1zZWFyY2gvYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hZHZhbmNlZC1zZWFyY2gvYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFnQixZQUFZLEVBQW1CLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQU1uRyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JsQztRQWZVLDBCQUFxQixHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUMxRSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFDL0Isc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ3ZELFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUMvQix3QkFBbUIsR0FBaUIsRUFBRSxDQUFDO1FBQ3ZDLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ2xDLGNBQVMsR0FBb0MsRUFBRSxDQUFDO1FBTWhELDBCQUFxQixHQUFvQyxFQUFFLENBQUM7SUFFbkQsQ0FBQztJQUVWLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7Z0JBQ3ZCLEtBQUss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SW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnVPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IFNlYXJjaE9wdGlvbiwgRmlsdGVyQ2xhdXNlLCBRdWVyeVBhcmFtZXRlcnMsIE9wZXJhdG9ycywgT3BlcmF0b3JPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWR2YW5jZWQtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBPdXRwdXQoKSBhZHZhbmNlZFNlYXJjaENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGaWx0ZXJDbGF1c2VbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNsYXVzZVtdPigpO1xyXG4gIEBJbnB1dCgnc2VhcmNoLW9wdGlvbnMnKSBzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25bXSA9IFtdO1xyXG4gIEBJbnB1dCgnb3BlcmF0b3JzLWRpc2FibGVkJykgb3BlcmF0b3JzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWx0ZXJzOiBGaWx0ZXJDbGF1c2VbXSA9IFtdO1xyXG4gIHB1YmxpYyBtZW51T3B0aW9uczogTWVudU9wdGlvbltdID0gW107XHJcbiAgcHVibGljIG9wZXJhdG9yTWVudU9wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xyXG4gIHB1YmxpYyBvcGVyYXRvck9wdGlvbnMgPSBPcGVyYXRvck9wdGlvbnM7XHJcbiAgcHVibGljIG9wZXJhdG9yczogeyBba2V5OiBzdHJpbmddOiBNZW51T3B0aW9uW10gfSA9IHt9O1xyXG4gIHB1YmxpYyBzZWxlY3RlZE9wZXJhdG9yPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBzZWxlY3RlZEZpZWxkPzogU2VhcmNoT3B0aW9uO1xyXG4gIHB1YmxpYyBmaWVsZFZhbHVlPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBmaWVsZFZhbHVlRGF0ZUZyb206IGFueTtcclxuICBwdWJsaWMgZmllbGRWYWx1ZURhdGVUbzogYW55O1xyXG4gIHB1YmxpYyBtZW51T3B0aW9uc0RpY3Rpb25hcnk6IHsgW2tleTogc3RyaW5nXTogTWVudU9wdGlvbltdIH0gPSB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hPcHRpb25zLmZvckVhY2goKHNlYXJjaE9wdGlvbikgPT4ge1xyXG4gICAgICB0aGlzLm1lbnVPcHRpb25zLnB1c2goe1xyXG4gICAgICAgIHRleHQ6IHNlYXJjaE9wdGlvbi5uYW1lLFxyXG4gICAgICAgIHZhbHVlOiBzZWFyY2hPcHRpb24uZmllbGQsXHJcbiAgICAgICAgZGF0YTogc2VhcmNoT3B0aW9uLmRhdGFUeXBlLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBzZWFyY2hPcHRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgICAgaWNvbjogdW5kZWZpbmVkXHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoc2VhcmNoT3B0aW9uLmRhdGFUeXBlID09PSAnYXJyYXknKSB7XHJcbiAgICAgICAgbGV0IG1lbnVPcHRzOiBNZW51T3B0aW9uW10gPSBbXTtcclxuICAgICAgICBzZWFyY2hPcHRpb24ub3B0aW9ucz8uZm9yRWFjaCgoc2VsZWN0SW5wdXRPcHRpb24pID0+IHtcclxuICAgICAgICAgIG1lbnVPcHRzLnB1c2goe1xyXG4gICAgICAgICAgICB0ZXh0OiBzZWxlY3RJbnB1dE9wdGlvbi5sYWJlbCxcclxuICAgICAgICAgICAgdmFsdWU6IHNlbGVjdElucHV0T3B0aW9uLnZhbHVlLFxyXG4gICAgICAgICAgICBkYXRhOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzZWxlY3RJbnB1dE9wdGlvbi5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgaWNvbjogdW5kZWZpbmVkXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMubWVudU9wdGlvbnNEaWN0aW9uYXJ5W3NlYXJjaE9wdGlvbi5maWVsZF0gPSBtZW51T3B0cztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRGaWVsZENoYW5nZWQoZmllbGQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkID0gdGhpcy5zZWFyY2hPcHRpb25zLmZpbmQoKHNlYXJjaE9wdGlvbikgPT4gc2VhcmNoT3B0aW9uLmZpZWxkID09PSBmaWVsZCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3BlcmF0b3IgPSB1bmRlZmluZWQ7XHJcbiAgICAvLyBTaW5jZSB3ZSBoYXZlIHNwZWNpYWwgVUkgaGFuZGxpbmcgZm9yIHRoZSBkYXRlcmFuZ2UsIHdlIGRvbid0IG5lZWQgdG8gZmlsbCB0aGUgb3BlcmF0b3JNZW51T3B0aW9ucyBpbiB0aGF0IGNhc2UuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZpZWxkPy5kYXRhVHlwZSAhPSAnZGF0ZXJhbmdlJykge1xyXG4gICAgICBsZXQgb3BlcmF0b3JNZW51T3B0czogTWVudU9wdGlvbltdID0gW107XHJcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSBkYXRhIHR5cGUgdGhhdCB3ZSBhcmUgZmlsdGVyaW5nLCBmaWxsIHRoZSBvcGVyYXRvciBkcm9wZG93biB3aXRoIHRoZSBjb3JyZWN0IG9wZXJhdG9ycy4gVGhlIGRlZmF1bHQgaXMgdGhlIHN0cmluZyB3aXRoIGVxdWFscy9ub3QtZXF1YWxzL2NvbnRhaW5zXHJcbiAgICAgIHRoaXMub3BlcmF0b3JPcHRpb25zW3RoaXMuc2VsZWN0ZWRGaWVsZD8uZGF0YVR5cGUgPz8gJ3N0cmluZyddLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgb3BlcmF0b3JNZW51T3B0cy5wdXNoKHtcclxuICAgICAgICAgIHRleHQ6IHguZGVzY3JpcHRpb24gPz8geC5sYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiB4LnZhbHVlLFxyXG4gICAgICAgICAgZGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgZGVzY3JpcHRpb246IHguZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICBpY29uOiB1bmRlZmluZWRcclxuICAgICAgICB9KVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLm9wZXJhdG9yTWVudU9wdGlvbnMgPSBvcGVyYXRvck1lbnVPcHRzO1xyXG4gICAgICAvLyBQcmVzZWxlY3QgdGhlIGZpcnN0IG9wdGlvbiBmcm9tIHRoZSBvcGVyYXRvcnMgbWVudSBzbyB0aGVyZSB3aWxsIGFsd2F5cyBiZSBhIGRlZmF1bHQgdmFsdWUsIHdoaWNoIGlzIHRoZSAnZXF1YWxzJyBvcGVyYXRvciBmb3IgYWxsIGRhdGEgdHlwZXMgZm9yIG5vdy5cclxuICAgICAgdGhpcy5zZWxlY3RlZE9wZXJhdG9yID0gdGhpcy5vcGVyYXRvck1lbnVPcHRpb25zWzBdLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWVsZFZhbHVlID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkT3BlcmF0b3JDaGFuZ2VkKG9wZXJhdG9yOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcGVyYXRvciA9IG9wZXJhdG9yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkRmllbGRWYWx1ZUNoYW5nZWQoZmllbGRWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlYXJjaCgpIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZEZpZWxkIHx8ICF0aGlzLnNlbGVjdGVkRmllbGQuZGF0YVR5cGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gdGhlIGZpbHRlciBpcyBvZiB0eXBlICdkYXRlcmFuZ2UnXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnZGF0ZXJhbmdlJykge1xyXG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGaWVsZC5tdWx0aVRlcm0pIHtcclxuICAgICAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKChmKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZi5kYXRhVHlwZSAhPT0gJ2RhdGV0aW1lJztcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5maWVsZFZhbHVlRGF0ZUZyb20pIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJDbGF1c2VGcm9tID0gbmV3IEZpbHRlckNsYXVzZSh0aGlzLnNlbGVjdGVkRmllbGQuZmllbGQsIHRoaXMuZmllbGRWYWx1ZURhdGVGcm9tLCBPcGVyYXRvcnMuR1JFQVRFUl9USEFOX0VRVUFMLnZhbHVlIGFzIEZpbHRlckNsYXVzZS5PcCwgJ2RhdGV0aW1lJywgdGhpcy5zZWFyY2hPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmZpbHRlcnMucHVzaChmaWx0ZXJDbGF1c2VGcm9tKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZmllbGRWYWx1ZURhdGVUbykge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlckNsYXVzZVRvID0gbmV3IEZpbHRlckNsYXVzZSh0aGlzLnNlbGVjdGVkRmllbGQuZmllbGQsIHRoaXMuZmllbGRWYWx1ZURhdGVUbywgT3BlcmF0b3JzLkxFU1NfVEhBTl9FUVVBTC52YWx1ZSBhcyBGaWx0ZXJDbGF1c2UuT3AsICdkYXRldGltZScsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzLnB1c2goZmlsdGVyQ2xhdXNlVG8pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB0aGUgZmlsdGVyIGlzbid0IG9mIHR5cGUgJ2RhdGVyYW5nZScgKGV2ZXJ5dGhpbmcgZWxzZSlcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5maWVsZFZhbHVlID09PSB1bmRlZmluZWQpIHsgLy8gaGFuZGxlIGVtcHR5IGZpZWxkIHZhbHVlXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGlmIG5vIG9wZXJhdG9yIHdhcyBwcm92aWRlZCwgaXQgZmFsbHMgYmFjayB0byB0aGUgZGVmYXVsdCAnZXF1YWxzJyBvcGVyYXRvclxyXG4gICAgICB0aGlzLnNlbGVjdGVkT3BlcmF0b3IgPSB0aGlzLnNlbGVjdGVkT3BlcmF0b3IgPz8gT3BlcmF0b3JzLkVRVUFMUy52YWx1ZTtcclxuICAgICAgLy8gY3JlYXRlIHRoZSBmaWx0ZXJDbGF1c2VcclxuICAgICAgY29uc3QgZmlsdGVyQ2xhdXNlID0gbmV3IEZpbHRlckNsYXVzZSh0aGlzLnNlbGVjdGVkRmllbGQuZmllbGQsIHRoaXMuZmllbGRWYWx1ZSwgdGhpcy5zZWxlY3RlZE9wZXJhdG9yIGFzIEZpbHRlckNsYXVzZS5PcCwgdGhpcy5zZWxlY3RlZEZpZWxkLmRhdGFUeXBlLCB0aGlzLnNlYXJjaE9wdGlvbnMpO1xyXG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGaWVsZC5tdWx0aVRlcm0pIHsgLy8gbXVsdGlUZXJtIG1lYW5zIHRoYXQgd2UgY2FuIGhhdmUgbXVsdGlwbGUgZmlsdGVyIHZhbHVlcyBvZiB0aGUgU0FNRSBmaWx0ZXIgY2xhdXNlIChlZyBcImZpbHRlciBjYXNlIHR5cGVzIHRoYXQgYXJlIFBob25lIE9SIEFkZHJlc3NcIilcclxuICAgICAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKChmKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZi5tZW1iZXIgIT09IHRoaXMuc2VsZWN0ZWRGaWVsZCEuZmllbGQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7IC8vIHNlbGVjdGVkRmllbGQgaXMgbXVsdGlUZXJtOiBqdXN0IGNoZWNraW5nIGlmIHdlIGFscmVhZHkgaGF2ZSB0aGUgbmV3bHkgc2VsZWN0ZWQgZmlsdGVyQ2xhdXNlIGluIGZpbHRlcnNcclxuICAgICAgICBjb25zdCBpc0R1cGxpY2F0ZSA9IHRoaXMuZmlsdGVycy5zb21lKGYgPT4gZi50b1N0cmluZygpID09PSBmaWx0ZXJDbGF1c2UudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgaWYgKGlzRHVwbGljYXRlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmZpbHRlcnMucHVzaChmaWx0ZXJDbGF1c2UpO1xyXG4gICAgICB0aGlzLmZpZWxkVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFkdmFuY2VkU2VhcmNoQ2hhbmdlZC5lbWl0KHRoaXMuZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlRmlsdGVyKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlcnMgJiYgdGhpcy5maWx0ZXJzLmxlbmd0aCA+PSBpbmRleCkge1xyXG4gICAgICB0aGlzLmZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5hZHZhbmNlZFNlYXJjaENoYW5nZWQuZW1pdCh0aGlzLmZpbHRlcnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzRGF0ZVZhbHVlVW5waWNrZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5maWVsZFZhbHVlRGF0ZUZyb20gPT09IHVuZGVmaW5lZCAmJiB0aGlzLmZpZWxkVmFsdWVEYXRlVG8gPT09IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0ZpZWxkQW5kT3BlcmF0b3JVbnBpY2tlZCgpOiBib29sZWFuIHtcclxuICAgIC8vIGlmIHRoZSBvcGVyYXRvcnMgYXJlIGVuYWJsZWQgd2UgbmVlZCB0byBjaGVjayBmb3IgYm90aCB0aGUgZmllbGQgdmFsdWUgYW5kIHRoZSBvcGVyYXRvciB2YWx1ZVxyXG4gICAgcmV0dXJuIHRoaXMub3BlcmF0b3JzRGlzYWJsZWQgPyB0aGlzLmZpZWxkVmFsdWUgPT09IHVuZGVmaW5lZCA6ICh0aGlzLmZpZWxkVmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnNlbGVjdGVkT3BlcmF0b3IgPT09IHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXIoKSB7XHJcbiAgICB0aGlzLmZpZWxkVmFsdWVEYXRlRnJvbSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZmllbGRWYWx1ZURhdGVUbyA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZmllbGRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcGVyYXRvciA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZmlsdGVycyA9IFtdO1xyXG4gICAgdGhpcy5hZHZhbmNlZFNlYXJjaENoYW5nZWQuZW1pdCh0aGlzLmZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyXCI+XHJcbiAgICAgICAgPCEtLVNFQVJDSCBGSUVMRFMtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci1maWVsZC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci1maWVsZC1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICBmb3I9XCJzZWxlY3RlZEZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICDOkc69zrHOts6uz4TOt8+DzrcgzrHOvc6sOlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8bGliLWRyb3AtZG93bi1tZW51IFtvcHRpb25zXT1cIm1lbnVPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2VkKT1cInNlbGVjdGVkRmllbGRDaGFuZ2VkKCRldmVudClcIj48L2xpYi1kcm9wLWRvd24tbWVudT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tU0VBUkNIIEZJRUxEUyBPUEVSQVRPUiBNRU5VLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFvcGVyYXRvcnNEaXNhYmxlZCAmJiBzZWxlY3RlZEZpZWxkXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci1vcGVyYXRvci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkRmllbGQuZGF0YVR5cGUgPT09ICdhcnJheScgfHwgc2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSA9PT0gJ3N0cmluZydcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItb3BlcmF0b3ItbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInNlbGVjdGVkT3BlcmF0b3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8bGliLWRyb3AtZG93bi1tZW51IFtvcHRpb25zXT1cIm9wZXJhdG9yTWVudU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRPcGVyYXRvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZWQpPVwic2VsZWN0ZWRPcGVyYXRvckNoYW5nZWQoJGV2ZW50KVwiPjwvbGliLWRyb3AtZG93bi1tZW51PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tU0VBUkNIIEZJRUxEUyBJTlBVVC0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpZWxkXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci12YWx1ZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkRmllbGQuZGF0YVR5cGUgPT09ICdhcnJheSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZpZWxkVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8bGliLWRyb3AtZG93bi1tZW51IFtvcHRpb25zXT1cIm1lbnVPcHRpb25zRGljdGlvbmFyeVtzZWxlY3RlZEZpZWxkLmZpZWxkXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJmaWVsZFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlZCk9XCJzZWxlY3RlZEZpZWxkVmFsdWVDaGFuZ2VkKCRldmVudClcIj48L2xpYi1kcm9wLWRvd24tbWVudT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnc3RyaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci12YWx1ZS1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmllbGRWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCAoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZpZWxkVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIs6Rzr3Osc62zq7PhM63z4POt1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtaW5wdXRcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnZGF0ZXJhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtaW5wdXQtZGF0ZXJhbmdlLWZyb21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgzpHPgM+MOlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWRhdGUtcGlja2VyIFttYXhEYXRlXT1cImZpZWxkVmFsdWVEYXRlVG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWVsZFZhbHVlRGF0ZUZyb21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIicwMS8wMS8yMDIyJ1wiPjwvbGliLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSA9PT0gJ2RhdGVyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtaW5wdXQtZGF0ZXJhbmdlLXRvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIM6Iz4nPgjpcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1kYXRlLXBpY2tlciBbbWluRGF0ZV09XCJmaWVsZFZhbHVlRGF0ZUZyb21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWVsZFZhbHVlRGF0ZVRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInMDEvMDEvMjAyMidcIj48L2xpYi1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRGaWVsZFwiPlxyXG4gICAgICAgICAgICA8IS0tRE8gU0VBUkNILS0+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydvcGFjaXR5LTUwIGN1cnNvci1ub3QtYWxsb3dlZCc6IGlzRGF0ZVZhbHVlVW5waWNrZWQoKSAmJiBpc0ZpZWxkQW5kT3BlcmF0b3JVbnBpY2tlZCgpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGF0ZVZhbHVlVW5waWNrZWQoKSAmJiBpc0ZpZWxkQW5kT3BlcmF0b3JVbnBpY2tlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoKClcIj5cclxuICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCInbXMtSWNvbiBtcy1JY29uLS1TZWFyY2gnXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPCEtLUNMRUFSLS0+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIj5cclxuICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCInbXMtSWNvbiBtcy1JY29uLS1DYW5jZWwnXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLUZJTFRFUiBDSElQUy0tPlxyXG4gICAgPCEtLSBUaGlzIGV4YW1wbGUgcmVxdWlyZXMgVGFpbHdpbmQgQ1NTIHYyLjArIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlcnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImZpbHRlciAmJiBmaWx0ZXIubWVtYmVyXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1jaGlwc1wiPlxyXG4gICAgICAgICAgICB7eyBmaWx0ZXIudWlOYW1lIH19IHt7IGZpbHRlci51aU9wZXJhdG9yIH19ICd7eyBmaWx0ZXIudWlWYWx1ZSB9fSdcclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlRmlsdGVyKGkpXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1jaGlwcy1yZW1vdmUtZmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5SZW1vdmUgbGFyZ2Ugb3B0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImgtMiB3LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgOCA4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEgMWw2IDZtMC02TDEgN1wiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { formatDate } from "@angular/common";
|
|
2
|
+
export var Operators;
|
|
3
|
+
(function (Operators) {
|
|
4
|
+
Operators.EQUALS = { label: '=', value: 'eq', description: 'Ίσο με' };
|
|
5
|
+
Operators.NOT_EQUALS = { label: '≠', value: 'neq', description: 'Διάφορο του' };
|
|
6
|
+
Operators.GREATER_THAN = { label: '>', value: 'gt', description: 'Μεγαλύτερο από' };
|
|
7
|
+
Operators.LESS_THAN = { label: '<', value: 'lt', description: 'Μικρότερο από' };
|
|
8
|
+
Operators.GREATER_THAN_EQUAL = { label: '≥', value: 'gte', description: 'Μεγαλύτερο ή ίσο με' };
|
|
9
|
+
Operators.LESS_THAN_EQUAL = { label: '≤', value: 'lte', description: 'Μικρότερο ή ίσο με' };
|
|
10
|
+
Operators.CONTAINS = { label: '∋', value: 'contains', description: 'Περιέχει' };
|
|
11
|
+
Operators.IN = { label: '1..n', value: 'in', description: 'Μέσα σε' };
|
|
12
|
+
})(Operators || (Operators = {}));
|
|
13
|
+
export var QueryParameters;
|
|
14
|
+
(function (QueryParameters) {
|
|
15
|
+
QueryParameters["VIEW"] = "view";
|
|
16
|
+
QueryParameters["PAGE_SIZE"] = "pagesize";
|
|
17
|
+
QueryParameters["PAGE"] = "page";
|
|
18
|
+
QueryParameters["SEARCH"] = "search";
|
|
19
|
+
QueryParameters["SORT_FIELD"] = "sort";
|
|
20
|
+
QueryParameters["SORT_DIRECTION"] = "dir";
|
|
21
|
+
QueryParameters["FILTER"] = "filter";
|
|
22
|
+
QueryParameters["FILTER_FROM"] = "from";
|
|
23
|
+
QueryParameters["FILTER_TO"] = "to";
|
|
24
|
+
})(QueryParameters || (QueryParameters = {}));
|
|
25
|
+
export const OperatorOptions = {
|
|
26
|
+
'string': [Operators.EQUALS, Operators.NOT_EQUALS, Operators.CONTAINS],
|
|
27
|
+
'array': [Operators.EQUALS, Operators.NOT_EQUALS]
|
|
28
|
+
};
|
|
29
|
+
export class FilterClause {
|
|
30
|
+
constructor(member, value, operator, dataType, searchOptions) {
|
|
31
|
+
this.member = member;
|
|
32
|
+
this.value = value;
|
|
33
|
+
this.operator = operator || Operators.EQUALS.value;
|
|
34
|
+
this.dataType = dataType === undefined ? 'string' : dataType;
|
|
35
|
+
// uiName
|
|
36
|
+
if (this.dataType === 'datetime') { // special treatment for dates
|
|
37
|
+
this.uiName = this.member === QueryParameters.FILTER_FROM ? 'Από' : 'Έως';
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.uiName = this.member;
|
|
41
|
+
let fo = {};
|
|
42
|
+
if (searchOptions && searchOptions.length > 0) {
|
|
43
|
+
fo = searchOptions.find((f) => {
|
|
44
|
+
return f.field === this.member;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
if (fo) {
|
|
48
|
+
this.uiName = fo.name;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// We don't want a uiOperator for the datetime dataType. For strings and arrays we have the equals/not-equals/contains operators. The switch case can be expanded for more data types/operators when needed.
|
|
52
|
+
if (this.dataType === 'datetime') {
|
|
53
|
+
this.uiOperator = '';
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
switch (this.operator) {
|
|
57
|
+
case (Operators.EQUALS.value):
|
|
58
|
+
this.uiOperator = Operators.EQUALS.label;
|
|
59
|
+
break;
|
|
60
|
+
case (Operators.NOT_EQUALS.value):
|
|
61
|
+
this.uiOperator = Operators.NOT_EQUALS.label;
|
|
62
|
+
break;
|
|
63
|
+
case (Operators.CONTAINS.value):
|
|
64
|
+
this.uiOperator = Operators.CONTAINS.label;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// uiValue
|
|
69
|
+
this.uiValue = this.value;
|
|
70
|
+
if ((this.dataType === 'datetime')) {
|
|
71
|
+
this.uiValue = formatDate(new Date(this.value), 'dd/MM/yyyy', 'en-US');
|
|
72
|
+
}
|
|
73
|
+
let fo;
|
|
74
|
+
if (searchOptions && searchOptions.length > 0) {
|
|
75
|
+
fo = searchOptions.find((f) => {
|
|
76
|
+
return f.field === this.member;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (fo && fo.options) { // special treatment for arrays, if there is an options property then it is an array
|
|
80
|
+
this.dataType = 'array';
|
|
81
|
+
this.uiValue = fo.options.find((option) => {
|
|
82
|
+
return option.value === this.value;
|
|
83
|
+
})?.label;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
static parse(text) {
|
|
87
|
+
const pattern = /^\s*([A-Za-z_][A-Za-z0-9_\.]+)::(eq|neq|gt|lt|gte|lte|contains|in)::(\((string|integer|number|boolean|datetime)\))?(.+)\s*$/gi;
|
|
88
|
+
if (text != null) {
|
|
89
|
+
const matches = pattern.exec(text);
|
|
90
|
+
if (matches != null) {
|
|
91
|
+
const path = matches[1];
|
|
92
|
+
const op = matches[2];
|
|
93
|
+
const dt = matches[4];
|
|
94
|
+
const v = matches[5];
|
|
95
|
+
return new FilterClause(path, v, op, dt);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
toString() {
|
|
101
|
+
if (this.dataType !== 'string' && this.dataType !== 'array') {
|
|
102
|
+
return `${this.member}::${this.operator}::(${this.dataType})${this.value}`;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return `${this.member}::${this.operator}::${this.value}`;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2FkdmFuY2VkLXNlYXJjaC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE1BQU0sS0FBVyxTQUFTLENBU3pCO0FBVEQsV0FBaUIsU0FBUztJQUNYLGdCQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzVELG9CQUFVLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3RFLHNCQUFZLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDMUUsbUJBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLENBQUM7SUFDdEUsNEJBQWtCLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLENBQUM7SUFDdEYseUJBQWUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztJQUNsRixrQkFBUSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN0RSxZQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUs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QUFDO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxFQUFFLEdBQW9CLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxFQUFFLEdBQW9CLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVyQixPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDNUQsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFFBQVEsTUFBTSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3RSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBPcGVyYXRvcnMge1xyXG4gIGV4cG9ydCBjb25zdCBFUVVBTFMgPSB7IGxhYmVsOiAnPScsIHZhbHVlOiAnZXEnLCBkZXNjcmlwdGlvbjogJ86Kz4POvyDOvM61JyB9O1xyXG4gIGV4cG9ydCBjb25zdCBOT1RfRVFVQUxTID0geyBsYWJlbDogJ+KJoCcsIHZhbHVlOiAnbmVxJywgZGVzY3JpcHRpb246ICfOlM65zqzPhs6/z4HOvyDPhM6/z4UnIH07XHJcbiAgZXhwb3J0IGNvbnN0IEdSRUFURVJfVEhBTiA9IHsgbGFiZWw6ICc+JywgdmFsdWU6ICdndCcsIGRlc2NyaXB0aW9uOiAnzpzOtc6zzrHOu8+Nz4TOtc+Bzr8gzrHPgM+MJyB9O1xyXG4gIGV4cG9ydCBjb25zdCBMRVNTX1RIQU4gPSB7IGxhYmVsOiAnPCcsIHZhbHVlOiAnbHQnLCBkZXNjcmlwdGlvbjogJ86czrnOus+Bz4zPhM61z4HOvyDOsc+Az4wnIH07XHJcbiAgZXhwb3J0IGNvbnN0IEdSRUFURVJfVEhBTl9FUVVBTCA9IHsgbGFiZWw6ICfiiaUnLCB2YWx1ZTogJ2d0ZScsIGRlc2NyaXB0aW9uOiAnzpzOtc6zzrHOu8+Nz4TOtc+Bzr8gzq4gzq/Pg86/IM68zrUnIH07XHJcbiAgZXhwb3J0IGNvbnN0IExFU1NfVEhBTl9FUVVBTCA9IHsgbGFiZWw6ICfiiaQnLCB2YWx1ZTogJ2x0ZScsIGRlc2NyaXB0aW9uOiAnzpzOuc66z4HPjM+EzrXPgc6/IM6uIM6vz4POvyDOvM61JyB9O1xyXG4gIGV4cG9ydCBjb25zdCBDT05UQUlOUyA9IHsgbGFiZWw6ICfiiIsnLCB2YWx1ZTogJ2NvbnRhaW5zJywgZGVzY3JpcHRpb246ICfOoM61z4HOuc6tz4fOtc65JyB9O1xyXG4gIGV4cG9ydCBjb25zdCBJTiA9IHsgbGFiZWw6ICcxLi5uJywgdmFsdWU6ICdpbicsIGRlc2NyaXB0aW9uOiAnzpzOrc+DzrEgz4POtScgfTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUXVlcnlQYXJhbWV0ZXJzIHtcclxuICBWSUVXID0gJ3ZpZXcnLFxyXG4gIFBBR0VfU0laRSA9ICdwYWdlc2l6ZScsXHJcbiAgUEFHRSA9ICdwYWdlJyxcclxuICBTRUFSQ0ggPSAnc2VhcmNoJyxcclxuICBTT1JUX0ZJRUxEID0gJ3NvcnQnLFxyXG4gIFNPUlRfRElSRUNUSU9OID0gJ2RpcicsXHJcbiAgRklMVEVSID0gJ2ZpbHRlcicsXHJcbiAgRklMVEVSX0ZST00gPSAnZnJvbScsXHJcbiAgRklMVEVSX1RPID0gJ3RvJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaE9wdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IEZpbHRlckNsYXVzZS5EdDtcclxuICBhcnJheT86IGJvb2xlYW47XHJcbiAgbXVsdGlUZXJtPzogYm9vbGVhbjtcclxuICBvcHRpb25zPzogU2VsZWN0SW5wdXRPcHRpb25bXTtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RJbnB1dE9wdGlvbiB7XHJcbiAgdmFsdWU6IGFueTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIEZpbHRlckNsYXVzZSB7XHJcbiAgZXhwb3J0IHR5cGUgT3AgPSAnZXEnIHwgJ25lcScgfCAnZ3QnIHwgJ2x0JyB8ICdndGUnIHwgJ2x0ZScgfCAnY29udGFpbnMnIHwgJ2luJztcclxuICBleHBvcnQgdHlwZSBEdCA9ICdzdHJpbmcnIHwgJ2ludGVnZXInIHwgJ251bWJlcicgfCAnYm9vbGVhbicgfCAnZGF0ZXRpbWUnIHwgJ2FycmF5JyB8ICdkYXRlcmFuZ2UnIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vLyBEaWN0aW9uYXJ5IHdpdGggdGhlIERhdGFUeXBlIGFzIGEga2V5IGFuZCB0aGUgdmFsdWUgYW4gYXJyYXkgb2YgYXZhaWxhYmxlIG9wZXJhdG9ycy5cclxuZXhwb3J0IGludGVyZmFjZSBJRGljdGlvbmFyeTxUPiB7XHJcbiAgW2tleTogc3RyaW5nXTogVDtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IE9wZXJhdG9yT3B0aW9uczogSURpY3Rpb25hcnk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9W10+ID0ge1xyXG4gICdzdHJpbmcnOiBbT3BlcmF0b3JzLkVRVUFMUywgT3BlcmF0b3JzLk5PVF9FUVVBTFMsIE9wZXJhdG9ycy5DT05UQUlOU10sXHJcbiAgJ2FycmF5JzogW09wZXJhdG9ycy5FUVVBTFMsIE9wZXJhdG9ycy5OT1RfRVFVQUxTXVxyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlckNsYXVzZSB7XHJcbiAgLy8gTWVtYmVyIHBhdGggdG8gY29tcGFyZVxyXG4gIHB1YmxpYyBtZW1iZXI6IHN0cmluZztcclxuICAvLyBWYWx1ZSB0byBjb21wYXJlIGFnYWluc3RcclxuICBwdWJsaWMgdmFsdWU6IGFueTtcclxuICAvLyBUaGUgb3BlcmF0b3IgdG8gYXBwbHkgYmV0d2VlbiB0aGUgSW5kaWNlLlR5cGVzLkZpbHRlckNsYXVzZS5NZW1iZXIgYW5kIEluZGljZS5UeXBlcy5GaWx0ZXJDbGF1c2UuVmFsdWVcclxuICBwdWJsaWMgb3BlcmF0b3I6IEZpbHRlckNsYXVzZS5PcDtcclxuICAvLyBUaGUgSW5kaWNlLlR5cGVzLkpzb25EYXRhVHlwZSBvZiB0aGUgZGF0YSBJbmRpY2UuVHlwZXMuRmlsdGVyQ2xhdXNlLk1lbWJlclxyXG4gIHB1YmxpYyBkYXRhVHlwZTogRmlsdGVyQ2xhdXNlLkR0O1xyXG5cclxuICBwdWJsaWMgdWlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIHVpT3BlcmF0b3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgdWlWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IobWVtYmVyOiBzdHJpbmcsIHZhbHVlOiBhbnksIG9wZXJhdG9yPzogRmlsdGVyQ2xhdXNlLk9wLCBkYXRhVHlwZT86IEZpbHRlckNsYXVzZS5EdCwgc2VhcmNoT3B0aW9ucz86IFNlYXJjaE9wdGlvbltdKSB7IC8vIHllYXAsIHdlIGRvIG5lZWQgc2VhcmNoT3B0aW9ucyBmb3IgdGhlIHVpIHZpZXcgbW9kZWxcclxuICAgIHRoaXMubWVtYmVyID0gbWVtYmVyO1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yIHx8IE9wZXJhdG9ycy5FUVVBTFMudmFsdWUgYXMgRmlsdGVyQ2xhdXNlLk9wO1xyXG4gICAgdGhpcy5kYXRhVHlwZSA9IGRhdGFUeXBlID09PSB1bmRlZmluZWQgPyAnc3RyaW5nJyA6IGRhdGFUeXBlO1xyXG4gICAgLy8gdWlOYW1lXHJcbiAgICBpZiAodGhpcy5kYXRhVHlwZSA9PT0gJ2RhdGV0aW1lJykgeyAvLyBzcGVjaWFsIHRyZWF0bWVudCBmb3IgZGF0ZXNcclxuICAgICAgdGhpcy51aU5hbWUgPSB0aGlzLm1lbWJlciA9PT0gUXVlcnlQYXJhbWV0ZXJzLkZJTFRFUl9GUk9NID8gJ86Rz4DPjCcgOiAnzojPic+CJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudWlOYW1lID0gdGhpcy5tZW1iZXI7XHJcbiAgICAgIGxldCBmbyA9IDxhbnk+e307XHJcbiAgICAgIGlmIChzZWFyY2hPcHRpb25zICYmIHNlYXJjaE9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGZvID0gc2VhcmNoT3B0aW9ucy5maW5kKChmKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZi5maWVsZCA9PT0gdGhpcy5tZW1iZXI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChmbykge1xyXG4gICAgICAgIHRoaXMudWlOYW1lID0gZm8ubmFtZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gV2UgZG9uJ3Qgd2FudCBhIHVpT3BlcmF0b3IgZm9yIHRoZSBkYXRldGltZSBkYXRhVHlwZS4gRm9yIHN0cmluZ3MgYW5kIGFycmF5cyB3ZSBoYXZlIHRoZSBlcXVhbHMvbm90LWVxdWFscy9jb250YWlucyBvcGVyYXRvcnMuIFRoZSBzd2l0Y2ggY2FzZSBjYW4gYmUgZXhwYW5kZWQgZm9yIG1vcmUgZGF0YSB0eXBlcy9vcGVyYXRvcnMgd2hlbiBuZWVkZWQuXHJcbiAgICBpZiAodGhpcy5kYXRhVHlwZSA9PT0gJ2RhdGV0aW1lJykge1xyXG4gICAgICB0aGlzLnVpT3BlcmF0b3IgPSAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5vcGVyYXRvcikge1xyXG4gICAgICAgIGNhc2UgKE9wZXJhdG9ycy5FUVVBTFMudmFsdWUpOlxyXG4gICAgICAgICAgdGhpcy51aU9wZXJhdG9yID0gT3BlcmF0b3JzLkVRVUFMUy5sYWJlbDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKE9wZXJhdG9ycy5OT1RfRVFVQUxTLnZhbHVlKTpcclxuICAgICAgICAgIHRoaXMudWlPcGVyYXRvciA9IE9wZXJhdG9ycy5OT1RfRVFVQUxTLmxhYmVsO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAoT3BlcmF0b3JzLkNPTlRBSU5TLnZhbHVlKTpcclxuICAgICAgICAgIHRoaXMudWlPcGVyYXRvciA9IE9wZXJhdG9ycy5DT05UQUlOUy5sYWJlbDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB1aVZhbHVlXHJcbiAgICB0aGlzLnVpVmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgaWYgKCh0aGlzLmRhdGFUeXBlID09PSAnZGF0ZXRpbWUnKSkge1xyXG4gICAgICB0aGlzLnVpVmFsdWUgPSBmb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudmFsdWUpLCAnZGQvTU0veXl5eScsICdlbi1VUycpO1xyXG4gICAgfVxyXG4gICAgbGV0IGZvOiBTZWFyY2hPcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgICBpZiAoc2VhcmNoT3B0aW9ucyAmJiBzZWFyY2hPcHRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm8gPSBzZWFyY2hPcHRpb25zLmZpbmQoKGYpID0+IHtcclxuICAgICAgICByZXR1cm4gZi5maWVsZCA9PT0gdGhpcy5tZW1iZXI7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGZvICYmIGZvLm9wdGlvbnMpIHsgLy8gc3BlY2lhbCB0cmVhdG1lbnQgZm9yIGFycmF5cywgaWYgdGhlcmUgaXMgYW4gb3B0aW9ucyBwcm9wZXJ0eSB0aGVuIGl0IGlzIGFuIGFycmF5XHJcbiAgICAgIHRoaXMuZGF0YVR5cGUgPSAnYXJyYXknO1xyXG4gICAgICB0aGlzLnVpVmFsdWUgPSBmbyEub3B0aW9ucyEuZmluZCgob3B0aW9uKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZSA9PT0gdGhpcy52YWx1ZTtcclxuICAgICAgfSk/LmxhYmVsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBwYXJzZSh0ZXh0OiBzdHJpbmcpOiBGaWx0ZXJDbGF1c2UgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IC9eXFxzKihbQS1aYS16X11bQS1aYS16MC05X1xcLl0rKTo6KGVxfG5lcXxndHxsdHxndGV8bHRlfGNvbnRhaW5zfGluKTo6KFxcKChzdHJpbmd8aW50ZWdlcnxudW1iZXJ8Ym9vbGVhbnxkYXRldGltZSlcXCkpPyguKylcXHMqJC9naTtcclxuICAgIGlmICh0ZXh0ICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgbWF0Y2hlcyA9IHBhdHRlcm4uZXhlYyh0ZXh0KTtcclxuICAgICAgaWYgKG1hdGNoZXMgIT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSBtYXRjaGVzWzFdO1xyXG4gICAgICAgIGNvbnN0IG9wID0gPEZpbHRlckNsYXVzZS5PcD5tYXRjaGVzWzJdO1xyXG4gICAgICAgIGNvbnN0IGR0ID0gPEZpbHRlckNsYXVzZS5EdD5tYXRjaGVzWzRdO1xyXG4gICAgICAgIGNvbnN0IHYgPSBtYXRjaGVzWzVdO1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3IEZpbHRlckNsYXVzZShwYXRoLCB2LCBvcCwgZHQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5kYXRhVHlwZSAhPT0gJ3N0cmluZycgJiYgdGhpcy5kYXRhVHlwZSAhPT0gJ2FycmF5Jykge1xyXG4gICAgICByZXR1cm4gYCR7dGhpcy5tZW1iZXJ9Ojoke3RoaXMub3BlcmF0b3J9OjooJHt0aGlzLmRhdGFUeXBlfSkke3RoaXMudmFsdWV9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBgJHt0aGlzLm1lbWJlcn06OiR7dGhpcy5vcGVyYXRvcn06OiR7dGhpcy52YWx1ZX1gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class AvatarInitialsComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.large = false;
|
|
7
|
+
this.colors = [
|
|
8
|
+
'#EB7181', // red
|
|
9
|
+
'#468547', // green
|
|
10
|
+
'#FFD558', // yellow
|
|
11
|
+
'#3670B2', // blue
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
this.createInititals();
|
|
16
|
+
const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));
|
|
17
|
+
// assign this to a class if you want to randomly change background colors of the circle.
|
|
18
|
+
this.circleColor = this.colors[randomIndex];
|
|
19
|
+
}
|
|
20
|
+
createInititals() {
|
|
21
|
+
if (this.name) {
|
|
22
|
+
let initials = '';
|
|
23
|
+
for (let i = 0; i < this.name.length; i++) {
|
|
24
|
+
if (this.name.charAt(i) === ' ') {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) {
|
|
28
|
+
initials += this.name.charAt(i);
|
|
29
|
+
if (initials.length === 2) {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
this.initials = initials;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: AvatarInitialsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: AvatarInitialsComponent, selector: "lib-avatar-initials", inputs: { name: "name", large: "large" }, ngImport: i0, template: "<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\r\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
39
|
+
}
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: AvatarInitialsComponent, decorators: [{
|
|
41
|
+
type: Component,
|
|
42
|
+
args: [{ selector: 'lib-avatar-initials', template: "<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\r\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\r\n</div>\r\n" }]
|
|
43
|
+
}], ctorParameters: () => [], propDecorators: { name: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], large: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}] } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWluaXRpYWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hdmF0YXItaW5pdGlhbHMvYXZhdGFyLWluaXRpYWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hdmF0YXItaW5pdGlhbHMvYXZhdGFyLWluaXRpYWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFNekQsTUFBTSxPQUFPLHVCQUF1QjtJQWNsQztRQVZPLFVBQUssR0FBRyxLQUFLLENBQUM7UUFHYixXQUFNLEdBQUc7WUFDZixTQUFTLEVBQUUsTUFBTTtZQUNqQixTQUFTLEVBQUUsUUFBUTtZQUNuQixTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsT0FBTztTQUNuQixDQUFDO0lBRWMsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9FLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ2hDLFNBQVM7Z0JBQ1gsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7b0JBQzlELFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUMxQixNQUFNO29CQUNSLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzs4R0F2Q1UsdUJBQXVCO2tHQUF2Qix1QkFBdUIscUdDTnBDLG9MQUdBOzsyRkRHYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UscUJBQXFCO3dEQUt4QixJQUFJO3NCQURWLEtBQUs7Z0JBR0MsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hdmF0YXItaW5pdGlhbHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXItaW5pdGlhbHMuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdmF0YXJJbml0aWFsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbmFtZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYXJnZSA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpbml0aWFscz86IHN0cmluZztcclxuICBwdWJsaWMgY2lyY2xlQ29sb3IhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBjb2xvcnMgPSBbXHJcbiAgICAnI0VCNzE4MScsIC8vIHJlZFxyXG4gICAgJyM0Njg1NDcnLCAvLyBncmVlblxyXG4gICAgJyNGRkQ1NTgnLCAvLyB5ZWxsb3dcclxuICAgICcjMzY3MEIyJywgLy8gYmx1ZVxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVJbml0aXRhbHMoKTtcclxuICAgIGNvbnN0IHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcih0aGlzLmNvbG9ycy5sZW5ndGgpKTtcclxuICAgIC8vIGFzc2lnbiB0aGlzIHRvIGEgY2xhc3MgaWYgeW91IHdhbnQgdG8gcmFuZG9tbHkgY2hhbmdlIGJhY2tncm91bmQgY29sb3JzIG9mIHRoZSBjaXJjbGUuXHJcbiAgICB0aGlzLmNpcmNsZUNvbG9yID0gdGhpcy5jb2xvcnNbcmFuZG9tSW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVJbml0aXRhbHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uYW1lKSB7XHJcbiAgICAgIGxldCBpbml0aWFscyA9ICcnO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubmFtZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLm5hbWUuY2hhckF0KGkpID09PSAnICcpIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5uYW1lLmNoYXJBdChpKSA9PT0gdGhpcy5uYW1lLmNoYXJBdChpKS50b1VwcGVyQ2FzZSgpKSB7XHJcbiAgICAgICAgICBpbml0aWFscyArPSB0aGlzLm5hbWUuY2hhckF0KGkpO1xyXG4gICAgICAgICAgaWYgKGluaXRpYWxzLmxlbmd0aCA9PT0gMikge1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbml0aWFscyA9IGluaXRpYWxzO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImxhcmdlID8gJ2F2YXRhci1jb250YWluZXItbGFyZ2UnOiAnYXZhdGFyLWNvbnRhaW5lcidcIj5cclxuICAgIDxzcGFuIFtuZ0NsYXNzXT1cImxhcmdlID8gJ2F2YXRhci10ZXh0LWxhcmdlJzogJ2F2YXRhci10ZXh0J1wiPnt7IGluaXRpYWxzIH19PC9zcGFuPlxyXG48L2Rpdj5cclxuIl19
|