@indice/ng-components 0.2.167-beta.3 → 0.2.167-beta.34
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.css +102 -35
- package/{esm2015/indice-ng-components.js → esm2020/indice-ng-components.mjs} +0 -0
- package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +118 -0
- package/esm2020/lib/controls/advanced-search/models.mjs +90 -0
- package/{esm2015/lib/controls/avatar-initials/avatar-initials.component.js → esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs} +5 -8
- package/esm2020/lib/controls/breadcrumb/breadcrumb-item.mjs +14 -0
- package/esm2020/lib/controls/breadcrumb/breadcrumb.component.mjs +26 -0
- package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -0
- package/esm2020/lib/controls/combobox/combobox.component.mjs +117 -0
- package/esm2020/lib/controls/date-picker/date-picker.component.mjs +292 -0
- package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +72 -0
- package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +43 -0
- package/esm2020/lib/controls/language-selection/language-selection.component.mjs +31 -0
- package/{esm2015/lib/controls/list-view/list-column.component.js → esm2020/lib/controls/list-view/list-column.component.mjs} +4 -4
- package/{esm2015/lib/controls/list-view/list-details-section.component.js → esm2020/lib/controls/list-view/list-details-section.component.mjs} +4 -4
- package/{esm2015/lib/controls/list-view/list-tile.component.js → esm2020/lib/controls/list-view/list-tile.component.mjs} +4 -4
- package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
- package/esm2020/lib/controls/list-view/list-view.component.mjs +206 -0
- package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +54 -0
- package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +79 -0
- package/esm2020/lib/controls/pager/pager.component.mjs +130 -0
- package/esm2020/lib/controls/side-pane/side-pane.component.mjs +72 -0
- package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +25 -0
- package/{esm2015/lib/controls/stepper/lib-step-info.directive.js → esm2020/lib/controls/stepper/lib-step-info.directive.mjs} +4 -4
- package/{esm2015/lib/controls/stepper/lib-step-label.directive.js → esm2020/lib/controls/stepper/lib-step-label.directive.mjs} +5 -5
- package/esm2020/lib/controls/stepper/lib-step.component.mjs +81 -0
- package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +108 -0
- package/{esm2015/lib/controls/stepper/types/step-selected-event.js → esm2020/lib/controls/stepper/types/step-selected-event.mjs} +0 -0
- package/{esm2015/lib/controls/stepper/types/stepper-type.js → esm2020/lib/controls/stepper/types/stepper-type.mjs} +0 -0
- package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +66 -0
- package/esm2020/lib/controls/tabs/lib-tab-label.directive.mjs +16 -0
- package/esm2020/lib/controls/tabs/lib-tab.component.mjs +64 -0
- package/esm2020/lib/controls/toaster/toaster-container.component.mjs +28 -0
- package/esm2020/lib/controls/toaster/toaster.component.mjs +31 -0
- package/esm2020/lib/controls/toggle/toggle.component.mjs +64 -0
- package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
- package/{esm2015/lib/directives/click-outside.directive.js → esm2020/lib/directives/click-outside.directive.mjs} +4 -4
- package/{esm2015/lib/directives/dynamic-component-host.directive.js → esm2020/lib/directives/dynamic-component-host.directive.mjs} +4 -4
- package/esm2020/lib/helpers/base-list.component.mjs +226 -0
- package/esm2020/lib/icons.mjs +36 -0
- package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
- package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +130 -0
- package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +101 -0
- package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +54 -0
- package/esm2020/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +45 -0
- package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +28 -0
- package/esm2020/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +20 -0
- package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +80 -0
- package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +58 -0
- package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +98 -0
- package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
- package/esm2020/lib/ng-components.module.mjs +278 -0
- package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
- package/{esm2015/lib/pages/auth/auth-renew/auth-renew.component.js → esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs} +4 -4
- package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +28 -0
- package/esm2020/lib/pages/http-status/error/error.component.mjs +17 -0
- package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -0
- package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -0
- package/{esm2015/lib/pipes/address.pipe.js → esm2020/lib/pipes/address.pipe.mjs} +4 -4
- package/{esm2015/lib/pipes/duration-format.pipe.js → esm2020/lib/pipes/duration-format.pipe.mjs} +4 -4
- package/esm2020/lib/services/breadcrumb.service.mjs +174 -0
- package/{esm2015/lib/services/component-loader/component-loader-options.class.js → esm2020/lib/services/component-loader/component-loader-options.class.mjs} +0 -0
- package/esm2020/lib/services/component-loader/component-loader.class.mjs +188 -0
- package/{esm2015/lib/services/component-loader/component-loader.factory.js → esm2020/lib/services/component-loader/component-loader.factory.mjs} +4 -4
- package/{esm2015/lib/services/component-loader/content-ref.class.js → esm2020/lib/services/component-loader/content-ref.class.mjs} +0 -0
- package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
- package/esm2020/lib/services/modal-service/modal-container-component.mjs +126 -0
- package/{esm2015/lib/services/modal-service/modal-options.class.js → esm2020/lib/services/modal-service/modal-options.class.mjs} +4 -4
- package/esm2020/lib/services/modal-service/modal-service.mjs +219 -0
- package/{esm2015/lib/services/modal-service/modal-styles.class.js → esm2020/lib/services/modal-service/modal-styles.class.mjs} +0 -0
- package/{esm2015/lib/services/modal-service/modal.class.js → esm2020/lib/services/modal-service/modal.class.mjs} +4 -4
- package/esm2020/lib/services/toaster.service.mjs +26 -0
- package/esm2020/lib/services/user-settings.service.mjs +35 -0
- package/esm2020/lib/services/utilities.service.mjs +47 -0
- package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
- package/esm2020/lib/types.mjs +131 -0
- package/esm2020/public-api.mjs +68 -0
- package/fesm2015/indice-ng-components.mjs +4640 -0
- package/fesm2015/indice-ng-components.mjs.map +1 -0
- package/fesm2020/indice-ng-components.mjs +4554 -0
- package/fesm2020/indice-ng-components.mjs.map +1 -0
- package/{indice-ng-components.d.ts → index.d.ts} +0 -0
- package/lib/controls/advanced-search/advanced-search.component.d.ts +1 -1
- package/lib/controls/avatar-initials/avatar-initials.component.d.ts +1 -1
- package/lib/controls/breadcrumb/breadcrumb-item.d.ts +7 -0
- package/lib/controls/breadcrumb/breadcrumb.component.d.ts +12 -0
- package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +1 -1
- package/lib/controls/combobox/combobox.component.d.ts +10 -5
- package/lib/controls/date-picker/date-picker.component.d.ts +1 -1
- package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +2 -1
- package/lib/controls/kpi-tile/kpi-tile.component.d.ts +2 -1
- package/lib/controls/language-selection/language-selection.component.d.ts +1 -1
- package/lib/controls/list-view/list-column.component.d.ts +1 -1
- package/lib/controls/list-view/list-details-section.component.d.ts +1 -1
- package/lib/controls/list-view/list-tile.component.d.ts +1 -1
- package/lib/controls/list-view/list-view-empty-state.component.d.ts +1 -1
- package/lib/controls/list-view/list-view.component.d.ts +1 -1
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +3 -1
- package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +1 -1
- package/lib/controls/pager/pager.component.d.ts +1 -1
- package/lib/controls/side-pane/side-pane.component.d.ts +1 -2
- package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +1 -1
- package/lib/controls/stepper/lib-step-info.directive.d.ts +1 -1
- package/lib/controls/stepper/lib-step-label.directive.d.ts +1 -1
- package/lib/controls/stepper/lib-step.component.d.ts +1 -1
- package/lib/controls/stepper/lib-stepper.component.d.ts +1 -1
- package/lib/controls/tabs/lib-tab-group.component.d.ts +4 -4
- package/lib/controls/tabs/lib-tab-label.directive.d.ts +8 -0
- package/lib/controls/tabs/lib-tab.component.d.ts +8 -6
- package/lib/controls/toaster/toaster-container.component.d.ts +1 -1
- package/lib/controls/toaster/toaster.component.d.ts +1 -1
- package/lib/controls/toggle/toggle.component.d.ts +1 -1
- package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +1 -1
- package/lib/directives/click-outside.directive.d.ts +1 -1
- package/lib/directives/dynamic-component-host.directive.d.ts +1 -1
- package/lib/helpers/base-list.component.d.ts +1 -1
- package/lib/icons.d.ts +2 -0
- package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +1 -1
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +1 -1
- package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +1 -1
- package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +5 -3
- package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +1 -1
- package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +4 -2
- package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +2 -2
- package/lib/layouts/views/form-layout/form-layout.component.d.ts +1 -1
- package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +5 -2
- package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +1 -1
- package/lib/layouts/views/view-layout/view-layout.component.d.ts +1 -1
- package/lib/ng-components.module.d.ts +55 -54
- package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +1 -1
- package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +1 -1
- package/lib/pages/auth/logged-out/logged-out.component.d.ts +1 -1
- package/lib/pages/http-status/error/error.component.d.ts +1 -1
- package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +1 -1
- package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +1 -1
- package/lib/pipes/address.pipe.d.ts +1 -1
- package/lib/pipes/duration-format.pipe.d.ts +1 -1
- package/lib/services/breadcrumb.service.d.ts +29 -0
- package/lib/services/modal-service/modal-backdrop-component.d.ts +1 -1
- package/lib/services/modal-service/modal-container-component.d.ts +1 -1
- package/lib/services/toaster.service.d.ts +2 -2
- package/lib/services/user-settings.service.d.ts +13 -0
- package/lib/services/utilities.service.d.ts +11 -0
- package/lib/types.d.ts +13 -10
- package/package.json +21 -8
- package/public-api.d.ts +5 -0
- package/bundles/indice-ng-components.umd.js +0 -5035
- package/bundles/indice-ng-components.umd.js.map +0 -1
- package/esm2015/lib/controls/advanced-search/advanced-search.component.js +0 -116
- package/esm2015/lib/controls/advanced-search/models.js +0 -91
- package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +0 -23
- package/esm2015/lib/controls/combobox/combobox.component.js +0 -100
- package/esm2015/lib/controls/date-picker/date-picker.component.js +0 -301
- package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +0 -72
- package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +0 -42
- package/esm2015/lib/controls/language-selection/language-selection.component.js +0 -35
- package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +0 -32
- package/esm2015/lib/controls/list-view/list-view.component.js +0 -209
- package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +0 -51
- package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +0 -84
- package/esm2015/lib/controls/pager/pager.component.js +0 -133
- package/esm2015/lib/controls/side-pane/side-pane.component.js +0 -104
- package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +0 -29
- package/esm2015/lib/controls/stepper/lib-step.component.js +0 -82
- package/esm2015/lib/controls/stepper/lib-stepper.component.js +0 -115
- package/esm2015/lib/controls/tabs/lib-tab-group.component.js +0 -67
- package/esm2015/lib/controls/tabs/lib-tab.component.js +0 -58
- package/esm2015/lib/controls/toaster/toaster-container.component.js +0 -31
- package/esm2015/lib/controls/toaster/toaster.component.js +0 -34
- package/esm2015/lib/controls/toggle/toggle.component.js +0 -68
- package/esm2015/lib/controls/user-profile-menu/user-profile-menu.component.js +0 -75
- package/esm2015/lib/helpers/base-list.component.js +0 -227
- package/esm2015/lib/icons.js +0 -34
- package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +0 -22
- package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +0 -135
- package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +0 -106
- package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +0 -50
- package/esm2015/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.js +0 -48
- package/esm2015/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.js +0 -28
- package/esm2015/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.js +0 -24
- package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +0 -85
- package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +0 -53
- package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +0 -101
- package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +0 -110
- package/esm2015/lib/ng-components.module.js +0 -289
- package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +0 -34
- package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +0 -32
- package/esm2015/lib/pages/http-status/error/error.component.js +0 -20
- package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +0 -18
- package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +0 -17
- package/esm2015/lib/services/component-loader/component-loader.class.js +0 -192
- package/esm2015/lib/services/modal-service/modal-backdrop-component.js +0 -44
- package/esm2015/lib/services/modal-service/modal-container-component.js +0 -128
- package/esm2015/lib/services/modal-service/modal-service.js +0 -220
- package/esm2015/lib/services/toaster.service.js +0 -24
- package/esm2015/lib/types.js +0 -129
- package/esm2015/public-api.js +0 -63
- package/fesm2015/indice-ng-components.js +0 -4389
- package/fesm2015/indice-ng-components.js.map +0 -1
package/_styles.css
CHANGED
|
@@ -278,13 +278,9 @@
|
|
|
278
278
|
.shell-sidebar-component-container {
|
|
279
279
|
@apply flex w-full flex-col h-full min-h-0 bg-gray-800;
|
|
280
280
|
}
|
|
281
|
-
|
|
282
|
-
.shell-sidebar-component-container-inner {
|
|
283
|
-
@apply flex items-center h-16 flex-shrink-0 px-4 bg-gray-900;
|
|
284
|
-
}
|
|
285
|
-
|
|
281
|
+
|
|
286
282
|
.shell-sidebar-component-links-container {
|
|
287
|
-
@apply pt-4
|
|
283
|
+
@apply pt-4;
|
|
288
284
|
}
|
|
289
285
|
|
|
290
286
|
}
|
|
@@ -331,9 +327,13 @@
|
|
|
331
327
|
@apply absolute top-0 right-0 -mr-12 pt-2;
|
|
332
328
|
}
|
|
333
329
|
|
|
330
|
+
|
|
331
|
+
|
|
334
332
|
.sidebar-off-canvas-toggle-button {
|
|
335
333
|
@apply ml-1 flex items-center justify-center h-10 w-10 rounded-full focus:outline-none;
|
|
336
334
|
}
|
|
335
|
+
|
|
336
|
+
|
|
337
337
|
|
|
338
338
|
.sidebar-off-canvas-app-logo-container {
|
|
339
339
|
@apply flex-shrink-0 flex items-center px-4;
|
|
@@ -343,6 +343,7 @@
|
|
|
343
343
|
@apply flex-shrink-0 w-14;
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
+
/* in mobile view the static menu container is always hidden - off-canvas container is visible */
|
|
346
347
|
.sidebar-static-menu-outer-container {
|
|
347
348
|
@apply hidden md:flex;
|
|
348
349
|
}
|
|
@@ -356,15 +357,15 @@
|
|
|
356
357
|
}
|
|
357
358
|
|
|
358
359
|
.sidebar-static-menu-container-not-active {
|
|
359
|
-
@apply
|
|
360
|
+
@apply flex w-20;
|
|
360
361
|
}
|
|
361
362
|
|
|
362
363
|
.sidebar-static-menu-container-inner {
|
|
363
|
-
@apply flex-1 flex flex-col min-h-0 bg-gray-800 shadow-lg;
|
|
364
|
+
@apply flex-1 flex items-center flex-col min-h-0 bg-gray-800 shadow-lg;
|
|
364
365
|
}
|
|
365
366
|
|
|
366
367
|
.sidebar-static-menu-app-logo-container {
|
|
367
|
-
@apply flex items-center h-16 flex-shrink-0
|
|
368
|
+
@apply flex items-center h-16 flex-shrink-0;
|
|
368
369
|
}
|
|
369
370
|
|
|
370
371
|
.sidebar-static-menu-header-app-logo-container {
|
|
@@ -373,25 +374,31 @@
|
|
|
373
374
|
|
|
374
375
|
/* !!!! malakai onoma !!!! */
|
|
375
376
|
.sidebar-static-menu-wrapper {
|
|
376
|
-
@apply flex flex-col;
|
|
377
|
+
@apply flex flex-col md:pl-20;
|
|
377
378
|
}
|
|
378
379
|
|
|
379
|
-
.sidebar-static-menu-wrapper-
|
|
380
|
-
@apply
|
|
380
|
+
.sidebar-static-menu-wrapper-expanded {
|
|
381
|
+
@apply md:pl-64;
|
|
381
382
|
}
|
|
382
383
|
|
|
383
|
-
.sidebar-static-menu-
|
|
384
|
-
@apply sticky top-0 z-10 flex-shrink-0 flex h-16 bg-gray-900 shadow;
|
|
384
|
+
.sidebar-static-menu-sticky-header-container {
|
|
385
|
+
@apply sticky top-0 z-10 flex-shrink-0 flex h-16 bg-gray-900 shadow-2xl;
|
|
385
386
|
}
|
|
386
387
|
|
|
387
388
|
.sidebar-static-menu-toggle-button {
|
|
388
|
-
@apply px-4 text-white
|
|
389
|
+
@apply px-4 text-white focus:outline-none;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
.sidebar-static-menu-toggle-button-md {
|
|
393
|
+
@apply px-4 text-white focus:outline-none md:hidden;
|
|
389
394
|
}
|
|
390
395
|
|
|
391
396
|
.sidebar-static-menu-header-container {
|
|
392
397
|
@apply flex-1 px-4 flex justify-between;
|
|
393
398
|
}
|
|
394
399
|
|
|
400
|
+
/* fix names */
|
|
401
|
+
|
|
395
402
|
.sidebar-static-menu-header-near-container {
|
|
396
403
|
@apply flex-1 flex;
|
|
397
404
|
}
|
|
@@ -608,12 +615,12 @@
|
|
|
608
615
|
|
|
609
616
|
|
|
610
617
|
.btn-view-header {
|
|
611
|
-
@apply text-base focus:outline-none inline-flex items-center justify-center w-
|
|
618
|
+
@apply text-base focus:outline-none inline-flex items-center justify-center w-8 h-8 text-white transition-colors duration-150 rounded-md hover:shadow-sm hover:bg-gray-800;
|
|
612
619
|
}
|
|
613
620
|
|
|
614
621
|
|
|
615
622
|
.sidebar .btn-view-header {
|
|
616
|
-
@apply text-base focus:outline-none inline-flex items-center justify-center w-
|
|
623
|
+
@apply text-base focus:outline-none inline-flex items-center justify-center w-8 h-8 text-gray-900 transition-colors duration-150 rounded-md hover:shadow-sm hover:bg-gray-800 hover:text-white;
|
|
617
624
|
}
|
|
618
625
|
|
|
619
626
|
.btn-form-view-header {
|
|
@@ -708,11 +715,11 @@
|
|
|
708
715
|
}
|
|
709
716
|
|
|
710
717
|
.dropdown-selected-text {
|
|
711
|
-
@apply
|
|
718
|
+
@apply truncate inline-flex items-center;
|
|
712
719
|
}
|
|
713
720
|
|
|
714
721
|
.dropdown-button-icon {
|
|
715
|
-
@apply absolute inset-y-0 right-0 flex items-center
|
|
722
|
+
@apply absolute inset-y-0 right-0 flex items-center pointer-events-none;
|
|
716
723
|
}
|
|
717
724
|
|
|
718
725
|
.dropdown-arrow {
|
|
@@ -732,11 +739,11 @@
|
|
|
732
739
|
}
|
|
733
740
|
|
|
734
741
|
.dropdown-li-text {
|
|
735
|
-
@apply font-normal
|
|
742
|
+
@apply font-normal truncate inline-flex items-center ;
|
|
736
743
|
}
|
|
737
744
|
|
|
738
745
|
.dropdown-li-selected-text {
|
|
739
|
-
@apply font-semibold
|
|
746
|
+
@apply font-semibold truncate inline-flex items-center ;
|
|
740
747
|
}
|
|
741
748
|
|
|
742
749
|
.dropdown-li-selected-indicator-container {
|
|
@@ -3318,7 +3325,7 @@
|
|
|
3318
3325
|
}
|
|
3319
3326
|
|
|
3320
3327
|
.model-view-aside {
|
|
3321
|
-
@apply py-6 px-2 sm:px-6 lg:py-0 lg:px-0
|
|
3328
|
+
@apply py-6 px-2 sm:px-6 lg:py-0 lg:px-0 md:col-span-3;
|
|
3322
3329
|
}
|
|
3323
3330
|
|
|
3324
3331
|
.model-view-aside-header-section {
|
|
@@ -3377,7 +3384,11 @@
|
|
|
3377
3384
|
}
|
|
3378
3385
|
|
|
3379
3386
|
.sidebar .nav-link-list-container-inner {
|
|
3380
|
-
@apply flex-1 px-2 py-4 space-y-
|
|
3387
|
+
@apply flex-1 px-2 py-4 space-y-2;
|
|
3388
|
+
}
|
|
3389
|
+
|
|
3390
|
+
.sidebar .nav-link-list-container-inner .icons-only {
|
|
3391
|
+
@apply flex-1 px-2 py-4 space-y-4;
|
|
3381
3392
|
}
|
|
3382
3393
|
|
|
3383
3394
|
.nav-link-active {
|
|
@@ -3388,6 +3399,14 @@
|
|
|
3388
3399
|
@apply cursor-default bg-gray-900 text-white flex items-center px-2 py-2 text-sm font-medium rounded-md;
|
|
3389
3400
|
}
|
|
3390
3401
|
|
|
3402
|
+
.sidebar .nav-link-active-b {
|
|
3403
|
+
@apply cursor-default bg-gray-900 border-b border-blue-400 text-white flex items-center px-2 py-2 text-sm font-medium rounded-md;
|
|
3404
|
+
}
|
|
3405
|
+
|
|
3406
|
+
.sidebar .nav-link-active-l {
|
|
3407
|
+
@apply cursor-default bg-gray-900 border-l border-blue-400 text-white flex items-center px-2 py-2 text-sm font-medium rounded-md;
|
|
3408
|
+
}
|
|
3409
|
+
|
|
3391
3410
|
.nav-link-profile-active {
|
|
3392
3411
|
@apply cursor-default block px-4 py-2 text-xs text-blue-300 shadow-sm whitespace-nowrap overflow-ellipsis overflow-hidden;
|
|
3393
3412
|
}
|
|
@@ -3404,6 +3423,9 @@
|
|
|
3404
3423
|
@apply cursor-default bg-gray-50 border-gray-600 text-gray-900 border-l-4 py-2 px-3 flex items-center text-sm whitespace-nowrap overflow-ellipsis overflow-hidden;
|
|
3405
3424
|
}
|
|
3406
3425
|
|
|
3426
|
+
.min-nav-link-text-width {
|
|
3427
|
+
width: 220px;
|
|
3428
|
+
}
|
|
3407
3429
|
}
|
|
3408
3430
|
|
|
3409
3431
|
@layer components {
|
|
@@ -3459,7 +3481,7 @@
|
|
|
3459
3481
|
}
|
|
3460
3482
|
|
|
3461
3483
|
.pager-pages-container {
|
|
3462
|
-
@apply relative
|
|
3484
|
+
@apply relative inline-flex rounded-sm;
|
|
3463
3485
|
}
|
|
3464
3486
|
|
|
3465
3487
|
.pager-button {
|
|
@@ -3554,7 +3576,7 @@
|
|
|
3554
3576
|
}
|
|
3555
3577
|
|
|
3556
3578
|
.shell-content-container {
|
|
3557
|
-
@apply mx-auto -mt-
|
|
3579
|
+
@apply mx-auto -mt-24;
|
|
3558
3580
|
}
|
|
3559
3581
|
|
|
3560
3582
|
.sidebar .shell-content-container {
|
|
@@ -3567,11 +3589,11 @@
|
|
|
3567
3589
|
}
|
|
3568
3590
|
|
|
3569
3591
|
.sidebar .shell-content-container-inner {
|
|
3570
|
-
@apply max-w-full px-4 min-h-screen;
|
|
3592
|
+
@apply max-w-full px-4 pb-2 min-h-screen;
|
|
3571
3593
|
}
|
|
3572
3594
|
|
|
3573
3595
|
.shell-content-container-inner {
|
|
3574
|
-
@apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 min-h-screen;
|
|
3596
|
+
@apply max-w-7xl mx-auto px-4 pb-2 sm:px-6 lg:px-8 min-h-screen;
|
|
3575
3597
|
}
|
|
3576
3598
|
|
|
3577
3599
|
.shell-content-container-inner-fluid {
|
|
@@ -4187,7 +4209,7 @@
|
|
|
4187
4209
|
@layer components {
|
|
4188
4210
|
|
|
4189
4211
|
.view-container {
|
|
4190
|
-
@apply mt-
|
|
4212
|
+
@apply mt-4 sm:mt-5 flex flex-col;
|
|
4191
4213
|
}
|
|
4192
4214
|
|
|
4193
4215
|
.view-container-fluid {
|
|
@@ -4195,17 +4217,25 @@
|
|
|
4195
4217
|
}
|
|
4196
4218
|
|
|
4197
4219
|
.view-layout-paddings {
|
|
4198
|
-
@apply
|
|
4220
|
+
@apply py-4 sm:py-6;
|
|
4221
|
+
}
|
|
4222
|
+
|
|
4223
|
+
.sidebar .view-layout-paddings {
|
|
4224
|
+
@apply py-2 sm:py-4;
|
|
4199
4225
|
}
|
|
4200
4226
|
|
|
4201
4227
|
.view-layout-title-container {
|
|
4202
|
-
@apply flex text-white flex-row justify-start
|
|
4228
|
+
@apply flex text-white flex-col md:flex-row justify-start;
|
|
4203
4229
|
}
|
|
4204
4230
|
|
|
4205
4231
|
.view-layout-title-container-inner {
|
|
4206
4232
|
@apply flex-1 min-w-0;
|
|
4207
4233
|
}
|
|
4208
4234
|
|
|
4235
|
+
.view-layout-title-container-far {
|
|
4236
|
+
@apply flex items-center justify-start sm:justify-end;
|
|
4237
|
+
}
|
|
4238
|
+
|
|
4209
4239
|
.title-icon {
|
|
4210
4240
|
@apply text-2xl md:text-xl text-white font-thin mr-1;
|
|
4211
4241
|
}
|
|
@@ -4231,15 +4261,15 @@
|
|
|
4231
4261
|
}
|
|
4232
4262
|
|
|
4233
4263
|
.meta-container {
|
|
4234
|
-
@apply ml-1
|
|
4264
|
+
@apply mt-1 ml-1 hidden h-0 w-0 md:w-full md:flex md:flex-wrap opacity-75;
|
|
4235
4265
|
}
|
|
4236
|
-
|
|
4266
|
+
|
|
4237
4267
|
.sidebar .meta-container {
|
|
4238
4268
|
@apply text-gray-900;
|
|
4239
4269
|
}
|
|
4240
4270
|
|
|
4241
4271
|
.meta-item-container {
|
|
4242
|
-
@apply flex items-center;
|
|
4272
|
+
@apply flex items-center mr-2;
|
|
4243
4273
|
}
|
|
4244
4274
|
|
|
4245
4275
|
.meta-icon {
|
|
@@ -4251,14 +4281,51 @@
|
|
|
4251
4281
|
}
|
|
4252
4282
|
|
|
4253
4283
|
.search-container {
|
|
4254
|
-
@apply relative text-gray-400 focus-within:text-gray-600
|
|
4284
|
+
@apply relative inline-flex items-center bg-white text-gray-400 focus-within:text-gray-600 hover:shadow-sm border border-gray-200;
|
|
4255
4285
|
}
|
|
4256
4286
|
|
|
4287
|
+
/* .search-input {
|
|
4288
|
+
@apply pl-10 pr-20 w-60 bg-gray-50 rounded-sm text-sm text-gray-900 border-gray-400 placeholder-gray-500 outline-none focus:shadow focus:outline-none z-0;
|
|
4289
|
+
} */
|
|
4290
|
+
|
|
4257
4291
|
.search-input {
|
|
4258
|
-
@apply
|
|
4292
|
+
@apply w-60 rounded-sm text-sm text-gray-900 pt-2 pl-2 pb-2 placeholder-gray-500 outline-none border-0 focus:outline-none focus:ring-0;
|
|
4293
|
+
}
|
|
4294
|
+
|
|
4295
|
+
.search-button {
|
|
4296
|
+
@apply mr-1 text-xs focus:outline-none inline-flex items-center justify-center w-6 h-6 text-gray-800 hover:text-gray-900;
|
|
4259
4297
|
}
|
|
4260
4298
|
}
|
|
4261
4299
|
|
|
4300
|
+
@layer components {
|
|
4301
|
+
.combobox-wrapper {
|
|
4302
|
+
@apply relative mt-1;
|
|
4303
|
+
}
|
|
4304
|
+
|
|
4305
|
+
.combobox-input {
|
|
4306
|
+
@apply w-full rounded-md border border-gray-300 bg-white py-2 pl-3 pr-12 shadow-sm focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500 sm:text-sm;
|
|
4307
|
+
}
|
|
4308
|
+
|
|
4309
|
+
.combobox-icons {
|
|
4310
|
+
@apply absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none;
|
|
4311
|
+
}
|
|
4312
|
+
|
|
4313
|
+
.combobox-results {
|
|
4314
|
+
@apply absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm;
|
|
4315
|
+
}
|
|
4316
|
+
|
|
4317
|
+
.combobox-default-item-template {
|
|
4318
|
+
@apply hover:bg-gray-100 relative cursor-pointer select-none py-2 pl-3 pr-3 block truncate;
|
|
4319
|
+
}
|
|
4320
|
+
|
|
4321
|
+
.combobox-selected-item-wrapper {
|
|
4322
|
+
@apply relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:border-gray-400;
|
|
4323
|
+
}
|
|
4324
|
+
|
|
4325
|
+
.combobox-selected-item-remove-btn {
|
|
4326
|
+
@apply cursor-pointer bg-white rounded-md inline-flex text-gray-400 hover:text-gray-500;
|
|
4327
|
+
}
|
|
4328
|
+
}
|
|
4262
4329
|
|
|
4263
4330
|
.modal-active {
|
|
4264
4331
|
overflow: hidden;
|
|
File without changes
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FilterClause, QueryParameters, Operators } 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.filters = [];
|
|
13
|
+
this.menuOptions = [];
|
|
14
|
+
this.menuOptionsDictionary = {};
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
this.searchOptions.forEach((searchOption) => {
|
|
18
|
+
this.menuOptions.push({
|
|
19
|
+
text: searchOption.name,
|
|
20
|
+
value: searchOption.field,
|
|
21
|
+
data: searchOption.dataType,
|
|
22
|
+
description: searchOption.placeholder,
|
|
23
|
+
icon: undefined
|
|
24
|
+
});
|
|
25
|
+
if (searchOption.dataType === 'array') {
|
|
26
|
+
let menuOpts = [];
|
|
27
|
+
searchOption.options?.forEach((selectInputOption) => {
|
|
28
|
+
menuOpts.push({
|
|
29
|
+
text: selectInputOption.label,
|
|
30
|
+
value: selectInputOption.value,
|
|
31
|
+
data: undefined,
|
|
32
|
+
description: selectInputOption.description,
|
|
33
|
+
icon: undefined
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
this.menuOptionsDictionary[searchOption.field] = menuOpts;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
selectedFieldChanged(field) {
|
|
41
|
+
this.selectedField = this.searchOptions.find((searchOption) => searchOption.field === field);
|
|
42
|
+
this.fieldValue = undefined;
|
|
43
|
+
}
|
|
44
|
+
selectedFieldValueChanged(fieldValue) {
|
|
45
|
+
this.fieldValue = fieldValue;
|
|
46
|
+
}
|
|
47
|
+
search() {
|
|
48
|
+
if (!this.selectedField || !this.selectedField.dataType) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// the filter is of type 'daterange'
|
|
52
|
+
if (this.selectedField.dataType === 'daterange') {
|
|
53
|
+
if (!this.selectedField.multiTerm) {
|
|
54
|
+
this.filters = this.filters.filter((f) => {
|
|
55
|
+
return f.member !== QueryParameters.FILTER_FROM && f.member !== QueryParameters.FILTER_TO;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (this.fieldValueDateFrom) {
|
|
59
|
+
const filterClauseFrom = new FilterClause(QueryParameters.FILTER_FROM, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value, 'datetime', this.searchOptions);
|
|
60
|
+
this.filters.push(filterClauseFrom);
|
|
61
|
+
}
|
|
62
|
+
if (this.fieldValueDateTo) {
|
|
63
|
+
const filterClauseTo = new FilterClause(QueryParameters.FILTER_TO, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value, 'datetime', this.searchOptions);
|
|
64
|
+
this.filters.push(filterClauseTo);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// the filter isn't of type 'daterange' (everything else)
|
|
68
|
+
else {
|
|
69
|
+
if (this.fieldValue === undefined) { // handle empty field value
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
// create the filterClause
|
|
73
|
+
const filterClause = new FilterClause(this.selectedField.field, this.fieldValue, Operators.EQUALS.value, this.selectedField.dataType, this.searchOptions); // operator is always 'equals'...
|
|
74
|
+
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")
|
|
75
|
+
this.filters = this.filters.filter((f) => {
|
|
76
|
+
return f.member !== this.selectedField.field;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
else { // selectedField is multiTerm: just checking if we already have the newly selected filterClause in filters
|
|
80
|
+
const isDuplicate = this.filters.some(f => f.toString() === filterClause.toString());
|
|
81
|
+
if (isDuplicate) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
this.filters.push(filterClause);
|
|
86
|
+
this.fieldValue = undefined;
|
|
87
|
+
}
|
|
88
|
+
this.advancedSearchChanged.emit(this.filters);
|
|
89
|
+
}
|
|
90
|
+
removeFilter(index) {
|
|
91
|
+
if (this.filters && this.filters.length >= index) {
|
|
92
|
+
this.filters.splice(index, 1);
|
|
93
|
+
this.advancedSearchChanged.emit(this.filters);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
clear() {
|
|
97
|
+
this.fieldValueDateFrom = undefined;
|
|
98
|
+
this.fieldValueDateTo = undefined;
|
|
99
|
+
this.selectedField = undefined;
|
|
100
|
+
this.fieldValue = undefined;
|
|
101
|
+
this.filters = [];
|
|
102
|
+
this.advancedSearchChanged.emit(this.filters);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
AdvancedSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AdvancedSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
+
AdvancedSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: AdvancedSearchComponent, selector: "lib-advanced-search", inputs: { searchOptions: ["search-options", "searchOptions"], 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 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': fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined}\"\r\n [disabled]=\"fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined\"\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"] }] });
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: AdvancedSearchComponent, decorators: [{
|
|
108
|
+
type: Component,
|
|
109
|
+
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 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': fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined}\"\r\n [disabled]=\"fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined\"\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>" }]
|
|
110
|
+
}], ctorParameters: function () { return []; }, propDecorators: { advancedSearchChanged: [{
|
|
111
|
+
type: Output
|
|
112
|
+
}], searchOptions: [{
|
|
113
|
+
type: Input,
|
|
114
|
+
args: ['search-options']
|
|
115
|
+
}], filters: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}] } });
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hZHZhbmNlZC1zZWFyY2gvYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9hZHZhbmNlZC1zZWFyY2gvYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFnQixZQUFZLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7O0FBTWxGLE1BQU0sT0FBTyx1QkFBdUI7SUFXbEM7UUFWVSwwQkFBcUIsR0FBaUMsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFDMUUsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25ELFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUsvQiwwQkFBcUIsR0FBb0MsRUFBRSxDQUFDO0lBRW5ELENBQUM7SUFFVixRQUFRO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO2dCQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7Z0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsUUFBUTtnQkFDM0IsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxJQUFJLEVBQUUsU0FBUzthQUNoQixD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QUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7b0hBM0dVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDRNQ1JwQywydUpBMkZNOzJGRG5GTyx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UscUJBQXFCOzBFQUlyQixxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ2tCLGFBQWE7c0JBQXJDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUNkLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudU9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcclxuaW1wb3J0IHsgU2VhcmNoT3B0aW9uLCBGaWx0ZXJDbGF1c2UsIFF1ZXJ5UGFyYW1ldGVycywgT3BlcmF0b3JzIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWR2YW5jZWQtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBPdXRwdXQoKSBhZHZhbmNlZFNlYXJjaENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGaWx0ZXJDbGF1c2VbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNsYXVzZVtdPigpO1xyXG4gIEBJbnB1dCgnc2VhcmNoLW9wdGlvbnMnKSBzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGZpbHRlcnM6IEZpbHRlckNsYXVzZVtdID0gW107XHJcbiAgcHVibGljIG1lbnVPcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRGaWVsZD86IFNlYXJjaE9wdGlvbjtcclxuICBwdWJsaWMgZmllbGRWYWx1ZT86IHN0cmluZztcclxuICBwdWJsaWMgZmllbGRWYWx1ZURhdGVGcm9tOiBhbnk7XHJcbiAgcHVibGljIGZpZWxkVmFsdWVEYXRlVG86IGFueTtcclxuICBwdWJsaWMgbWVudU9wdGlvbnNEaWN0aW9uYXJ5OiB7IFtrZXk6IHN0cmluZ106IE1lbnVPcHRpb25bXSB9ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoT3B0aW9ucy5mb3JFYWNoKChzZWFyY2hPcHRpb24pID0+IHtcclxuICAgICAgdGhpcy5tZW51T3B0aW9ucy5wdXNoKHtcclxuICAgICAgICB0ZXh0OiBzZWFyY2hPcHRpb24ubmFtZSxcclxuICAgICAgICB2YWx1ZTogc2VhcmNoT3B0aW9uLmZpZWxkLFxyXG4gICAgICAgIGRhdGE6IHNlYXJjaE9wdGlvbi5kYXRhVHlwZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogc2VhcmNoT3B0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICAgIGljb246IHVuZGVmaW5lZFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHNlYXJjaE9wdGlvbi5kYXRhVHlwZSA9PT0gJ2FycmF5Jykge1xyXG4gICAgICAgIGxldCBtZW51T3B0czogTWVudU9wdGlvbltdID0gW107XHJcbiAgICAgICAgc2VhcmNoT3B0aW9uLm9wdGlvbnM/LmZvckVhY2goKHNlbGVjdElucHV0T3B0aW9uKSA9PiB7XHJcbiAgICAgICAgICBtZW51T3B0cy5wdXNoKHtcclxuICAgICAgICAgICAgdGV4dDogc2VsZWN0SW5wdXRPcHRpb24ubGFiZWwsXHJcbiAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RJbnB1dE9wdGlvbi52YWx1ZSxcclxuICAgICAgICAgICAgZGF0YTogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2VsZWN0SW5wdXRPcHRpb24uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIGljb246IHVuZGVmaW5lZFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLm1lbnVPcHRpb25zRGljdGlvbmFyeVtzZWFyY2hPcHRpb24uZmllbGRdID0gbWVudU9wdHM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkRmllbGRDaGFuZ2VkKGZpZWxkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCA9IHRoaXMuc2VhcmNoT3B0aW9ucy5maW5kKChzZWFyY2hPcHRpb24pID0+IHNlYXJjaE9wdGlvbi5maWVsZCA9PT0gZmllbGQpO1xyXG4gICAgdGhpcy5maWVsZFZhbHVlID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkRmllbGRWYWx1ZUNoYW5nZWQoZmllbGRWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlYXJjaCgpIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZEZpZWxkIHx8ICF0aGlzLnNlbGVjdGVkRmllbGQuZGF0YVR5cGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gdGhlIGZpbHRlciBpcyBvZiB0eXBlICdkYXRlcmFuZ2UnXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnZGF0ZXJhbmdlJykge1xyXG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGaWVsZC5tdWx0aVRlcm0pIHtcclxuICAgICAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKChmKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZi5tZW1iZXIgIT09IFF1ZXJ5UGFyYW1ldGVycy5GSUxURVJfRlJPTSAmJiBmLm1lbWJlciAhPT0gUXVlcnlQYXJhbWV0ZXJzLkZJTFRFUl9UTztcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5maWVsZFZhbHVlRGF0ZUZyb20pIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJDbGF1c2VGcm9tID0gbmV3IEZpbHRlckNsYXVzZShRdWVyeVBhcmFtZXRlcnMuRklMVEVSX0ZST00sIHRoaXMuZmllbGRWYWx1ZURhdGVGcm9tLCBPcGVyYXRvcnMuR1JFQVRFUl9USEFOX0VRVUFMLnZhbHVlIGFzIEZpbHRlckNsYXVzZS5PcCwgJ2RhdGV0aW1lJywgdGhpcy5zZWFyY2hPcHRpb25zKTtcclxuICAgICAgICB0aGlzLmZpbHRlcnMucHVzaChmaWx0ZXJDbGF1c2VGcm9tKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZmllbGRWYWx1ZURhdGVUbykge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlckNsYXVzZVRvID0gbmV3IEZpbHRlckNsYXVzZShRdWVyeVBhcmFtZXRlcnMuRklMVEVSX1RPLCB0aGlzLmZpZWxkVmFsdWVEYXRlVG8sIE9wZXJhdG9ycy5MRVNTX1RIQU5fRVFVQUwudmFsdWUgYXMgRmlsdGVyQ2xhdXNlLk9wLCAnZGF0ZXRpbWUnLCB0aGlzLnNlYXJjaE9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuZmlsdGVycy5wdXNoKGZpbHRlckNsYXVzZVRvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdGhlIGZpbHRlciBpc24ndCBvZiB0eXBlICdkYXRlcmFuZ2UnIChldmVyeXRoaW5nIGVsc2UpXHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7IC8vIGhhbmRsZSBlbXB0eSBmaWVsZCB2YWx1ZVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICAvLyBjcmVhdGUgdGhlIGZpbHRlckNsYXVzZVxyXG4gICAgICBjb25zdCBmaWx0ZXJDbGF1c2UgPSBuZXcgRmlsdGVyQ2xhdXNlKHRoaXMuc2VsZWN0ZWRGaWVsZC5maWVsZCwgdGhpcy5maWVsZFZhbHVlLCBPcGVyYXRvcnMuRVFVQUxTLnZhbHVlIGFzIEZpbHRlckNsYXVzZS5PcCwgdGhpcy5zZWxlY3RlZEZpZWxkLmRhdGFUeXBlLCB0aGlzLnNlYXJjaE9wdGlvbnMpOyAvLyBvcGVyYXRvciBpcyBhbHdheXMgJ2VxdWFscycuLi5cclxuXHJcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZEZpZWxkLm11bHRpVGVybSkgeyAvLyBtdWx0aVRlcm0gbWVhbnMgdGhhdCB3ZSBjYW4gaGF2ZSBtdWx0aXBsZSBmaWx0ZXIgdmFsdWVzIG9mIHRoZSBTQU1FIGZpbHRlciBjbGF1c2UgKGVnIFwiZmlsdGVyIGNhc2UgdHlwZXMgdGhhdCBhcmUgUGhvbmUgT1IgQWRkcmVzc1wiKVxyXG4gICAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVycy5maWx0ZXIoKGYpID0+IHtcclxuICAgICAgICAgIHJldHVybiBmLm1lbWJlciAhPT0gdGhpcy5zZWxlY3RlZEZpZWxkIS5maWVsZDtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHsgLy8gc2VsZWN0ZWRGaWVsZCBpcyBtdWx0aVRlcm06IGp1c3QgY2hlY2tpbmcgaWYgd2UgYWxyZWFkeSBoYXZlIHRoZSBuZXdseSBzZWxlY3RlZCBmaWx0ZXJDbGF1c2UgaW4gZmlsdGVyc1xyXG4gICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gdGhpcy5maWx0ZXJzLnNvbWUoZiA9PiBmLnRvU3RyaW5nKCkgPT09IGZpbHRlckNsYXVzZS50b1N0cmluZygpKTtcclxuICAgICAgICBpZiAoaXNEdXBsaWNhdGUpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZmlsdGVycy5wdXNoKGZpbHRlckNsYXVzZSk7XHJcbiAgICAgIHRoaXMuZmllbGRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHRoaXMuYWR2YW5jZWRTZWFyY2hDaGFuZ2VkLmVtaXQodGhpcy5maWx0ZXJzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVGaWx0ZXIoaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVycyAmJiB0aGlzLmZpbHRlcnMubGVuZ3RoID49IGluZGV4KSB7XHJcbiAgICAgIHRoaXMuZmlsdGVycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLmFkdmFuY2VkU2VhcmNoQ2hhbmdlZC5lbWl0KHRoaXMuZmlsdGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXIoKSB7XHJcbiAgICB0aGlzLmZpZWxkVmFsdWVEYXRlRnJvbSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZmllbGRWYWx1ZURhdGVUbyA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZmllbGRWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZmlsdGVycyA9IFtdO1xyXG4gICAgdGhpcy5hZHZhbmNlZFNlYXJjaENoYW5nZWQuZW1pdCh0aGlzLmZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtZmlsdGVyXCI+XHJcbiAgICAgICAgPCEtLVNFQVJDSCBGSUVMRFMtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci1maWVsZC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci1maWVsZC1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICBmb3I9XCJzZWxlY3RlZEZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICDOkc69zrHOts6uz4TOt8+DzrcgzrHOvc6sOlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8bGliLWRyb3AtZG93bi1tZW51IFtvcHRpb25zXT1cIm1lbnVPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2VkKT1cInNlbGVjdGVkRmllbGRDaGFuZ2VkKCRldmVudClcIj48L2xpYi1kcm9wLWRvd24tbWVudT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tU0VBUkNIIEZJRUxEUyBJTlBVVC0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpZWxkXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci12YWx1ZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkRmllbGQuZGF0YVR5cGUgPT09ICdhcnJheSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZpZWxkVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8bGliLWRyb3AtZG93bi1tZW51IFtvcHRpb25zXT1cIm1lbnVPcHRpb25zRGljdGlvbmFyeVtzZWxlY3RlZEZpZWxkLmZpZWxkXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJmaWVsZFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlZCk9XCJzZWxlY3RlZEZpZWxkVmFsdWVDaGFuZ2VkKCRldmVudClcIj48L2xpYi1kcm9wLWRvd24tbWVudT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnc3RyaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWR2YW5jZWQtc2VhcmNoLWZpbHRlci12YWx1ZS1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZmllbGRWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCAoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZpZWxkVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIs6Rzr3Osc62zq7PhM63z4POt1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMzAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtaW5wdXRcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpZWxkLmRhdGFUeXBlID09PSAnZGF0ZXJhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtaW5wdXQtZGF0ZXJhbmdlLWZyb21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgzpHPgM+MOlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWRhdGUtcGlja2VyIFttYXhEYXRlXT1cImZpZWxkVmFsdWVEYXRlVG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWVsZFZhbHVlRGF0ZUZyb21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIicwMS8wMS8yMDIyJ1wiPjwvbGliLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRGaWVsZC5kYXRhVHlwZSA9PT0gJ2RhdGVyYW5nZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmFuY2VkLXNlYXJjaC1maWx0ZXItdmFsdWUtaW5wdXQtZGF0ZXJhbmdlLXRvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIM6Iz4nPgjpcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1kYXRlLXBpY2tlciBbbWluRGF0ZV09XCJmaWVsZFZhbHVlRGF0ZUZyb21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWVsZFZhbHVlRGF0ZVRvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInMDEvMDEvMjAyMidcIj48L2xpYi1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRGaWVsZFwiPlxyXG4gICAgICAgICAgICA8IS0tRE8gU0VBUkNILS0+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydvcGFjaXR5LTUwIGN1cnNvci1ub3QtYWxsb3dlZCc6IGZpZWxkVmFsdWUgPT09IHVuZGVmaW5lZCAmJiBmaWVsZFZhbHVlRGF0ZUZyb20gPT09IHVuZGVmaW5lZCAmJiBmaWVsZFZhbHVlRGF0ZVRvID09PSB1bmRlZmluZWR9XCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIGZpZWxkVmFsdWVEYXRlRnJvbSA9PT0gdW5kZWZpbmVkICYmIGZpZWxkVmFsdWVEYXRlVG8gPT09IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlYXJjaCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ21zLUljb24gbXMtSWNvbi0tU2VhcmNoJ1wiPjwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwhLS1DTEVBUi0tPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ21zLUljb24gbXMtSWNvbi0tQ2FuY2VsJ1wiPjwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS1GSUxURVIgQ0hJUFMtLT5cclxuICAgIDwhLS0gVGhpcyBleGFtcGxlIHJlcXVpcmVzIFRhaWx3aW5kIENTUyB2Mi4wKyAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJmaWx0ZXIgJiYgZmlsdGVyLm1lbWJlclwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtY2hpcHNcIj5cclxuICAgICAgICAgICAge3sgZmlsdGVyLnVpTmFtZSB9fSB7eyBmaWx0ZXIudWlPcGVyYXRvciB9fSAne3sgZmlsdGVyLnVpVmFsdWUgfX0nXHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlbW92ZUZpbHRlcihpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZHZhbmNlZC1zZWFyY2gtY2hpcHMtcmVtb3ZlLWZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+UmVtb3ZlIGxhcmdlIG9wdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJoLTIgdy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDggOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xIDFsNiA2bTAtNkwxIDdcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,90 @@
|
|
|
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 class FilterClause {
|
|
26
|
+
constructor(member, value, operator, dataType, searchOptions) {
|
|
27
|
+
this.member = member;
|
|
28
|
+
this.value = value;
|
|
29
|
+
this.operator = operator || Operators.EQUALS.value;
|
|
30
|
+
this.dataType = dataType === undefined ? 'string' : dataType;
|
|
31
|
+
// uiName
|
|
32
|
+
if (this.dataType === 'datetime') { // special treatment for dates
|
|
33
|
+
this.uiName = this.member === QueryParameters.FILTER_FROM ? 'Από' : 'Έως';
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.uiName = this.member;
|
|
37
|
+
let fo = {};
|
|
38
|
+
if (searchOptions && searchOptions.length > 0) {
|
|
39
|
+
fo = searchOptions.find((f) => {
|
|
40
|
+
return f.field === this.member;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (fo) {
|
|
44
|
+
this.uiName = fo.name;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// uiOperator
|
|
48
|
+
this.uiOperator = this.dataType === 'datetime' ? '' : Operators.EQUALS.label; // that's fine (for now)...
|
|
49
|
+
// uiValue
|
|
50
|
+
this.uiValue = this.value;
|
|
51
|
+
if ((this.dataType === 'datetime')) {
|
|
52
|
+
this.uiValue = formatDate(new Date(this.value), 'dd/MM/yyyy', 'en-US');
|
|
53
|
+
}
|
|
54
|
+
let fo;
|
|
55
|
+
if (searchOptions && searchOptions.length > 0) {
|
|
56
|
+
fo = searchOptions.find((f) => {
|
|
57
|
+
return f.field === this.member;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (fo && fo.options) { // special treatment for arrays, if there is an options property then it is an array
|
|
61
|
+
this.dataType = 'array';
|
|
62
|
+
this.uiValue = fo.options.find((option) => {
|
|
63
|
+
return option.value === this.value;
|
|
64
|
+
})?.label;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static parse(text) {
|
|
68
|
+
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;
|
|
69
|
+
if (text != null) {
|
|
70
|
+
const matches = pattern.exec(text);
|
|
71
|
+
if (matches != null) {
|
|
72
|
+
const path = matches[1];
|
|
73
|
+
const op = matches[2];
|
|
74
|
+
const dt = matches[4];
|
|
75
|
+
const v = matches[5];
|
|
76
|
+
return new FilterClause(path, v, op, dt);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
toString() {
|
|
82
|
+
if (this.dataType !== 'string' && this.dataType !== 'array') {
|
|
83
|
+
return `${this.member}::${this.operator}::(${this.dataType})${this.value}`;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return `${this.member}::${this.operator}::${this.value}`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2FkdmFuY2VkLXNlYXJjaC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE1BQU0sS0FBVyxTQUFTLENBU3pCO0FBVEQsV0FBaUIsU0FBUztJQUNYLGdCQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzVELG9CQUFVLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3RFLHNCQUFZLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDMUUsbUJBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLENBQUM7SUFDdEUsNEJBQWtCLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLENBQUM7SUFDdEYseUJBQWUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztJQUNsRixrQkFBUSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN0RSxZQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUs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S0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBPcGVyYXRvcnMge1xyXG4gIGV4cG9ydCBjb25zdCBFUVVBTFMgPSB7IGxhYmVsOiAnPScsIHZhbHVlOiAnZXEnLCBkZXNjcmlwdGlvbjogJ86Kz4POvyDOvM61JyB9O1xyXG4gIGV4cG9ydCBjb25zdCBOT1RfRVFVQUxTID0geyBsYWJlbDogJ+KJoCcsIHZhbHVlOiAnbmVxJywgZGVzY3JpcHRpb246ICfOlM65zqzPhs6/z4HOvyDPhM6/z4UnIH07XHJcbiAgZXhwb3J0IGNvbnN0IEdSRUFURVJfVEhBTiA9IHsgbGFiZWw6ICc+JywgdmFsdWU6ICdndCcsIGRlc2NyaXB0aW9uOiAnzpzOtc6zzrHOu8+Nz4TOtc+Bzr8gzrHPgM+MJyB9O1xyXG4gIGV4cG9ydCBjb25zdCBMRVNTX1RIQU4gPSB7IGxhYmVsOiAnPCcsIHZhbHVlOiAnbHQnLCBkZXNjcmlwdGlvbjogJ86czrnOus+Bz4zPhM61z4HOvyDOsc+Az4wnIH07XHJcbiAgZXhwb3J0IGNvbnN0IEdSRUFURVJfVEhBTl9FUVVBTCA9IHsgbGFiZWw6ICfiiaUnLCB2YWx1ZTogJ2d0ZScsIGRlc2NyaXB0aW9uOiAnzpzOtc6zzrHOu8+Nz4TOtc+Bzr8gzq4gzq/Pg86/IM68zrUnIH07XHJcbiAgZXhwb3J0IGNvbnN0IExFU1NfVEhBTl9FUVVBTCA9IHsgbGFiZWw6ICfiiaQnLCB2YWx1ZTogJ2x0ZScsIGRlc2NyaXB0aW9uOiAnzpzOuc66z4HPjM+EzrXPgc6/IM6uIM6vz4POvyDOvM61JyB9O1xyXG4gIGV4cG9ydCBjb25zdCBDT05UQUlOUyA9IHsgbGFiZWw6ICfiiIsnLCB2YWx1ZTogJ2NvbnRhaW5zJywgZGVzY3JpcHRpb246ICfOoM61z4HOuc6tz4fOtc65JyB9O1xyXG4gIGV4cG9ydCBjb25zdCBJTiA9IHsgbGFiZWw6ICcxLi5uJywgdmFsdWU6ICdpbicsIGRlc2NyaXB0aW9uOiAnzpzOrc+DzrEgz4POtScgfTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUXVlcnlQYXJhbWV0ZXJzIHtcclxuICBWSUVXID0gJ3ZpZXcnLFxyXG4gIFBBR0VfU0laRSA9ICdwYWdlc2l6ZScsXHJcbiAgUEFHRSA9ICdwYWdlJyxcclxuICBTRUFSQ0ggPSAnc2VhcmNoJyxcclxuICBTT1JUX0ZJRUxEID0gJ3NvcnQnLFxyXG4gIFNPUlRfRElSRUNUSU9OID0gJ2RpcicsXHJcbiAgRklMVEVSID0gJ2ZpbHRlcicsXHJcbiAgRklMVEVSX0ZST00gPSAnZnJvbScsXHJcbiAgRklMVEVSX1RPID0gJ3RvJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaE9wdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IEZpbHRlckNsYXVzZS5EdDtcclxuICBhcnJheT86IGJvb2xlYW47XHJcbiAgbXVsdGlUZXJtPzogYm9vbGVhbjtcclxuICBvcHRpb25zPzogU2VsZWN0SW5wdXRPcHRpb25bXTtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RJbnB1dE9wdGlvbiB7XHJcbiAgdmFsdWU6IGFueTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIEZpbHRlckNsYXVzZSB7XHJcbiAgZXhwb3J0IHR5cGUgT3AgPSAnZXEnIHwgJ25lcScgfCAnZ3QnIHwgJ2x0JyB8ICdndGUnIHwgJ2x0ZScgfCAnY29udGFpbnMnIHwgJ2luJztcclxuICBleHBvcnQgdHlwZSBEdCA9ICdzdHJpbmcnIHwgJ2ludGVnZXInIHwgJ251bWJlcicgfCAnYm9vbGVhbicgfCAnZGF0ZXRpbWUnIHwgJ2FycmF5JyB8ICdkYXRlcmFuZ2UnIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ2xhdXNlIHtcclxuICAvLyBNZW1iZXIgcGF0aCB0byBjb21wYXJlXHJcbiAgcHVibGljIG1lbWJlcjogc3RyaW5nO1xyXG4gIC8vIFZhbHVlIHRvIGNvbXBhcmUgYWdhaW5zdFxyXG4gIHB1YmxpYyB2YWx1ZTogYW55O1xyXG4gIC8vIFRoZSBvcGVyYXRvciB0byBhcHBseSBiZXR3ZWVuIHRoZSBJbmRpY2UuVHlwZXMuRmlsdGVyQ2xhdXNlLk1lbWJlciBhbmQgSW5kaWNlLlR5cGVzLkZpbHRlckNsYXVzZS5WYWx1ZVxyXG4gIHB1YmxpYyBvcGVyYXRvcjogRmlsdGVyQ2xhdXNlLk9wO1xyXG4gIC8vIFRoZSBJbmRpY2UuVHlwZXMuSnNvbkRhdGFUeXBlIG9mIHRoZSBkYXRhIEluZGljZS5UeXBlcy5GaWx0ZXJDbGF1c2UuTWVtYmVyXHJcbiAgcHVibGljIGRhdGFUeXBlOiBGaWx0ZXJDbGF1c2UuRHQ7XHJcblxyXG4gIHB1YmxpYyB1aU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgdWlPcGVyYXRvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyB1aVZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZW1iZXI6IHN0cmluZywgdmFsdWU6IGFueSwgb3BlcmF0b3I/OiBGaWx0ZXJDbGF1c2UuT3AsIGRhdGFUeXBlPzogRmlsdGVyQ2xhdXNlLkR0LCBzZWFyY2hPcHRpb25zPzogU2VhcmNoT3B0aW9uW10pIHsgLy8geWVhcCwgd2UgZG8gbmVlZCBzZWFyY2hPcHRpb25zIGZvciB0aGUgdWkgdmlldyBtb2RlbFxyXG4gICAgdGhpcy5tZW1iZXIgPSBtZW1iZXI7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLm9wZXJhdG9yID0gb3BlcmF0b3IgfHwgT3BlcmF0b3JzLkVRVUFMUy52YWx1ZSBhcyBGaWx0ZXJDbGF1c2UuT3A7XHJcbiAgICB0aGlzLmRhdGFUeXBlID0gZGF0YVR5cGUgPT09IHVuZGVmaW5lZCA/ICdzdHJpbmcnIDogZGF0YVR5cGU7XHJcbiAgICAvLyB1aU5hbWVcclxuICAgIGlmICh0aGlzLmRhdGFUeXBlID09PSAnZGF0ZXRpbWUnKSB7IC8vIHNwZWNpYWwgdHJlYXRtZW50IGZvciBkYXRlc1xyXG4gICAgICB0aGlzLnVpTmFtZSA9IHRoaXMubWVtYmVyID09PSBRdWVyeVBhcmFtZXRlcnMuRklMVEVSX0ZST00gPyAnzpHPgM+MJyA6ICfOiM+Jz4InO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51aU5hbWUgPSB0aGlzLm1lbWJlcjtcclxuICAgICAgbGV0IGZvID0gPGFueT57fTtcclxuICAgICAgaWYgKHNlYXJjaE9wdGlvbnMgJiYgc2VhcmNoT3B0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZm8gPSBzZWFyY2hPcHRpb25zLmZpbmQoKGYpID0+IHtcclxuICAgICAgICAgIHJldHVybiBmLmZpZWxkID09PSB0aGlzLm1lbWJlcjtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGZvKSB7XHJcbiAgICAgICAgdGhpcy51aU5hbWUgPSBmby5uYW1lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB1aU9wZXJhdG9yXHJcbiAgICB0aGlzLnVpT3BlcmF0b3IgPSB0aGlzLmRhdGFUeXBlID09PSAnZGF0ZXRpbWUnID8gJycgOiBPcGVyYXRvcnMuRVFVQUxTLmxhYmVsOyAvLyB0aGF0J3MgZmluZSAoZm9yIG5vdykuLi5cclxuICAgIC8vIHVpVmFsdWVcclxuICAgIHRoaXMudWlWYWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICBpZiAoKHRoaXMuZGF0YVR5cGUgPT09ICdkYXRldGltZScpKSB7XHJcbiAgICAgIHRoaXMudWlWYWx1ZSA9IGZvcm1hdERhdGUobmV3IERhdGUodGhpcy52YWx1ZSksICdkZC9NTS95eXl5JywgJ2VuLVVTJyk7XHJcbiAgICB9XHJcbiAgICBsZXQgZm86IFNlYXJjaE9wdGlvbiB8IHVuZGVmaW5lZDtcclxuICAgIGlmIChzZWFyY2hPcHRpb25zICYmIHNlYXJjaE9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmbyA9IHNlYXJjaE9wdGlvbnMuZmluZCgoZikgPT4ge1xyXG4gICAgICAgIHJldHVybiBmLmZpZWxkID09PSB0aGlzLm1lbWJlcjtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoZm8gJiYgZm8ub3B0aW9ucykgeyAvLyBzcGVjaWFsIHRyZWF0bWVudCBmb3IgYXJyYXlzLCBpZiB0aGVyZSBpcyBhbiBvcHRpb25zIHByb3BlcnR5IHRoZW4gaXQgaXMgYW4gYXJyYXlcclxuICAgICAgdGhpcy5kYXRhVHlwZSA9ICdhcnJheSc7XHJcbiAgICAgIHRoaXMudWlWYWx1ZSA9IGZvIS5vcHRpb25zIS5maW5kKChvcHRpb24pID0+IHtcclxuICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlID09PSB0aGlzLnZhbHVlO1xyXG4gICAgICB9KT8ubGFiZWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHBhcnNlKHRleHQ6IHN0cmluZyk6IEZpbHRlckNsYXVzZSB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gL15cXHMqKFtBLVphLXpfXVtBLVphLXowLTlfXFwuXSspOjooZXF8bmVxfGd0fGx0fGd0ZXxsdGV8Y29udGFpbnN8aW4pOjooXFwoKHN0cmluZ3xpbnRlZ2VyfG51bWJlcnxib29sZWFufGRhdGV0aW1lKVxcKSk/KC4rKVxccyokL2dpO1xyXG4gICAgaWYgKHRleHQgIT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBtYXRjaGVzID0gcGF0dGVybi5leGVjKHRleHQpO1xyXG4gICAgICBpZiAobWF0Y2hlcyAhPSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IG1hdGNoZXNbMV07XHJcbiAgICAgICAgY29uc3Qgb3AgPSA8RmlsdGVyQ2xhdXNlLk9wPm1hdGNoZXNbMl07XHJcbiAgICAgICAgY29uc3QgZHQgPSA8RmlsdGVyQ2xhdXNlLkR0Pm1hdGNoZXNbNF07XHJcbiAgICAgICAgY29uc3QgdiA9IG1hdGNoZXNbNV07XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyQ2xhdXNlKHBhdGgsIHYsIG9wLCBkdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmRhdGFUeXBlICE9PSAnc3RyaW5nJyAmJiB0aGlzLmRhdGFUeXBlICE9PSAnYXJyYXknKSB7XHJcbiAgICAgIHJldHVybiBgJHt0aGlzLm1lbWJlcn06OiR7dGhpcy5vcGVyYXRvcn06Oigke3RoaXMuZGF0YVR5cGV9KSR7dGhpcy52YWx1ZX1gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGAke3RoaXMubWVtYmVyfTo6JHt0aGlzLm9wZXJhdG9yfTo6JHt0aGlzLnZhbHVlfWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|