monkey-front-components 0.0.384 → 0.0.387
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/esm2020/lib/components/base/base-component.mjs +322 -0
- package/esm2020/lib/components/base/base-dynamic-array.mjs +221 -0
- package/esm2020/lib/components/base/base-dynamic.mjs +99 -0
- package/esm2020/lib/components/base/base-scroll-component.mjs +55 -0
- package/esm2020/lib/components/base/base-validators.mjs +19 -0
- package/esm2020/lib/components/base/index.mjs +6 -0
- package/esm2020/lib/components/dynamic/button/button.component.mjs +52 -0
- package/esm2020/lib/components/dynamic/button/index.mjs +2 -0
- package/esm2020/lib/components/dynamic/dynamic-directive.mjs +95 -0
- package/esm2020/lib/components/dynamic/dynamic.module.mjs +84 -0
- package/esm2020/lib/components/dynamic/file-upload/file-upload.component.mjs +52 -0
- package/esm2020/lib/components/dynamic/file-upload/index.mjs +2 -0
- package/esm2020/lib/components/dynamic/form/dynamic-form-array.component.mjs +72 -0
- package/esm2020/lib/components/dynamic/form/dynamic-form.component.mjs +46 -0
- package/esm2020/lib/components/dynamic/form/index.mjs +3 -0
- package/esm2020/lib/components/dynamic/index.mjs +9 -0
- package/esm2020/lib/components/dynamic/input/index.mjs +2 -0
- package/esm2020/lib/components/dynamic/input/input.component.mjs +65 -0
- package/esm2020/lib/components/dynamic/input-phone/index.mjs +2 -0
- package/esm2020/lib/components/dynamic/input-phone/input-phone.component.mjs +65 -0
- package/esm2020/lib/components/dynamic/radio/index.mjs +2 -0
- package/esm2020/lib/components/dynamic/radio/radio.component.mjs +33 -0
- package/esm2020/lib/components/dynamic/select/index.mjs +2 -0
- package/esm2020/lib/components/dynamic/select/select.component.mjs +80 -0
- package/esm2020/lib/components/dynamic/select-search/index.mjs +2 -0
- package/esm2020/lib/components/dynamic/select-search/select-search.component.mjs +80 -0
- package/esm2020/lib/components/index.mjs +4 -0
- package/esm2020/lib/components/shared/filter/filter.component.mjs +119 -0
- package/esm2020/lib/components/shared/filter/filter.module.mjs +63 -0
- package/esm2020/lib/components/shared/filter/index.mjs +3 -0
- package/esm2020/lib/components/shared/filter/menu/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/menu/menu.component.mjs +120 -0
- package/esm2020/lib/components/shared/filter/menu/menu.module.mjs +70 -0
- package/esm2020/lib/components/shared/filter/options/children/children.component.mjs +50 -0
- package/esm2020/lib/components/shared/filter/options/children/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/options/currency/currency.component.mjs +46 -0
- package/esm2020/lib/components/shared/filter/options/currency/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/options/date-range/date-range.component.mjs +65 -0
- package/esm2020/lib/components/shared/filter/options/date-range/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/options/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/options/input/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/options/input/input.component.mjs +46 -0
- package/esm2020/lib/components/shared/filter/options/options.component.mjs +68 -0
- package/esm2020/lib/components/shared/filter/options/options.module.mjs +95 -0
- package/esm2020/lib/components/shared/filter/options/status/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/options/status/status.component.mjs +66 -0
- package/esm2020/lib/components/shared/filter/selected/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/selected/item/children/children.component.mjs +57 -0
- package/esm2020/lib/components/shared/filter/selected/item/children/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/selected/item/currency/currency.component.mjs +29 -0
- package/esm2020/lib/components/shared/filter/selected/item/currency/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/selected/item/date-range/date-range.component.mjs +42 -0
- package/esm2020/lib/components/shared/filter/selected/item/date-range/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.mjs +33 -0
- package/esm2020/lib/components/shared/filter/selected/item/date-with-action/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/selected/item/index.mjs +8 -0
- package/esm2020/lib/components/shared/filter/selected/item/input/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/selected/item/input/input.component.mjs +28 -0
- package/esm2020/lib/components/shared/filter/selected/item/item.component.mjs +74 -0
- package/esm2020/lib/components/shared/filter/selected/item/status/index.mjs +2 -0
- package/esm2020/lib/components/shared/filter/selected/item/status/status.component.mjs +39 -0
- package/esm2020/lib/components/shared/filter/selected/selected.component.mjs +80 -0
- package/esm2020/lib/components/shared/filter/selected/selected.module.mjs +90 -0
- package/esm2020/lib/components/shared/index.mjs +5 -0
- package/esm2020/lib/components/shared/password-strength/index.mjs +3 -0
- package/esm2020/lib/components/shared/password-strength/password-strength.component.mjs +85 -0
- package/esm2020/lib/components/shared/password-strength/password-strength.mjs +2 -0
- package/esm2020/lib/components/shared/password-strength/password-strength.module.mjs +50 -0
- package/esm2020/lib/components/shared/products/filter/filter.component.mjs +36 -0
- package/esm2020/lib/components/shared/products/index.mjs +3 -0
- package/esm2020/lib/components/shared/products/products.component.mjs +91 -0
- package/esm2020/lib/components/shared/products/products.module.mjs +22 -0
- package/esm2020/lib/components/shared/products/providers/index.mjs +2 -0
- package/esm2020/lib/components/shared/products/providers/products.model.mjs +38 -0
- package/esm2020/lib/components/shared/progress-bar/index.mjs +4 -0
- package/esm2020/lib/components/shared/progress-bar/progress-bar.component.mjs +28 -0
- package/esm2020/lib/components/shared/progress-bar/progress-bar.module.mjs +18 -0
- package/esm2020/lib/components/shared/progress-bar/progress-bar.service.mjs +49 -0
- package/esm2020/lib/interfaces/field-config.mjs +2 -0
- package/esm2020/lib/interfaces/index.mjs +2 -0
- package/esm2020/monkey-front-components.mjs +5 -0
- package/esm2020/public-api.mjs +5 -0
- package/fesm2015/monkey-front-components.mjs +2877 -0
- package/fesm2015/monkey-front-components.mjs.map +1 -0
- package/fesm2020/monkey-front-components.mjs +2859 -0
- package/fesm2020/monkey-front-components.mjs.map +1 -0
- package/lib/components/base/base-component.d.ts +50 -0
- package/lib/components/base/base-dynamic-array.d.ts +34 -0
- package/lib/components/base/base-dynamic.d.ts +24 -0
- package/lib/components/base/base-scroll-component.d.ts +16 -0
- package/lib/components/base/base-validators.d.ts +1 -0
- package/{src/lib/components/base/index.ts → lib/components/base/index.d.ts} +5 -5
- package/lib/components/dynamic/button/button.component.d.ts +17 -0
- package/{src/lib/components/dynamic/button/index.ts → lib/components/dynamic/button/index.d.ts} +1 -1
- package/lib/components/dynamic/dynamic-directive.d.ts +22 -0
- package/lib/components/dynamic/dynamic.module.d.ts +20 -0
- package/lib/components/dynamic/file-upload/file-upload.component.d.ts +17 -0
- package/{src/lib/components/dynamic/file-upload/index.ts → lib/components/dynamic/file-upload/index.d.ts} +1 -1
- package/lib/components/dynamic/form/dynamic-form-array.component.d.ts +16 -0
- package/lib/components/dynamic/form/dynamic-form.component.d.ts +14 -0
- package/{src/lib/components/dynamic/form/index.ts → lib/components/dynamic/form/index.d.ts} +2 -2
- package/{src/lib/components/dynamic/index.ts → lib/components/dynamic/index.d.ts} +8 -8
- package/{src/lib/components/dynamic/input/index.ts → lib/components/dynamic/input/index.d.ts} +1 -1
- package/lib/components/dynamic/input/input.component.d.ts +20 -0
- package/{src/lib/components/dynamic/input-phone/index.ts → lib/components/dynamic/input-phone/index.d.ts} +1 -1
- package/lib/components/dynamic/input-phone/input-phone.component.d.ts +20 -0
- package/{src/lib/components/dynamic/radio/index.ts → lib/components/dynamic/radio/index.d.ts} +1 -1
- package/lib/components/dynamic/radio/radio.component.d.ts +11 -0
- package/{src/lib/components/dynamic/select/index.ts → lib/components/dynamic/select/index.d.ts} +1 -1
- package/lib/components/dynamic/select/select.component.d.ts +16 -0
- package/{src/lib/components/dynamic/select-search/index.ts → lib/components/dynamic/select-search/index.d.ts} +1 -1
- package/lib/components/dynamic/select-search/select-search.component.d.ts +16 -0
- package/{src/lib/components/index.ts → lib/components/index.d.ts} +3 -3
- package/lib/components/shared/filter/filter.component.d.ts +32 -0
- package/lib/components/shared/filter/filter.module.d.ts +14 -0
- package/{src/lib/components/shared/filter/index.ts → lib/components/shared/filter/index.d.ts} +2 -2
- package/{src/lib/components/shared/filter/menu/index.ts → lib/components/shared/filter/menu/index.d.ts} +1 -1
- package/lib/components/shared/filter/menu/menu.component.d.ts +24 -0
- package/lib/components/shared/filter/menu/menu.module.d.ts +14 -0
- package/lib/components/shared/filter/options/children/children.component.d.ts +17 -0
- package/{src/lib/components/shared/filter/options/children/index.ts → lib/components/shared/filter/options/children/index.d.ts} +1 -1
- package/lib/components/shared/filter/options/currency/currency.component.d.ts +17 -0
- package/{src/lib/components/shared/filter/options/currency/index.ts → lib/components/shared/filter/options/currency/index.d.ts} +1 -1
- package/lib/components/shared/filter/options/date-range/date-range.component.d.ts +24 -0
- package/{src/lib/components/shared/filter/options/date-range/index.ts → lib/components/shared/filter/options/date-range/index.d.ts} +1 -1
- package/{src/lib/components/shared/filter/options/index.ts → lib/components/shared/filter/options/index.d.ts} +1 -1
- package/{src/lib/components/shared/filter/options/input/index.ts → lib/components/shared/filter/options/input/index.d.ts} +1 -1
- package/lib/components/shared/filter/options/input/input.component.d.ts +17 -0
- package/lib/components/shared/filter/options/options.component.d.ts +20 -0
- package/lib/components/shared/filter/options/options.module.d.ts +18 -0
- package/{src/lib/components/shared/filter/options/status/index.ts → lib/components/shared/filter/options/status/index.d.ts} +1 -1
- package/lib/components/shared/filter/options/status/status.component.d.ts +19 -0
- package/{src/lib/components/shared/filter/selected/index.ts → lib/components/shared/filter/selected/index.d.ts} +1 -1
- package/lib/components/shared/filter/selected/item/children/children.component.d.ts +16 -0
- package/{src/lib/components/shared/filter/selected/item/children/index.ts → lib/components/shared/filter/selected/item/children/index.d.ts} +1 -1
- package/lib/components/shared/filter/selected/item/currency/currency.component.d.ts +11 -0
- package/{src/lib/components/shared/filter/selected/item/currency/index.ts → lib/components/shared/filter/selected/item/currency/index.d.ts} +1 -1
- package/lib/components/shared/filter/selected/item/date-range/date-range.component.d.ts +12 -0
- package/{src/lib/components/shared/filter/selected/item/date-range/index.ts → lib/components/shared/filter/selected/item/date-range/index.d.ts} +1 -1
- package/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.d.ts +11 -0
- package/{src/lib/components/shared/filter/selected/item/date-with-action/index.ts → lib/components/shared/filter/selected/item/date-with-action/index.d.ts} +1 -1
- package/{src/lib/components/shared/filter/selected/item/index.ts → lib/components/shared/filter/selected/item/index.d.ts} +7 -7
- package/{src/lib/components/shared/filter/selected/item/input/index.ts → lib/components/shared/filter/selected/item/input/index.d.ts} +1 -1
- package/lib/components/shared/filter/selected/item/input/input.component.d.ts +11 -0
- package/lib/components/shared/filter/selected/item/item.component.d.ts +20 -0
- package/{src/lib/components/shared/filter/selected/item/status/index.ts → lib/components/shared/filter/selected/item/status/index.d.ts} +1 -1
- package/lib/components/shared/filter/selected/item/status/status.component.d.ts +13 -0
- package/lib/components/shared/filter/selected/selected.component.d.ts +18 -0
- package/lib/components/shared/filter/selected/selected.module.d.ts +21 -0
- package/{src/lib/components/shared/index.ts → lib/components/shared/index.d.ts} +4 -4
- package/{src/lib/components/shared/password-strength/index.ts → lib/components/shared/password-strength/index.d.ts} +2 -2
- package/lib/components/shared/password-strength/password-strength.component.d.ts +23 -0
- package/lib/components/shared/password-strength/password-strength.d.ts +5 -0
- package/lib/components/shared/password-strength/password-strength.module.d.ts +12 -0
- package/lib/components/shared/products/filter/filter.component.d.ts +12 -0
- package/{src/lib/components/shared/products/index.ts → lib/components/shared/products/index.d.ts} +2 -2
- package/lib/components/shared/products/products.component.d.ts +20 -0
- package/lib/components/shared/products/products.module.d.ts +11 -0
- package/{src/lib/components/shared/products/providers/index.ts → lib/components/shared/products/providers/index.d.ts} +1 -1
- package/lib/components/shared/products/providers/products.model.d.ts +13 -0
- package/{src/lib/components/shared/progress-bar/index.ts → lib/components/shared/progress-bar/index.d.ts} +3 -3
- package/lib/components/shared/progress-bar/progress-bar.component.d.ts +12 -0
- package/lib/components/shared/progress-bar/progress-bar.module.d.ts +8 -0
- package/lib/components/shared/progress-bar/progress-bar.service.d.ts +14 -0
- package/lib/interfaces/field-config.d.ts +54 -0
- package/{src/lib/interfaces/index.ts → lib/interfaces/index.d.ts} +1 -1
- package/monkey-front-components-0.0.387.tgz +0 -0
- package/monkey-front-components.d.ts +5 -0
- package/package.json +25 -5
- package/public-api.d.ts +1 -0
- package/karma.conf.js +0 -44
- package/monkey-front-components-0.0.384.tgz +0 -0
- package/ng-package.json +0 -10
- package/src/lib/components/base/base-component.ts +0 -359
- package/src/lib/components/base/base-dynamic-array.ts +0 -233
- package/src/lib/components/base/base-dynamic.ts +0 -90
- package/src/lib/components/base/base-scroll-component.ts +0 -52
- package/src/lib/components/base/base-validators.ts +0 -19
- package/src/lib/components/dynamic/button/button.component.html +0 -4
- package/src/lib/components/dynamic/button/button.component.scss +0 -7
- package/src/lib/components/dynamic/button/button.component.ts +0 -47
- package/src/lib/components/dynamic/dynamic-directive.ts +0 -102
- package/src/lib/components/dynamic/dynamic.module.ts +0 -53
- package/src/lib/components/dynamic/file-upload/file-upload.component.html +0 -10
- package/src/lib/components/dynamic/file-upload/file-upload.component.ts +0 -46
- package/src/lib/components/dynamic/form/dynamic-form-array.component.html +0 -19
- package/src/lib/components/dynamic/form/dynamic-form-array.component.scss +0 -10
- package/src/lib/components/dynamic/form/dynamic-form-array.component.ts +0 -75
- package/src/lib/components/dynamic/form/dynamic-form.component.html +0 -7
- package/src/lib/components/dynamic/form/dynamic-form.component.ts +0 -49
- package/src/lib/components/dynamic/input/input.component.html +0 -9
- package/src/lib/components/dynamic/input/input.component.ts +0 -58
- package/src/lib/components/dynamic/input-phone/input-phone.component.html +0 -7
- package/src/lib/components/dynamic/input-phone/input-phone.component.ts +0 -58
- package/src/lib/components/dynamic/radio/radio.component.html +0 -8
- package/src/lib/components/dynamic/radio/radio.component.ts +0 -22
- package/src/lib/components/dynamic/select/select.component.html +0 -14
- package/src/lib/components/dynamic/select/select.component.ts +0 -75
- package/src/lib/components/dynamic/select-search/select-search.component.html +0 -15
- package/src/lib/components/dynamic/select-search/select-search.component.ts +0 -76
- package/src/lib/components/shared/filter/filter.component.html +0 -51
- package/src/lib/components/shared/filter/filter.component.scss +0 -79
- package/src/lib/components/shared/filter/filter.component.ts +0 -117
- package/src/lib/components/shared/filter/filter.module.ts +0 -36
- package/src/lib/components/shared/filter/menu/menu.component.html +0 -28
- package/src/lib/components/shared/filter/menu/menu.component.scss +0 -62
- package/src/lib/components/shared/filter/menu/menu.component.ts +0 -122
- package/src/lib/components/shared/filter/menu/menu.module.ts +0 -41
- package/src/lib/components/shared/filter/options/children/children.component.html +0 -6
- package/src/lib/components/shared/filter/options/children/children.component.scss +0 -30
- package/src/lib/components/shared/filter/options/children/children.component.ts +0 -58
- package/src/lib/components/shared/filter/options/currency/currency.component.html +0 -3
- package/src/lib/components/shared/filter/options/currency/currency.component.scss +0 -19
- package/src/lib/components/shared/filter/options/currency/currency.component.ts +0 -52
- package/src/lib/components/shared/filter/options/date-range/date-range.component.html +0 -3
- package/src/lib/components/shared/filter/options/date-range/date-range.component.scss +0 -34
- package/src/lib/components/shared/filter/options/date-range/date-range.component.ts +0 -72
- package/src/lib/components/shared/filter/options/input/input.component.html +0 -3
- package/src/lib/components/shared/filter/options/input/input.component.scss +0 -19
- package/src/lib/components/shared/filter/options/input/input.component.ts +0 -52
- package/src/lib/components/shared/filter/options/options.component.html +0 -43
- package/src/lib/components/shared/filter/options/options.component.scss +0 -56
- package/src/lib/components/shared/filter/options/options.component.ts +0 -58
- package/src/lib/components/shared/filter/options/options.module.ts +0 -58
- package/src/lib/components/shared/filter/options/status/status.component.html +0 -4
- package/src/lib/components/shared/filter/options/status/status.component.scss +0 -29
- package/src/lib/components/shared/filter/options/status/status.component.ts +0 -73
- package/src/lib/components/shared/filter/selected/item/children/children.component.html +0 -19
- package/src/lib/components/shared/filter/selected/item/children/children.component.scss +0 -68
- package/src/lib/components/shared/filter/selected/item/children/children.component.ts +0 -49
- package/src/lib/components/shared/filter/selected/item/currency/currency.component.html +0 -1
- package/src/lib/components/shared/filter/selected/item/currency/currency.component.scss +0 -4
- package/src/lib/components/shared/filter/selected/item/currency/currency.component.ts +0 -26
- package/src/lib/components/shared/filter/selected/item/date-range/date-range.component.html +0 -2
- package/src/lib/components/shared/filter/selected/item/date-range/date-range.component.scss +0 -4
- package/src/lib/components/shared/filter/selected/item/date-range/date-range.component.ts +0 -39
- package/src/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.html +0 -1
- package/src/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.scss +0 -4
- package/src/lib/components/shared/filter/selected/item/date-with-action/date-with-action.component.ts +0 -29
- package/src/lib/components/shared/filter/selected/item/input/input.component.html +0 -1
- package/src/lib/components/shared/filter/selected/item/input/input.component.scss +0 -4
- package/src/lib/components/shared/filter/selected/item/input/input.component.ts +0 -26
- package/src/lib/components/shared/filter/selected/item/item.component.html +0 -38
- package/src/lib/components/shared/filter/selected/item/item.component.scss +0 -72
- package/src/lib/components/shared/filter/selected/item/item.component.ts +0 -71
- package/src/lib/components/shared/filter/selected/item/status/status.component.html +0 -1
- package/src/lib/components/shared/filter/selected/item/status/status.component.scss +0 -4
- package/src/lib/components/shared/filter/selected/item/status/status.component.ts +0 -36
- package/src/lib/components/shared/filter/selected/selected.component.html +0 -3
- package/src/lib/components/shared/filter/selected/selected.component.scss +0 -9
- package/src/lib/components/shared/filter/selected/selected.component.ts +0 -76
- package/src/lib/components/shared/filter/selected/selected.module.ts +0 -60
- package/src/lib/components/shared/password-strength/password-strength.component.html +0 -50
- package/src/lib/components/shared/password-strength/password-strength.component.scss +0 -70
- package/src/lib/components/shared/password-strength/password-strength.component.ts +0 -89
- package/src/lib/components/shared/password-strength/password-strength.module.ts +0 -24
- package/src/lib/components/shared/password-strength/password-strength.ts +0 -5
- package/src/lib/components/shared/products/filter/filter.component.html +0 -6
- package/src/lib/components/shared/products/filter/filter.component.scss +0 -20
- package/src/lib/components/shared/products/filter/filter.component.ts +0 -34
- package/src/lib/components/shared/products/products.component.html +0 -15
- package/src/lib/components/shared/products/products.component.scss +0 -70
- package/src/lib/components/shared/products/products.component.ts +0 -104
- package/src/lib/components/shared/products/products.module.ts +0 -13
- package/src/lib/components/shared/products/providers/products.model.ts +0 -60
- package/src/lib/components/shared/progress-bar/progress-bar.component.html +0 -3
- package/src/lib/components/shared/progress-bar/progress-bar.component.scss +0 -6
- package/src/lib/components/shared/progress-bar/progress-bar.component.ts +0 -27
- package/src/lib/components/shared/progress-bar/progress-bar.module.ts +0 -10
- package/src/lib/components/shared/progress-bar/progress-bar.service.ts +0 -59
- package/src/lib/interfaces/field-config.ts +0 -58
- package/src/public-api.ts +0 -5
- package/src/test.ts +0 -26
- package/tsconfig.lib.json +0 -20
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { MonkeyEcxFilterMenu } from 'monkey-front-core';
|
|
3
|
-
|
|
4
|
-
@Component({
|
|
5
|
-
selector: 'mecx-filter-selected-item-status',
|
|
6
|
-
templateUrl: './status.component.html',
|
|
7
|
-
styleUrls: ['./status.component.scss']
|
|
8
|
-
})
|
|
9
|
-
export class MECXFilterSelectedItemStatusComponent implements OnChanges {
|
|
10
|
-
@Input() option: MonkeyEcxFilterMenu = null;
|
|
11
|
-
|
|
12
|
-
@Input() labelMoreValues: string;
|
|
13
|
-
|
|
14
|
-
_selectedValue = '';
|
|
15
|
-
|
|
16
|
-
_labelMoreValues = '';
|
|
17
|
-
|
|
18
|
-
private onHandleSelectedValue({ value, i18n }: any) {
|
|
19
|
-
const { labelMoreValues } = this;
|
|
20
|
-
const selected = `${value}`.split(',');
|
|
21
|
-
|
|
22
|
-
this._selectedValue = `${i18n}${selected[0]}`.trim();
|
|
23
|
-
if (selected.length >= 2) {
|
|
24
|
-
this._labelMoreValues = `, ${labelMoreValues} ${selected.length - 1}`;
|
|
25
|
-
} else this._labelMoreValues = '';
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
ngOnChanges(changes: SimpleChanges) {
|
|
29
|
-
if (changes.option) {
|
|
30
|
-
const { currentValue } = changes.option;
|
|
31
|
-
if (currentValue && JSON.stringify(currentValue) !== '{}') {
|
|
32
|
-
this.onHandleSelectedValue(currentValue);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { MonkeyEcxFilterMenu, MonkeyEcxUtils } from 'monkey-front-core';
|
|
3
|
-
|
|
4
|
-
@Component({
|
|
5
|
-
selector: 'mecx-filter-selected',
|
|
6
|
-
templateUrl: './selected.component.html',
|
|
7
|
-
styleUrls: ['./selected.component.scss']
|
|
8
|
-
})
|
|
9
|
-
export class MECXFilterSelectedComponent implements OnChanges {
|
|
10
|
-
@Input() model: MonkeyEcxFilterMenu[] = [];
|
|
11
|
-
|
|
12
|
-
@Output() onOpenFilters = new EventEmitter<any>();
|
|
13
|
-
|
|
14
|
-
@Output() onClose = new EventEmitter<any>();
|
|
15
|
-
|
|
16
|
-
@Output() onSubmit = new EventEmitter<any>();
|
|
17
|
-
|
|
18
|
-
_model: MonkeyEcxFilterMenu[] = [];
|
|
19
|
-
|
|
20
|
-
constructor() {
|
|
21
|
-
// not to do
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
private validateValue({ field, value, getValue }: any) {
|
|
25
|
-
try {
|
|
26
|
-
value = value || getValue()?.[field];
|
|
27
|
-
if (!value) return false;
|
|
28
|
-
if (typeof value === 'object') {
|
|
29
|
-
return value && JSON.stringify(value) !== '{}';
|
|
30
|
-
}
|
|
31
|
-
return MonkeyEcxUtils.persistNullEmptyUndefined(value);
|
|
32
|
-
} catch (e) {
|
|
33
|
-
// not to do
|
|
34
|
-
}
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
private onHandleSelectedValue(value: any[]) {
|
|
39
|
-
this._model = value?.map((_: any) => {
|
|
40
|
-
const { children } = _;
|
|
41
|
-
let obj = null;
|
|
42
|
-
if (children) {
|
|
43
|
-
obj = {
|
|
44
|
-
..._,
|
|
45
|
-
children
|
|
46
|
-
};
|
|
47
|
-
} else if (this.validateValue(_)) {
|
|
48
|
-
obj = {
|
|
49
|
-
..._,
|
|
50
|
-
...obj || {}
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return obj;
|
|
55
|
-
})?.filter((_) => {
|
|
56
|
-
return _;
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
ngOnChanges(changes: SimpleChanges) {
|
|
61
|
-
if (changes.model) {
|
|
62
|
-
const { currentValue } = changes.model;
|
|
63
|
-
if (currentValue && JSON.stringify(currentValue) !== '{}') {
|
|
64
|
-
this.onHandleSelectedValue(currentValue);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
onHandleClose() {
|
|
70
|
-
this.onClose.next();
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
onHandleSubmit(event: any) {
|
|
74
|
-
this.onSubmit.next(event);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { RouterModule } from '@angular/router';
|
|
5
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
-
import { MonkeyEcxDirectivesModule, MonkeyEcxPipesModule } from 'monkey-front-core';
|
|
7
|
-
import {
|
|
8
|
-
MonkeyBadgeModule,
|
|
9
|
-
MonkeyButtonModule,
|
|
10
|
-
MonkeyCheckboxModule,
|
|
11
|
-
MonkeyDateRangePickerModule,
|
|
12
|
-
MonkeyIconModule,
|
|
13
|
-
MonkeyInputModule,
|
|
14
|
-
MonkeyOptionModule,
|
|
15
|
-
MonkeySelectModule
|
|
16
|
-
} from 'monkey-style-guide';
|
|
17
|
-
import { MECXFilterOptionsModule } from '../options';
|
|
18
|
-
import {
|
|
19
|
-
MECXFilterSelectedItemChildrenComponent,
|
|
20
|
-
MECXFilterSelectedItemComponent,
|
|
21
|
-
MECXFilterSelectedItemCurrencyComponent,
|
|
22
|
-
MECXFilterSelectedItemDateRangeComponent,
|
|
23
|
-
MECXFilterSelectedItemDateWithActionComponent,
|
|
24
|
-
MECXFilterSelectedItemInputComponent,
|
|
25
|
-
MECXFilterSelectedItemStatusComponent
|
|
26
|
-
} from './item';
|
|
27
|
-
import { MECXFilterSelectedComponent } from './selected.component';
|
|
28
|
-
|
|
29
|
-
@NgModule({
|
|
30
|
-
declarations: [
|
|
31
|
-
MECXFilterSelectedComponent,
|
|
32
|
-
MECXFilterSelectedItemChildrenComponent,
|
|
33
|
-
MECXFilterSelectedItemComponent,
|
|
34
|
-
MECXFilterSelectedItemCurrencyComponent,
|
|
35
|
-
MECXFilterSelectedItemDateRangeComponent,
|
|
36
|
-
MECXFilterSelectedItemDateWithActionComponent,
|
|
37
|
-
MECXFilterSelectedItemInputComponent,
|
|
38
|
-
MECXFilterSelectedItemStatusComponent
|
|
39
|
-
],
|
|
40
|
-
imports: [
|
|
41
|
-
CommonModule,
|
|
42
|
-
FormsModule,
|
|
43
|
-
MECXFilterOptionsModule,
|
|
44
|
-
MonkeyBadgeModule,
|
|
45
|
-
MonkeyButtonModule,
|
|
46
|
-
MonkeyCheckboxModule,
|
|
47
|
-
MonkeyDateRangePickerModule,
|
|
48
|
-
MonkeyEcxDirectivesModule,
|
|
49
|
-
MonkeyEcxPipesModule,
|
|
50
|
-
MonkeyIconModule,
|
|
51
|
-
MonkeyInputModule,
|
|
52
|
-
MonkeyOptionModule,
|
|
53
|
-
MonkeySelectModule,
|
|
54
|
-
ReactiveFormsModule,
|
|
55
|
-
RouterModule,
|
|
56
|
-
TranslateModule.forChild()
|
|
57
|
-
],
|
|
58
|
-
exports: [MECXFilterSelectedComponent]
|
|
59
|
-
})
|
|
60
|
-
export class MECXFilterSelectedModule {}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
<ng-container *ngIf="_validatorsPasswordPass?.length">
|
|
2
|
-
<div id="strength" class="d-flex full-width flex-column justify-content-center align-items-center"
|
|
3
|
-
#strength>
|
|
4
|
-
<div id="strengthBar" class="strength-bar d-flex full-width flex-row">
|
|
5
|
-
<div class="d-flex full-width align-items-center">
|
|
6
|
-
<div class="bar-label">
|
|
7
|
-
<small>{{ i18n?.TITLE }}</small>
|
|
8
|
-
</div>
|
|
9
|
-
</div>
|
|
10
|
-
<div class="d-flex full-width align-items-center flex-column">
|
|
11
|
-
<div class="point" [class.error]="_stepPassword === 0"
|
|
12
|
-
[class.warning]="_stepPassword === 1"
|
|
13
|
-
[class.success]="_stepPassword === 2">
|
|
14
|
-
</div>
|
|
15
|
-
<ng-container *ngIf="_stepPassword === 0">
|
|
16
|
-
<ng-container *ngTemplateOutlet="stepPasswordLabel"></ng-container>
|
|
17
|
-
</ng-container>
|
|
18
|
-
</div>
|
|
19
|
-
<div class="d-flex full-width align-items-center flex-column">
|
|
20
|
-
<div class="point" [class.warning]="_stepPassword === 1"
|
|
21
|
-
[class.success]="_stepPassword === 2"></div>
|
|
22
|
-
<ng-container *ngIf="_stepPassword === 1">
|
|
23
|
-
<ng-container *ngTemplateOutlet="stepPasswordLabel"></ng-container>
|
|
24
|
-
</ng-container>
|
|
25
|
-
</div>
|
|
26
|
-
<div class="d-flex full-width align-items-center flex-column">
|
|
27
|
-
<div class="point" [class.success]="_stepPassword === 2"></div>
|
|
28
|
-
<ng-container *ngIf="_stepPassword === 2">
|
|
29
|
-
<ng-container *ngTemplateOutlet="stepPasswordLabel"></ng-container>
|
|
30
|
-
</ng-container>
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
<div class="callbacks mt-2 row">
|
|
35
|
-
<div class="col-sm-6 mt-2 d-flex justify-content-start"
|
|
36
|
-
*ngFor="let validators of _validatorsPasswordPass">
|
|
37
|
-
<monkey-icon *ngIf="validators.validate" icon="check-circle-20"></monkey-icon>
|
|
38
|
-
<monkey-icon *ngIf="!validators.validate" icon="error-20"></monkey-icon>
|
|
39
|
-
<span class="ml-2">
|
|
40
|
-
{{ i18n?.TYPES?.[validators.regex] }}
|
|
41
|
-
</span>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
</ng-container>
|
|
45
|
-
<ng-template #stepPasswordLabel>
|
|
46
|
-
<div class="name-point mt-1" [class.error]="_stepPassword === 0"
|
|
47
|
-
[class.warning]="_stepPassword === 1" [class.success]="_stepPassword === 2">
|
|
48
|
-
{{ i18n?.LABELS?.[_stepPassword] }}
|
|
49
|
-
</div>
|
|
50
|
-
</ng-template>
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
@import 'node_modules/monkey-style-guide/assets/scss/partials/variables';
|
|
2
|
-
|
|
3
|
-
mecx-password-strength {
|
|
4
|
-
margin-bottom: 8px;
|
|
5
|
-
|
|
6
|
-
.strength-bar {
|
|
7
|
-
display: inline;
|
|
8
|
-
list-style: none;
|
|
9
|
-
padding: 0;
|
|
10
|
-
vertical-align: 2px;
|
|
11
|
-
gap: 0.5rem;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.strength-bar .bar-label {
|
|
15
|
-
font-style: normal;
|
|
16
|
-
font-weight: normal;
|
|
17
|
-
font-size: 14px;
|
|
18
|
-
line-height: 16px;
|
|
19
|
-
color: #4b4a53;
|
|
20
|
-
text-align: left;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.strength-bar .point:last-child {
|
|
24
|
-
margin: 0;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.callbacks {
|
|
28
|
-
font-style: normal;
|
|
29
|
-
font-weight: normal;
|
|
30
|
-
font-size: 14px;
|
|
31
|
-
line-height: 16px;
|
|
32
|
-
color: #72717e;
|
|
33
|
-
text-align: left;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.point {
|
|
37
|
-
background: #ebebeb;
|
|
38
|
-
border-radius: 8px;
|
|
39
|
-
display: inline-block;
|
|
40
|
-
height: 8px;
|
|
41
|
-
margin-right: 4px;
|
|
42
|
-
width: 100%;
|
|
43
|
-
|
|
44
|
-
&.success {
|
|
45
|
-
background: map-get($mecx-success, main);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
&.warning {
|
|
49
|
-
background: map-get($mecx-warning, main);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
&.error {
|
|
53
|
-
background: map-get($mecx-error, main);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.name-point {
|
|
58
|
-
&.success {
|
|
59
|
-
color: map-get($mecx-success, main);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
&.warning {
|
|
63
|
-
color: map-get($mecx-warning, main);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
&.error {
|
|
67
|
-
color: map-get($mecx-error, main);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Component, Input, OnChanges, ViewEncapsulation, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { MonkeyEcxConfig, MonkeyEcxConfigService, MonkeyEcxUtils } from 'monkey-front-core';
|
|
3
|
-
import { PasswordStrength } from './password-strength';
|
|
4
|
-
|
|
5
|
-
@Component({
|
|
6
|
-
selector: 'mecx-password-strength',
|
|
7
|
-
templateUrl: './password-strength.component.html',
|
|
8
|
-
styleUrls: ['./password-strength.component.scss'],
|
|
9
|
-
encapsulation: ViewEncapsulation.None
|
|
10
|
-
})
|
|
11
|
-
export class MECXPasswordStrengthComponent implements OnChanges {
|
|
12
|
-
@Input() passwordToCheck: string | null = null;
|
|
13
|
-
|
|
14
|
-
@Input() i18n: any = null;
|
|
15
|
-
|
|
16
|
-
@Output() onHandleSubmitReady = new EventEmitter<any>();
|
|
17
|
-
|
|
18
|
-
_validatorsPasswordPass: Array<PasswordStrength> = [];
|
|
19
|
-
|
|
20
|
-
_stepPassword = 0;
|
|
21
|
-
|
|
22
|
-
private validatorsPassword = new Map();
|
|
23
|
-
|
|
24
|
-
constructor(private configService: MonkeyEcxConfigService) {
|
|
25
|
-
// not do
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
private handleColor(score: number) {
|
|
29
|
-
let idx = 0;
|
|
30
|
-
if (score > 50) idx = 1;
|
|
31
|
-
if (score === 100) idx = 2;
|
|
32
|
-
this._stepPassword = idx;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
private passwordStrengthValidator(pass : string) {
|
|
36
|
-
this._validatorsPasswordPass = [];
|
|
37
|
-
let score = 0;
|
|
38
|
-
|
|
39
|
-
this.validatorsPassword.forEach((key, value) => {
|
|
40
|
-
this._validatorsPasswordPass.push({
|
|
41
|
-
regex: `${value}`,
|
|
42
|
-
validate: `${key.VALIDATE}` === String(RegExp(`${key.REGEX}`).test(pass)),
|
|
43
|
-
percent: 100 / this.validatorsPassword.size
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
this._validatorsPasswordPass.forEach((check) => {
|
|
48
|
-
if (check.validate) {
|
|
49
|
-
score += check.percent;
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
return Math.trunc(score);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
private onHandleReady() {
|
|
57
|
-
const validate = this._validatorsPasswordPass?.find(({ validate }) => { return !validate; });
|
|
58
|
-
this.onHandleSubmitReady.next(!validate);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
private onHandleChages() {
|
|
62
|
-
const password = this.passwordToCheck;
|
|
63
|
-
this.handleColor(this.passwordStrengthValidator(password as string));
|
|
64
|
-
this.onHandleReady();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private onHandlePasswordStrengthKeys(params: MonkeyEcxConfig) {
|
|
68
|
-
const ps = params?.program?.screens?.login?.passwordStrength;
|
|
69
|
-
if (ps) {
|
|
70
|
-
Object.entries(ps)
|
|
71
|
-
.forEach(([key, value]) => {
|
|
72
|
-
if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {
|
|
73
|
-
this.validatorsPassword.set(key, value);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
this.onHandleChages();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
ngOnInit() {
|
|
81
|
-
this.configService.config().subscribe((_: MonkeyEcxConfig) => {
|
|
82
|
-
this.onHandlePasswordStrengthKeys(_);
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
ngOnChanges(): void {
|
|
87
|
-
this.onHandleChages();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
-
import { MonkeyEcxDirectivesModule, MonkeyEcxPipesModule } from 'monkey-front-core';
|
|
6
|
-
import { MonkeyButtonModule, MonkeyInputModule, MonkeyIconModule } from 'monkey-style-guide';
|
|
7
|
-
import { MECXPasswordStrengthComponent } from './password-strength.component';
|
|
8
|
-
|
|
9
|
-
@NgModule({
|
|
10
|
-
declarations: [MECXPasswordStrengthComponent],
|
|
11
|
-
imports: [
|
|
12
|
-
CommonModule,
|
|
13
|
-
FormsModule,
|
|
14
|
-
ReactiveFormsModule,
|
|
15
|
-
MonkeyEcxPipesModule,
|
|
16
|
-
MonkeyEcxDirectivesModule,
|
|
17
|
-
MonkeyButtonModule,
|
|
18
|
-
MonkeyInputModule,
|
|
19
|
-
MonkeyIconModule,
|
|
20
|
-
TranslateModule.forChild()
|
|
21
|
-
],
|
|
22
|
-
exports: [MECXPasswordStrengthComponent]
|
|
23
|
-
})
|
|
24
|
-
export class MECXPasswordStrengthModule {}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<monkey-input-filter [placeholder]="'SIDEBAR-ACTIONS.PROFILE.FILTER.SEARCH-INPUT' | translate"
|
|
2
|
-
(onChange)="onSearchFilter($event)" icon="search-16" [(value)]="_search">
|
|
3
|
-
</monkey-input-filter>
|
|
4
|
-
<monkey-button type="filter" color="border" (click)="onClearFilter()">
|
|
5
|
-
Limpar
|
|
6
|
-
</monkey-button>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
@import 'node_modules/monkey-style-guide/assets/scss/partials/breakpoints';
|
|
2
|
-
|
|
3
|
-
:host {
|
|
4
|
-
display: flex;
|
|
5
|
-
align-items: center;
|
|
6
|
-
justify-content: space-between;
|
|
7
|
-
margin-bottom: 12px;
|
|
8
|
-
|
|
9
|
-
::ng-deep mecx-form-field-filter mecx-form-field-body {
|
|
10
|
-
height: 44px;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
::ng-deep monkey-input-filter {
|
|
14
|
-
width: 100%;
|
|
15
|
-
|
|
16
|
-
@include media-breakpoint('gt-sm') {
|
|
17
|
-
margin-right: 8px;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
|
|
3
|
-
@Component({
|
|
4
|
-
selector: 'mecx-products-filter',
|
|
5
|
-
templateUrl: './filter.component.html',
|
|
6
|
-
styleUrls: ['./filter.component.scss']
|
|
7
|
-
})
|
|
8
|
-
export class MECXProductsFilterComponent {
|
|
9
|
-
@Input() isLoading = false;
|
|
10
|
-
|
|
11
|
-
@Output() onChangeFilter = new EventEmitter<any>();
|
|
12
|
-
|
|
13
|
-
_search = '';
|
|
14
|
-
|
|
15
|
-
constructor() {
|
|
16
|
-
// not to do
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
onSearchFilter(event: string) {
|
|
20
|
-
this._search = event;
|
|
21
|
-
if (!event) {
|
|
22
|
-
this.onChangeFilter.next('');
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
event = `${event}`.toLowerCase();
|
|
26
|
-
|
|
27
|
-
this.onChangeFilter.next(event);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
onClearFilter() {
|
|
31
|
-
this._search = '';
|
|
32
|
-
this.onChangeFilter.next(this._search);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<mecx-products-filter (onChangeFilter)="onHandleChangeFilter($event)"></mecx-products-filter>
|
|
2
|
-
<div class="products-list">
|
|
3
|
-
<div *ngFor="let product of _filteredProducts" class="product">
|
|
4
|
-
<span class="title" *ngIf="_hasMoreProducts">{{ 'PRODUCTS.'+product.name | translate }}</span>
|
|
5
|
-
<div class="items">
|
|
6
|
-
<div *ngFor="let item of product.items" class="item"
|
|
7
|
-
(click)="onAccess.next(item)">
|
|
8
|
-
<div class="icon">
|
|
9
|
-
<img [src]="item.logo" #img (error)="onImgError(img)">
|
|
10
|
-
</div>
|
|
11
|
-
<span class="name">{{ item.name }}</span>
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
:host {
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
overflow: hidden;
|
|
5
|
-
|
|
6
|
-
.products-list {
|
|
7
|
-
display: flex;
|
|
8
|
-
flex-direction: column;
|
|
9
|
-
overflow: auto;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.product {
|
|
13
|
-
display: flex;
|
|
14
|
-
flex-direction: column;
|
|
15
|
-
|
|
16
|
-
.title {
|
|
17
|
-
font-style: normal;
|
|
18
|
-
font-weight: 600;
|
|
19
|
-
font-size: 24px;
|
|
20
|
-
line-height: 32px;
|
|
21
|
-
letter-spacing: 0.04em;
|
|
22
|
-
color: #4b4a53;
|
|
23
|
-
margin: 32px 0px;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.items {
|
|
27
|
-
display: grid;
|
|
28
|
-
grid-template-columns: repeat(2, 1fr);
|
|
29
|
-
grid-column-gap: 10px;
|
|
30
|
-
grid-row-gap: 10px;
|
|
31
|
-
|
|
32
|
-
.item {
|
|
33
|
-
cursor: pointer;
|
|
34
|
-
display: flex;
|
|
35
|
-
flex-direction: column;
|
|
36
|
-
align-items: center;
|
|
37
|
-
justify-content: center;
|
|
38
|
-
min-height: 100px;
|
|
39
|
-
padding: 12px;
|
|
40
|
-
|
|
41
|
-
.icon {
|
|
42
|
-
margin: 12px 0px;
|
|
43
|
-
|
|
44
|
-
img {
|
|
45
|
-
width: 100%;
|
|
46
|
-
max-width: 140px;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.no-image {
|
|
50
|
-
width: 52px;
|
|
51
|
-
height: 52px;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.name {
|
|
56
|
-
font-style: normal;
|
|
57
|
-
font-weight: 400;
|
|
58
|
-
font-size: 18px;
|
|
59
|
-
line-height: 24px;
|
|
60
|
-
color: #72717e;
|
|
61
|
-
margin-top: 8px;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
&:hover {
|
|
65
|
-
box-shadow: 0px 25px 52px 8px rgba(234, 234, 234, 0.88);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, OnInit, Output } from '@angular/core';
|
|
2
|
-
import { MonkeyEcxTokenStorageService } from 'monkey-front-core';
|
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { BaseComponent } from '../../base/base-component';
|
|
5
|
-
import { ProductsModel } from './providers';
|
|
6
|
-
|
|
7
|
-
@Component({
|
|
8
|
-
selector: 'mecx-products',
|
|
9
|
-
templateUrl: './products.component.html',
|
|
10
|
-
styleUrls: ['./products.component.scss']
|
|
11
|
-
})
|
|
12
|
-
export class MECXProductsComponent extends BaseComponent implements OnInit {
|
|
13
|
-
@Output() onAccess = new EventEmitter<any>();
|
|
14
|
-
|
|
15
|
-
_products: any[];
|
|
16
|
-
|
|
17
|
-
_filteredProducts: any[];
|
|
18
|
-
|
|
19
|
-
_filter = '';
|
|
20
|
-
|
|
21
|
-
_hasMoreProducts = false;
|
|
22
|
-
|
|
23
|
-
constructor(private tokenStorage: MonkeyEcxTokenStorageService) {
|
|
24
|
-
super();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
onImgError(img: HTMLImageElement) {
|
|
28
|
-
const index = Math.floor(Math.random() * (6 - 1 + 1)) + 1;
|
|
29
|
-
img.src = `https://assets.monkeyecx.com/icons/icon-${index}.svg`;
|
|
30
|
-
img.className = 'no-image';
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
private onHandleProducts() {
|
|
34
|
-
const { _filter } = this;
|
|
35
|
-
|
|
36
|
-
this._filteredProducts = this._products.map(({ name, items }) => {
|
|
37
|
-
const found = items?.filter((_: any) => {
|
|
38
|
-
const cmpA = `${_.name}`.toLowerCase();
|
|
39
|
-
const cmpB = `${_filter}`.toLowerCase();
|
|
40
|
-
return cmpA.includes(cmpB);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
if (found && found.length) {
|
|
44
|
-
return {
|
|
45
|
-
name,
|
|
46
|
-
items: found
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return null;
|
|
51
|
-
}).filter((_: any) => { return _; });
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
private onHandleMe() {
|
|
55
|
-
const programs: ProductsModel[] = this.tokenStorage.getMe()?.programs?.map((_: any) => {
|
|
56
|
-
return new ProductsModel(_);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
const onlyUnique = (value: any, index: any, self: any) => {
|
|
60
|
-
return self.indexOf(value) === index;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const products = programs.map(({ product }) => {
|
|
64
|
-
return product;
|
|
65
|
-
}).filter(onlyUnique);
|
|
66
|
-
|
|
67
|
-
this._hasMoreProducts = (products?.length || 0) > 1;
|
|
68
|
-
|
|
69
|
-
this._products = Object.entries(products).map(([key, value]) => {
|
|
70
|
-
const found = programs.filter(({ product }) => {
|
|
71
|
-
return `${product}` === `${value}`;
|
|
72
|
-
})?.sort((a, b) => {
|
|
73
|
-
const groupA = `${a?.name}`.toLowerCase();
|
|
74
|
-
const groupB = `${b?.name}`.toLowerCase();
|
|
75
|
-
return groupA !== groupB ? 1 : -1;
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
return {
|
|
79
|
-
name: value,
|
|
80
|
-
items: found
|
|
81
|
-
};
|
|
82
|
-
})?.sort((a, b) => {
|
|
83
|
-
const groupA = `${a?.name}`.toLowerCase();
|
|
84
|
-
const groupB = `${b?.name}`.toLowerCase();
|
|
85
|
-
return groupA !== groupB ? -1 : 1;
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
this._filteredProducts = this._products;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
ngOnInit() {
|
|
92
|
-
this.tokenStorage
|
|
93
|
-
.meHasChanged()
|
|
94
|
-
.pipe(takeUntil(this.__unsubscribeAll))
|
|
95
|
-
.subscribe(() => {
|
|
96
|
-
this.onHandleMe();
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
onHandleChangeFilter(event: string) {
|
|
101
|
-
this._filter = event;
|
|
102
|
-
this.onHandleProducts();
|
|
103
|
-
}
|
|
104
|
-
}
|