imm-element-ui 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2022/imm-element-ui.mjs +5 -0
- package/esm2022/lib/am/am.component.mjs +502 -0
- package/esm2022/lib/crumb-action/crumb-action.component.mjs +127 -0
- package/esm2022/lib/form/form/form.component.mjs +217 -0
- package/esm2022/lib/form/form-field/field-control.mjs +19 -0
- package/esm2022/lib/form/form-field/field-utils.mjs +227 -0
- package/esm2022/lib/form/form-field/form-field.mjs +129 -0
- package/esm2022/lib/form/form-field/form-type.mjs +123 -0
- package/esm2022/lib/form/form-field/label.directive.mjs +62 -0
- package/esm2022/lib/form/form-type/autocomplete.type.mjs +200 -0
- package/esm2022/lib/form/form-type/codemirror.type.mjs +167 -0
- package/esm2022/lib/form/form-type/datepicker.type.mjs +212 -0
- package/esm2022/lib/form/form-type/image.type.mjs +225 -0
- package/esm2022/lib/form/form-type/inputnumber.type.mjs +144 -0
- package/esm2022/lib/form/form-type/inputtext.type.mjs +69 -0
- package/esm2022/lib/form/form-type/multiselect.type.mjs +219 -0
- package/esm2022/lib/form/form-type/radio.type.mjs +167 -0
- package/esm2022/lib/form/form-type/select.type.mjs +196 -0
- package/esm2022/lib/form/form-type/textarea.type.mjs +75 -0
- package/esm2022/lib/form/form-type/treeselect.type.mjs +174 -0
- package/esm2022/lib/form/form-type/upload.type.mjs +228 -0
- package/esm2022/lib/grid/actions/actions.component.mjs +30 -0
- package/esm2022/lib/grid/cell-edit/cell-edit-autoComplete.component.mjs +89 -0
- package/esm2022/lib/grid/cell-edit/cell-edit-datePicker.compoent.mjs +182 -0
- package/esm2022/lib/grid/cell-edit/cell-edit-inputNumber.component.mjs +107 -0
- package/esm2022/lib/grid/cell-edit/cell-edit-inputText.compoent.mjs +46 -0
- package/esm2022/lib/grid/cell-edit/cell-edit-select.component.mjs +148 -0
- package/esm2022/lib/grid/cell-edit/index.mjs +7 -0
- package/esm2022/lib/grid/cell-render/async-renderer.mjs +29 -0
- package/esm2022/lib/grid/cell-render/link-render.mjs +42 -0
- package/esm2022/lib/grid/grid/grid.component.mjs +373 -0
- package/esm2022/lib/grid/grid-utils.mjs +103 -0
- package/esm2022/lib/grid/mock-data.mjs +14 -0
- package/esm2022/lib/grid/pager/pager.component.mjs +19 -0
- package/esm2022/lib/head/head.component.mjs +43 -0
- package/esm2022/lib/import/import.component.mjs +68 -0
- package/esm2022/lib/log/log.component.mjs +37 -0
- package/esm2022/lib/page-form/page-form.component.mjs +167 -0
- package/esm2022/lib/page-form/page-form.interface.mjs +2 -0
- package/esm2022/lib/page-grid-list/page-grid-list.component.mjs +60 -0
- package/esm2022/lib/row-selector/row-selector.component.mjs +58 -0
- package/esm2022/lib/search/mock-data.mjs +40 -0
- package/esm2022/lib/search/pop-date/pop-date.component.mjs +106 -0
- package/esm2022/lib/search/pop-list/pop-list.component.mjs +32 -0
- package/esm2022/lib/search/pop-panel/pop-panel.component.mjs +44 -0
- package/esm2022/lib/search/pop-select/pop-select.component.mjs +45 -0
- package/esm2022/lib/search/pop-self/pop-self.component.mjs +132 -0
- package/esm2022/lib/search/pop-tree/pop-tree.component.mjs +50 -0
- package/esm2022/lib/search/search/search.component.mjs +138 -0
- package/esm2022/lib/search/search-tip/search-tip.component.mjs +54 -0
- package/esm2022/lib/search/search-utils.mjs +165 -0
- package/esm2022/lib/search/text-panel/text-panel.component.mjs +41 -0
- package/esm2022/lib/service/action.service.mjs +115 -0
- package/esm2022/lib/service/i18n.service.mjs +79 -0
- package/esm2022/lib/service/themeConfig.service.mjs +82 -0
- package/esm2022/lib/service/userHistory.service.mjs +106 -0
- package/esm2022/lib/share/utils.mjs +150 -0
- package/esm2022/lib/steps/steps.component.mjs +31 -0
- package/esm2022/lib/theme-config/theme-config-panel.compoent.mjs +141 -0
- package/esm2022/lib/theme-config/theme-config.compoent.mjs +45 -0
- package/esm2022/public-api.mjs +26 -0
- package/fesm2022/imm-element-ui.mjs +6382 -0
- package/fesm2022/imm-element-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/am/am.component.d.ts +191 -0
- package/lib/crumb-action/crumb-action.component.d.ts +40 -0
- package/lib/form/form/form.component.d.ts +53 -0
- package/lib/form/form-field/field-control.d.ts +13 -0
- package/lib/form/form-field/field-utils.d.ts +12 -0
- package/lib/form/form-field/form-field.d.ts +86 -0
- package/lib/form/form-field/form-type.d.ts +22 -0
- package/lib/form/form-field/label.directive.d.ts +14 -0
- package/lib/form/form-type/autocomplete.type.d.ts +77 -0
- package/lib/form/form-type/codemirror.type.d.ts +31 -0
- package/lib/form/form-type/datepicker.type.d.ts +83 -0
- package/lib/form/form-type/image.type.d.ts +49 -0
- package/lib/form/form-type/inputnumber.type.d.ts +49 -0
- package/lib/form/form-type/inputtext.type.d.ts +17 -0
- package/lib/form/form-type/multiselect.type.d.ts +85 -0
- package/lib/form/form-type/radio.type.d.ts +31 -0
- package/lib/form/form-type/select.type.d.ts +73 -0
- package/lib/form/form-type/textarea.type.d.ts +19 -0
- package/lib/form/form-type/treeselect.type.d.ts +62 -0
- package/lib/form/form-type/upload.type.d.ts +51 -0
- package/lib/grid/actions/actions.component.d.ts +14 -0
- package/lib/grid/cell-edit/cell-edit-autoComplete.component.d.ts +18 -0
- package/lib/grid/cell-edit/cell-edit-datePicker.compoent.d.ts +16 -0
- package/lib/grid/cell-edit/cell-edit-inputNumber.component.d.ts +15 -0
- package/lib/grid/cell-edit/cell-edit-inputText.compoent.d.ts +16 -0
- package/lib/grid/cell-edit/cell-edit-select.component.d.ts +12 -0
- package/lib/grid/cell-edit/index.d.ts +6 -0
- package/lib/grid/cell-render/async-renderer.d.ts +10 -0
- package/lib/grid/cell-render/link-render.d.ts +14 -0
- package/lib/grid/grid/grid.component.d.ts +272 -0
- package/lib/grid/grid-utils.d.ts +751 -0
- package/lib/grid/mock-data.d.ts +12 -0
- package/lib/grid/pager/pager.component.d.ts +15 -0
- package/lib/head/head.component.d.ts +17 -0
- package/lib/import/import.component.d.ts +22 -0
- package/lib/log/log.component.d.ts +14 -0
- package/lib/page-form/page-form.component.d.ts +46 -0
- package/lib/page-form/page-form.interface.d.ts +27 -0
- package/lib/page-grid-list/page-grid-list.component.d.ts +18 -0
- package/lib/row-selector/row-selector.component.d.ts +21 -0
- package/lib/search/mock-data.d.ts +20 -0
- package/lib/search/pop-date/pop-date.component.d.ts +26 -0
- package/lib/search/pop-list/pop-list.component.d.ts +12 -0
- package/lib/search/pop-panel/pop-panel.component.d.ts +15 -0
- package/lib/search/pop-select/pop-select.component.d.ts +13 -0
- package/lib/search/pop-self/pop-self.component.d.ts +31 -0
- package/lib/search/pop-tree/pop-tree.component.d.ts +22 -0
- package/lib/search/search/search.component.d.ts +60 -0
- package/lib/search/search-tip/search-tip.component.d.ts +22 -0
- package/lib/search/search-utils.d.ts +10 -0
- package/lib/search/text-panel/text-panel.component.d.ts +21 -0
- package/lib/service/action.service.d.ts +54 -0
- package/lib/service/i18n.service.d.ts +93 -0
- package/lib/service/themeConfig.service.d.ts +24 -0
- package/lib/service/userHistory.service.d.ts +26 -0
- package/lib/share/utils.d.ts +16 -0
- package/lib/steps/steps.component.d.ts +16 -0
- package/lib/theme-config/theme-config-panel.compoent.d.ts +78 -0
- package/lib/theme-config/theme-config.compoent.d.ts +6 -0
- package/package.json +28 -0
- package/public-api.d.ts +20 -0
- package/src/lib/crumb-action/crumb-action.component.scss +51 -0
- package/src/lib/form/form/form.component.scss +0 -0
- package/src/lib/grid/actions/actions.component.scss +0 -0
- package/src/lib/grid/grid/grid.component.scss +0 -0
- package/src/lib/grid/pager/pager.component.scss +13 -0
- package/src/lib/head/head.component.scss +3 -0
- package/src/lib/import/import.component.scss +10 -0
- package/src/lib/log/log.component.scss +21 -0
- package/src/lib/page-form/page-form.component.scss +14 -0
- package/src/lib/page-grid-list/page-grid-list.component.scss +14 -0
- package/src/lib/row-selector/row-selector.component.scss +1 -0
- package/src/lib/search/dynamic-search/dynamic-search.component.scss +70 -0
- package/src/lib/search/pop-date/pop-date.component.scss +47 -0
- package/src/lib/search/pop-list/pop-list.component.scss +23 -0
- package/src/lib/search/pop-panel/pop-panel.component.scss +49 -0
- package/src/lib/search/pop-select/pop-select.component.scss +29 -0
- package/src/lib/search/pop-self/pop-self.component.scss +60 -0
- package/src/lib/search/pop-tree/pop-tree.component.scss +34 -0
- package/src/lib/search/search/search.component.scss +70 -0
- package/src/lib/search/search-tip/search-tip.component.scss +47 -0
- package/src/lib/search/text-panel/text-panel.component.scss +16 -0
- package/src/lib/steps/steps.component.scss +52 -0
- package/src/lib/styles/styles.scss +232 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component, inject, input } from '@angular/core';
|
|
2
|
+
import { I18nService } from '../service/i18n.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class StepsComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.steps = input([]);
|
|
7
|
+
this.current = input();
|
|
8
|
+
this.i18n = inject(I18nService);
|
|
9
|
+
}
|
|
10
|
+
getClass(i) {
|
|
11
|
+
const result = ['step-item', 'flex', 'items-center'];
|
|
12
|
+
const { value } = this.steps()[i];
|
|
13
|
+
if (i == 0) {
|
|
14
|
+
result.push('step-first');
|
|
15
|
+
}
|
|
16
|
+
else if (i + 1 == this.steps()?.length) {
|
|
17
|
+
result.push('step-last');
|
|
18
|
+
}
|
|
19
|
+
if (value == this.current()) {
|
|
20
|
+
result.push('step-active');
|
|
21
|
+
}
|
|
22
|
+
return result.join(' ');
|
|
23
|
+
}
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: StepsComponent, isStandalone: true, selector: "custom-steps", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex my-1\">\r\n\t@for (step of steps(); track step; let i = $index) {\r\n\t\t<div [class]=\"getClass(i)\">\r\n\t\t\t<span>{{ step.i18nKey ? i18n.fanyi(step.i18nKey):step.label }}</span>\r\n\t\t</div>\r\n\t}\r\n</div>\r\n", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"] }); }
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'custom-steps', standalone: true, imports: [], template: "<div class=\"flex my-1\">\r\n\t@for (step of steps(); track step; let i = $index) {\r\n\t\t<div [class]=\"getClass(i)\">\r\n\t\t\t<span>{{ step.i18nKey ? i18n.fanyi(step.i18nKey):step.label }}</span>\r\n\t\t</div>\r\n\t}\r\n</div>\r\n", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"] }]
|
|
30
|
+
}], ctorParameters: () => [] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLXVpL3NyYy9saWIvc3RlcHMvc3RlcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLXVpL3NyYy9saWIvc3RlcHMvc3RlcHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFjdEQsTUFBTSxPQUFPLGNBQWM7SUFJMUI7UUFIQSxVQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLFlBQU8sR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMxQixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBRTFCLENBQUM7SUFDRCxRQUFRLENBQUMsQ0FBUztRQUNqQixNQUFNLE1BQU0sR0FBRyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDckQsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0IsQ0FBQzthQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7K0dBbEJXLGNBQWM7bUdBQWQsY0FBYywwVUNmM0IsNE9BT0E7OzRGRFFhLGNBQWM7a0JBUDFCLFNBQVM7K0JBQ0MsY0FBYyxjQUNaLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXAge1xyXG5cdGxhYmVsOiBzdHJpbmc7XHJcblx0aTE4bktleT86IHN0cmluZztcclxuXHR2YWx1ZTogbnVtYmVyXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY3VzdG9tLXN0ZXBzJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9zdGVwcy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL3N0ZXBzLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0ZXBzQ29tcG9uZW50IHtcclxuXHRzdGVwcyA9IGlucHV0PFN0ZXBbXT4oW10pO1xyXG5cdGN1cnJlbnQgPSBpbnB1dDxudW1iZXI+KCk7XHJcblx0aTE4biA9IGluamVjdChJMThuU2VydmljZSlcclxuXHRjb25zdHJ1Y3RvcigpIHsgXHJcblx0fVxyXG5cdGdldENsYXNzKGk6IG51bWJlcikge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gWydzdGVwLWl0ZW0nLCAnZmxleCcsICdpdGVtcy1jZW50ZXInXTtcclxuXHRcdGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMuc3RlcHMoKSFbaV1cclxuXHRcdGlmIChpID09IDApIHtcclxuXHRcdFx0cmVzdWx0LnB1c2goJ3N0ZXAtZmlyc3QnKTtcclxuXHRcdH0gZWxzZSBpZiAoaSArIDEgPT0gdGhpcy5zdGVwcygpPy5sZW5ndGgpIHtcclxuXHRcdFx0cmVzdWx0LnB1c2goJ3N0ZXAtbGFzdCcpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHZhbHVlID09IHRoaXMuY3VycmVudCgpKSB7XHJcblx0XHRcdHJlc3VsdC5wdXNoKCdzdGVwLWFjdGl2ZScpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHJlc3VsdC5qb2luKCcgJyk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IG15LTFcIj5cclxuXHRAZm9yIChzdGVwIG9mIHN0ZXBzKCk7IHRyYWNrIHN0ZXA7IGxldCBpID0gJGluZGV4KSB7XHJcblx0XHQ8ZGl2IFtjbGFzc109XCJnZXRDbGFzcyhpKVwiPlxyXG5cdFx0XHQ8c3Bhbj57eyBzdGVwLmkxOG5LZXkgPyBpMThuLmZhbnlpKHN0ZXAuaTE4bktleSk6c3RlcC5sYWJlbCB9fTwvc3Bhbj5cclxuXHRcdDwvZGl2PlxyXG5cdH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { CommonModule } from "@angular/common";
|
|
2
|
+
import { Component, computed, inject, PLATFORM_ID } from '@angular/core';
|
|
3
|
+
import { FormsModule } from "@angular/forms";
|
|
4
|
+
import { ButtonModule } from "primeng/button";
|
|
5
|
+
import { RadioButtonModule } from 'primeng/radiobutton';
|
|
6
|
+
import Aura from '@primeng/themes/aura';
|
|
7
|
+
import { PrimeNG } from "primeng/config";
|
|
8
|
+
import { updatePreset, updateSurfacePalette } from '@primeng/themes';
|
|
9
|
+
import { ThemeConfigService } from "../service/themeConfig.service";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
const presets = {
|
|
13
|
+
Aura
|
|
14
|
+
};
|
|
15
|
+
export class ThemeConfigPanelComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.config = inject(PrimeNG);
|
|
18
|
+
this.configService = inject(ThemeConfigService);
|
|
19
|
+
this.platformId = inject(PLATFORM_ID);
|
|
20
|
+
this.selectedPrimaryColor = computed(() => {
|
|
21
|
+
return this.configService.appState().primary;
|
|
22
|
+
});
|
|
23
|
+
this.primaryColors = computed(() => {
|
|
24
|
+
const preset = this.configService.appState()?.preset;
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
const presetPalette = presets[preset].primitive;
|
|
27
|
+
const colors = ['emerald', 'green', 'lime', 'orange', 'amber', 'yellow', 'teal', 'cyan', 'sky', 'blue', 'indigo', 'violet', 'purple', 'fuchsia', 'pink', 'rose'];
|
|
28
|
+
const palettes = [];
|
|
29
|
+
colors.forEach((color) => {
|
|
30
|
+
palettes.push({
|
|
31
|
+
name: color,
|
|
32
|
+
palette: presetPalette[color]
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
return palettes;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
getPresetExt() {
|
|
39
|
+
const color = this.primaryColors().find((c) => c.name === this.selectedPrimaryColor());
|
|
40
|
+
return {
|
|
41
|
+
semantic: {
|
|
42
|
+
primary: color.palette,
|
|
43
|
+
colorScheme: {
|
|
44
|
+
light: {
|
|
45
|
+
primary: {
|
|
46
|
+
color: '{primary.500}',
|
|
47
|
+
contrastColor: '#ffffff',
|
|
48
|
+
hoverColor: '{primary.600}',
|
|
49
|
+
activeColor: '{primary.700}'
|
|
50
|
+
},
|
|
51
|
+
highlight: {
|
|
52
|
+
background: '{primary.50}',
|
|
53
|
+
focusBackground: '{primary.100}',
|
|
54
|
+
color: '{primary.700}',
|
|
55
|
+
focusColor: '{primary.800}'
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
dark: {
|
|
59
|
+
primary: {
|
|
60
|
+
color: '{primary.400}',
|
|
61
|
+
contrastColor: '{surface.900}',
|
|
62
|
+
hoverColor: '{primary.300}',
|
|
63
|
+
activeColor: '{primary.200}'
|
|
64
|
+
},
|
|
65
|
+
highlight: {
|
|
66
|
+
background: 'color-mix(in srgb, {primary.400}, transparent 84%)',
|
|
67
|
+
focusBackground: 'color-mix(in srgb, {primary.400}, transparent 76%)',
|
|
68
|
+
color: 'rgba(255,255,255,.87)',
|
|
69
|
+
focusColor: 'rgba(255,255,255,.87)'
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
updateColors(event, type, color) {
|
|
77
|
+
if (type === 'primary') {
|
|
78
|
+
this.configService.appState.update((state) => ({ ...state, primary: color.name }));
|
|
79
|
+
}
|
|
80
|
+
else if (type === 'surface') {
|
|
81
|
+
this.configService.appState.update((state) => ({ ...state, surface: color.name }));
|
|
82
|
+
}
|
|
83
|
+
this.applyTheme(type, color);
|
|
84
|
+
event.stopPropagation();
|
|
85
|
+
}
|
|
86
|
+
applyTheme(type, color) {
|
|
87
|
+
if (type === 'primary') {
|
|
88
|
+
updatePreset(this.getPresetExt());
|
|
89
|
+
}
|
|
90
|
+
else if (type === 'surface') {
|
|
91
|
+
updateSurfacePalette(color.palette);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeConfigPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThemeConfigPanelComponent, isStandalone: true, selector: "app-theme-config-panel", host: { classAttribute: "config-panel hidden" }, ngImport: i0, template: `
|
|
96
|
+
<div class="config-panel-content">
|
|
97
|
+
<div class="config-panel-colors">
|
|
98
|
+
<span class="config-panel-label">Primary</span>
|
|
99
|
+
<div class="flex justify-start pt-2 flex-wrap gap-2">
|
|
100
|
+
@for (primaryColor of primaryColors(); track primaryColor.name) {
|
|
101
|
+
<button
|
|
102
|
+
type="button"
|
|
103
|
+
[title]="primaryColor.name"
|
|
104
|
+
(click)="updateColors($event, 'primary', primaryColor)"
|
|
105
|
+
[ngClass]="{ 'active-color': primaryColor.name === selectedPrimaryColor() }"
|
|
106
|
+
[style]="{
|
|
107
|
+
'background-color': primaryColor.name === 'noir' ? 'var(--text-color)' : primaryColor!.palette['500']
|
|
108
|
+
}"
|
|
109
|
+
></button>
|
|
110
|
+
}
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
`, isInline: true, styles: [":host{position:absolute;z-index:9999;top:calc(100% + 2px);right:0;inset-inline-end:0;width:18rem;padding:.75rem;background-color:var(--overlay-background);border-radius:6px;border:1px solid var(--border-color);transform-origin:top;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;background:#fff}:host>div button{border:none;width:1.25rem;height:1.25rem;border-radius:50%;padding:0;cursor:pointer;outline-color:transparent;outline-width:2px;outline-style:solid;outline-offset:1px}:host>div button.active-color{outline-color:var(--p-primary-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: RadioButtonModule }] }); }
|
|
115
|
+
}
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeConfigPanelComponent, decorators: [{
|
|
117
|
+
type: Component,
|
|
118
|
+
args: [{ selector: 'app-theme-config-panel', standalone: true, imports: [CommonModule, FormsModule, ButtonModule, RadioButtonModule], template: `
|
|
119
|
+
<div class="config-panel-content">
|
|
120
|
+
<div class="config-panel-colors">
|
|
121
|
+
<span class="config-panel-label">Primary</span>
|
|
122
|
+
<div class="flex justify-start pt-2 flex-wrap gap-2">
|
|
123
|
+
@for (primaryColor of primaryColors(); track primaryColor.name) {
|
|
124
|
+
<button
|
|
125
|
+
type="button"
|
|
126
|
+
[title]="primaryColor.name"
|
|
127
|
+
(click)="updateColors($event, 'primary', primaryColor)"
|
|
128
|
+
[ngClass]="{ 'active-color': primaryColor.name === selectedPrimaryColor() }"
|
|
129
|
+
[style]="{
|
|
130
|
+
'background-color': primaryColor.name === 'noir' ? 'var(--text-color)' : primaryColor!.palette['500']
|
|
131
|
+
}"
|
|
132
|
+
></button>
|
|
133
|
+
}
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
`, host: {
|
|
138
|
+
class: 'config-panel hidden'
|
|
139
|
+
}, styles: [":host{position:absolute;z-index:9999;top:calc(100% + 2px);right:0;inset-inline-end:0;width:18rem;padding:.75rem;background-color:var(--overlay-background);border-radius:6px;border:1px solid var(--border-color);transform-origin:top;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;background:#fff}:host>div button{border:none;width:1.25rem;height:1.25rem;border-radius:50%;padding:0;cursor:pointer;outline-color:transparent;outline-width:2px;outline-style:solid;outline-offset:1px}:host>div button.active-color{outline-color:var(--p-primary-color)}\n"] }]
|
|
140
|
+
}] });
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtY29uZmlnLXBhbmVsLmNvbXBvZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLXVpL3NyYy9saWIvdGhlbWUtY29uZmlnL3RoZW1lLWNvbmZpZy1wYW5lbC5jb21wb2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RCxPQUFPLElBQUksTUFBTSxzQkFBc0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFXLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFHcEUsTUFBTSxPQUFPLEdBQUc7SUFDZCxJQUFJO0NBQ0wsQ0FBQTtBQStFRCxNQUFNLE9BQU8seUJBQXlCO0lBOUR0QztRQStERSxXQUFNLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLGtCQUFhLEdBQXVCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQzlELGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakMseUJBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFHLENBQUMsT0FBTyxD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VUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU3QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUNqQyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQixZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQzsrR0FqRlUseUJBQXlCO21HQUF6Qix5QkFBeUIsbUlBMUQxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW1CUCwwbkJBcEJPLFlBQVksNEhBQUUsV0FBVyw4QkFBRyxZQUFZLDhCQUFFLGlCQUFpQjs7NEZBMkQxRCx5QkFBeUI7a0JBOURyQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFHLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxZQUM1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW1CUCxRQUNHO3dCQUNKLEtBQUssRUFBRSxxQkFBcUI7cUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJwcmltZW5nL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBSYWRpb0J1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmFkaW9idXR0b24nXHJcbmltcG9ydCBBdXJhIGZyb20gJ0BwcmltZW5nL3RoZW1lcy9hdXJhJztcclxuaW1wb3J0IHsgUHJpbWVORyB9IGZyb20gXCJwcmltZW5nL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyAkZHQsICR0LCB1cGRhdGVQcmVzZXQsIHVwZGF0ZVN1cmZhY2VQYWxldHRlIH0gZnJvbSAnQHByaW1lbmcvdGhlbWVzJztcclxuaW1wb3J0IHsgVGhlbWVDb25maWdTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvdGhlbWVDb25maWcuc2VydmljZVwiO1xyXG5pbXBvcnQgeyB0aGVtZVF1YXJ0eiB9IGZyb20gXCJhZy1ncmlkLWVudGVycHJpc2VcIjtcclxuXHJcbmNvbnN0IHByZXNldHMgPSB7XHJcbiAgQXVyYVxyXG59XHJcbmludGVyZmFjZSBQYWxldHRlVHlwZSB7XHJcbiAgbmFtZTpzdHJpbmcsXHJcbiAgcGFsZXR0ZTp7XHJcbiAgICA1MD86IHN0cmluZztcclxuICAgIDEwMD86IHN0cmluZztcclxuICAgIDIwMD86IHN0cmluZztcclxuICAgIDMwMD86IHN0cmluZztcclxuICAgIDQwMD86IHN0cmluZztcclxuICAgIDUwMD86IHN0cmluZztcclxuICAgIDYwMD86IHN0cmluZztcclxuICAgIDcwMD86IHN0cmluZztcclxuICAgIDgwMD86IHN0cmluZztcclxuICAgIDkwMD86IHN0cmluZztcclxuICAgIDk1MD86IHN0cmluZztcclxuICB9XHJcbn1cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGhlbWUtY29uZmlnLXBhbmVsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCAgQnV0dG9uTW9kdWxlLCBSYWRpb0J1dHRvbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1wYW5lbC1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1wYW5lbC1jb2xvcnNcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29uZmlnLXBhbmVsLWxhYmVsXCI+UHJpbWFyeTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1zdGFydCBwdC0yIGZsZXgtd3JhcCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgIEBmb3IgKHByaW1hcnlDb2xvciBvZiBwcmltYXJ5Q29sb3JzKCk7IHRyYWNrIHByaW1hcnlDb2xvci5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInByaW1hcnlDb2xvci5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGVDb2xvcnMoJGV2ZW50LCAncHJpbWFyeScsIHByaW1hcnlDb2xvcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlLWNvbG9yJzogcHJpbWFyeUNvbG9yLm5hbWUgPT09IHNlbGVjdGVkUHJpbWFyeUNvbG9yKCkgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IHByaW1hcnlDb2xvci5uYW1lID09PSAnbm9pcicgPyAndmFyKC0tdGV4dC1jb2xvciknIDogcHJpbWFyeUNvbG9yIS5wYWxldHRlWyc1MDAnXVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2NvbmZpZy1wYW5lbCBoaWRkZW4nXHJcbiAgfSxcclxuICBzdHlsZXM6W1xyXG4gICAgYFxyXG4gICAgICA6aG9zdCB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHotaW5kZXg6OTk5OTtcclxuICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDJweCk7XHJcbiAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogMDtcclxuICAgICAgICB3aWR0aDogMThyZW07XHJcbiAgICAgICAgcGFkZGluZzogLjc1cmVtO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW92ZXJsYXktYmFja2dyb3VuZCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4ICMwMDAwMDAxYSwgMCAycHggNHB4IC0ycHggIzAwMDAwMDFhO1xyXG4gICAgICAgIGJhY2tncm91bmQ6I2ZmZlxyXG4gICAgICB9XHJcbiAgICAgIDpob3N0ID4gZGl2IGJ1dHRvbiB7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIHdpZHRoOiAxLjI1cmVtO1xyXG4gICAgICAgIGhlaWdodDogMS4yNXJlbTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgb3V0bGluZS13aWR0aDogMnB4O1xyXG4gICAgICAgIG91dGxpbmUtc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XHJcbiAgICAgIH1cclxuICAgICAgOmhvc3QgPiBkaXYgYnV0dG9uLmFjdGl2ZS1jb2xvciB7XHJcbiAgICAgICAgb3V0bGluZS1jb2xvcjogdmFyKC0tcC1wcmltYXJ5LWNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgYFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRoZW1lQ29uZmlnUGFuZWxDb21wb25lbnQge1xyXG4gIGNvbmZpZzogUHJpbWVORyA9IGluamVjdChQcmltZU5HKTtcclxuICBjb25maWdTZXJ2aWNlOiBUaGVtZUNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoVGhlbWVDb25maWdTZXJ2aWNlKVxyXG4gIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xyXG5cclxuICBzZWxlY3RlZFByaW1hcnlDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5hcHBTdGF0ZSgpIS5wcmltYXJ5O1xyXG4gIH0pO1xyXG4gIHByaW1hcnlDb2xvcnMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBwcmVzZXQgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuYXBwU3RhdGUoKT8ucHJlc2V0XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBjb25zdCBwcmVzZXRQYWxldHRlID0gcHJlc2V0c1twcmVzZXRdLnByaW1pdGl2ZTtcclxuICAgIGNvbnN0IGNvbG9ycyA9IFsnZW1lcmFsZCcsICdncmVlbicsICdsaW1lJywgJ29yYW5nZScsICdhbWJlcicsICd5ZWxsb3cnLCAndGVhbCcsICdjeWFuJywgJ3NreScsICdibHVlJywgJ2luZGlnbycsICd2aW9sZXQnLCAncHVycGxlJywgJ2Z1Y2hzaWEnLCAncGluaycsICdyb3NlJ107XHJcbiAgICBjb25zdCBwYWxldHRlczpBcnJheTxQYWxldHRlVHlwZT4gPSBbXTtcclxuXHJcbiAgICBjb2xvcnMuZm9yRWFjaCgoY29sb3IpID0+IHtcclxuICAgICAgICBwYWxldHRlcy5wdXNoKHtcclxuICAgICAgICAgICAgbmFtZTogY29sb3IsXHJcbiAgICAgICAgICAgIHBhbGV0dGU6IHByZXNldFBhbGV0dGVbY29sb3JdXHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwYWxldHRlcztcclxuICBcclxuICB9KTtcclxuXHJcbiAgZ2V0UHJlc2V0RXh0KCkge1xyXG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnByaW1hcnlDb2xvcnMoKS5maW5kKChjKSA9PiBjLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRQcmltYXJ5Q29sb3IoKSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzZW1hbnRpYzoge1xyXG4gICAgICAgIHByaW1hcnk6IGNvbG9yIS5wYWxldHRlLFxyXG4gICAgICAgIGNvbG9yU2NoZW1lOiB7XHJcbiAgICAgICAgICBsaWdodDoge1xyXG4gICAgICAgICAgICAgIHByaW1hcnk6IHtcclxuICAgICAgICAgICAgICAgICAgY29sb3I6ICd7cHJpbWFyeS41MDB9JyxcclxuICAgICAgICAgICAgICAgICAgY29udHJhc3RDb2xvcjogJyNmZmZmZmYnLFxyXG4gICAgICAgICAgICAgICAgICBob3ZlckNvbG9yOiAne3ByaW1hcnkuNjAwfScsXHJcbiAgICAgICAgICAgICAgICAgIGFjdGl2ZUNvbG9yOiAne3ByaW1hcnkuNzAwfSdcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGhpZ2hsaWdodDoge1xyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAne3ByaW1hcnkuNTB9JyxcclxuICAgICAgICAgICAgICAgICAgZm9jdXNCYWNrZ3JvdW5kOiAne3ByaW1hcnkuMTAwfScsXHJcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAne3ByaW1hcnkuNzAwfScsXHJcbiAgICAgICAgICAgICAgICAgIGZvY3VzQ29sb3I6ICd7cHJpbWFyeS44MDB9J1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXJrOiB7XHJcbiAgICAgICAgICAgICAgcHJpbWFyeToge1xyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ3twcmltYXJ5LjQwMH0nLFxyXG4gICAgICAgICAgICAgICAgICBjb250cmFzdENvbG9yOiAne3N1cmZhY2UuOTAwfScsXHJcbiAgICAgICAgICAgICAgICAgIGhvdmVyQ29sb3I6ICd7cHJpbWFyeS4zMDB9JyxcclxuICAgICAgICAgICAgICAgICAgYWN0aXZlQ29sb3I6ICd7cHJpbWFyeS4yMDB9J1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgaGlnaGxpZ2h0OiB7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICdjb2xvci1taXgoaW4gc3JnYiwge3ByaW1hcnkuNDAwfSwgdHJhbnNwYXJlbnQgODQlKScsXHJcbiAgICAgICAgICAgICAgICAgIGZvY3VzQmFja2dyb3VuZDogJ2NvbG9yLW1peChpbiBzcmdiLCB7cHJpbWFyeS40MDB9LCB0cmFuc3BhcmVudCA3NiUpJyxcclxuICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LC44NyknLFxyXG4gICAgICAgICAgICAgICAgICBmb2N1c0NvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwuODcpJ1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb2xvcnMoZXZlbnQ6IGFueSwgdHlwZTogc3RyaW5nLCBjb2xvcjogYW55KSB7XHJcbiAgICBpZiAodHlwZSA9PT0gJ3ByaW1hcnknKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmFwcFN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7IC4uLnN0YXRlLCBwcmltYXJ5OiBjb2xvci5uYW1lIH0pKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3N1cmZhY2UnKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmFwcFN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+ICh7IC4uLnN0YXRlLCBzdXJmYWNlOiBjb2xvci5uYW1lIH0pKTtcclxuICAgIH1cclxuICAgIHRoaXMuYXBwbHlUaGVtZSh0eXBlLCBjb2xvcik7XHJcblxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBhcHBseVRoZW1lKHR5cGU6IHN0cmluZywgY29sb3I6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT09ICdwcmltYXJ5Jykge1xyXG4gICAgICAgIHVwZGF0ZVByZXNldCh0aGlzLmdldFByZXNldEV4dCgpKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3N1cmZhY2UnKSB7XHJcbiAgICAgICAgdXBkYXRlU3VyZmFjZVBhbGV0dGUoY29sb3IucGFsZXR0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufSJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { ThemeConfigPanelComponent } from './theme-config-panel.compoent';
|
|
3
|
+
import { StyleClassModule } from 'primeng/styleclass';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "primeng/styleclass";
|
|
6
|
+
// import {}
|
|
7
|
+
export class ThemeConfigComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ThemeConfigComponent, isStandalone: true, selector: "app-theme-config", ngImport: i0, template: `
|
|
12
|
+
<div class="relative" style="margin-left:1rem">
|
|
13
|
+
<button type="button"
|
|
14
|
+
class="topbar-item config-item "
|
|
15
|
+
enterActiveClass="animate-scalein"
|
|
16
|
+
enterFromClass="hidden"
|
|
17
|
+
leaveActiveClass="animate-fadeout"
|
|
18
|
+
leaveToClass="hidden"
|
|
19
|
+
pStyleClass="@next"
|
|
20
|
+
[hideOnOutsideClick]="true">
|
|
21
|
+
<i class="pi pi-palette"></i>
|
|
22
|
+
</button>
|
|
23
|
+
<app-theme-config-panel />
|
|
24
|
+
</div>
|
|
25
|
+
`, isInline: true, styles: [".topbar-item{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border-color);width:2rem;height:2rem;transition:outline-color .2s,border-color .2s;border-radius:6px;margin:0;padding:0;outline-color:transparent;background-color:var(--card-background);cursor:pointer}\n", ".config-item{background-color:var(--p-primary-color)}.config-item i{color:var(--p-primary-contrast-color)}\n"], dependencies: [{ kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i1.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }, { kind: "component", type: ThemeConfigPanelComponent, selector: "app-theme-config-panel" }] }); }
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeConfigComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'app-theme-config', standalone: true, imports: [StyleClassModule, ThemeConfigPanelComponent], template: `
|
|
30
|
+
<div class="relative" style="margin-left:1rem">
|
|
31
|
+
<button type="button"
|
|
32
|
+
class="topbar-item config-item "
|
|
33
|
+
enterActiveClass="animate-scalein"
|
|
34
|
+
enterFromClass="hidden"
|
|
35
|
+
leaveActiveClass="animate-fadeout"
|
|
36
|
+
leaveToClass="hidden"
|
|
37
|
+
pStyleClass="@next"
|
|
38
|
+
[hideOnOutsideClick]="true">
|
|
39
|
+
<i class="pi pi-palette"></i>
|
|
40
|
+
</button>
|
|
41
|
+
<app-theme-config-panel />
|
|
42
|
+
</div>
|
|
43
|
+
`, styles: [".topbar-item{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border-color);width:2rem;height:2rem;transition:outline-color .2s,border-color .2s;border-radius:6px;margin:0;padding:0;outline-color:transparent;background-color:var(--card-background);cursor:pointer}\n", ".config-item{background-color:var(--p-primary-color)}.config-item i{color:var(--p-primary-contrast-color)}\n"] }]
|
|
44
|
+
}], ctorParameters: () => [] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtY29uZmlnLmNvbXBvZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLXVpL3NyYy9saWIvdGhlbWUtY29uZmlnL3RoZW1lLWNvbmZpZy5jb21wb2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLCtCQUErQixDQUFBO0FBQ3ZFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFBOzs7QUFDbkQsWUFBWTtBQWdEWixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CO0lBQ0EsQ0FBQzsrR0FIVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiw0RUEzQ3RCOzs7Ozs7Ozs7Ozs7OztLQWNOLG9mQWZNLGdCQUFnQiw0VEFBQyx5QkFBeUI7OzRGQTRDeEMsb0JBQW9CO2tCQS9DaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNSLENBQUMsZ0JBQWdCLEVBQUMseUJBQXlCLENBQUMsWUFDM0M7Ozs7Ozs7Ozs7Ozs7O0tBY04iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RoZW1lQ29uZmlnUGFuZWxDb21wb25lbnR9IGZyb20gJy4vdGhlbWUtY29uZmlnLXBhbmVsLmNvbXBvZW50J1xyXG5pbXBvcnQge1N0eWxlQ2xhc3NNb2R1bGV9IGZyb20gJ3ByaW1lbmcvc3R5bGVjbGFzcydcclxuLy8gaW1wb3J0IHt9XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXRoZW1lLWNvbmZpZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOltTdHlsZUNsYXNzTW9kdWxlLFRoZW1lQ29uZmlnUGFuZWxDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlOmBcclxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDoxcmVtXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgIFxyXG4gICAgICAgICAgY2xhc3M9XCJ0b3BiYXItaXRlbSBjb25maWctaXRlbSBcIiBcclxuICAgICAgICAgIGVudGVyQWN0aXZlQ2xhc3M9XCJhbmltYXRlLXNjYWxlaW5cIiBcclxuICAgICAgICAgIGVudGVyRnJvbUNsYXNzPVwiaGlkZGVuXCIgXHJcbiAgICAgICAgICBsZWF2ZUFjdGl2ZUNsYXNzPVwiYW5pbWF0ZS1mYWRlb3V0XCIgXHJcbiAgICAgICAgICBsZWF2ZVRvQ2xhc3M9XCJoaWRkZW5cIlxyXG4gICAgICAgICAgcFN0eWxlQ2xhc3M9XCJAbmV4dFwiIFxyXG4gICAgICAgICAgW2hpZGVPbk91dHNpZGVDbGlja109XCJ0cnVlXCI+IFxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1wYWxldHRlXCI+PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxhcHAtdGhlbWUtY29uZmlnLXBhbmVsIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBzdHlsZXM6W1xyXG4gICAgYC50b3BiYXItaXRlbSB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XHJcbiAgICAgIHdpZHRoOiAycmVtO1xyXG4gICAgICBoZWlnaHQ6IDJyZW07XHJcbiAgICAgIHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgLjJzLCBib3JkZXItY29sb3IgLjJzO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtYmFja2dyb3VuZCk7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1gLFxyXG4gICAgYC5jb25maWctaXRlbSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wLXByaW1hcnktY29sb3IpXHJcbiAgICAgIH1cclxuICAgICAgLmNvbmZpZy1pdGVtIGkge1xyXG4gICAgICAgIGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29udHJhc3QtY29sb3IpO1xyXG4gICAgICB9XHJcbiAgICBgXHJcbiAgICBcclxuICBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVGhlbWVDb25maWdDb21wb25lbnQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of am-front-ui
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/am/am.component';
|
|
5
|
+
export * from './lib/form/form/form.component';
|
|
6
|
+
export * from './lib/crumb-action/crumb-action.component';
|
|
7
|
+
export * from './lib/grid/grid/grid.component';
|
|
8
|
+
export * from './lib/head/head.component';
|
|
9
|
+
export * from './lib/import/import.component';
|
|
10
|
+
export * from './lib/log/log.component';
|
|
11
|
+
export * from './lib/row-selector/row-selector.component';
|
|
12
|
+
export * from './lib/share/utils';
|
|
13
|
+
export * from './lib/service/action.service';
|
|
14
|
+
export * from './lib/service/i18n.service';
|
|
15
|
+
export * from './lib/service/themeConfig.service';
|
|
16
|
+
export * from './lib/page-form/page-form.component';
|
|
17
|
+
export * from './lib/page-grid-list/page-grid-list.component';
|
|
18
|
+
export * from './lib/steps/steps.component';
|
|
19
|
+
export * from './lib/row-selector/row-selector.component';
|
|
20
|
+
export * from './lib/search/search/search.component';
|
|
21
|
+
export * from './lib/page-form/page-form.interface';
|
|
22
|
+
export * from './lib/service/userHistory.service';
|
|
23
|
+
export * from './lib/theme-config/theme-config.compoent';
|
|
24
|
+
// export * from './styles/styles.d.ts'
|
|
25
|
+
// export * from './lib/styles/styles.scss'
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2ltbS11aS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsdUJBQXVCLENBQUE7QUFFckMsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUU5QyxjQUFjLDJDQUEyQyxDQUFBO0FBRXpELGNBQWMsZ0NBQWdDLENBQUE7QUFFOUMsY0FBYywyQkFBMkIsQ0FBQTtBQUV6QyxjQUFlLCtCQUErQixDQUFBO0FBRTlDLGNBQWMseUJBQXlCLENBQUE7QUFFdkMsY0FBYywyQ0FBMkMsQ0FBQTtBQUV6RCxjQUFjLG1CQUFtQixDQUFBO0FBRWpDLGNBQWMsOEJBQThCLENBQUE7QUFFNUMsY0FBYyw0QkFBNEIsQ0FBQTtBQUUxQyxjQUFjLG1DQUFtQyxDQUFBO0FBRWpELGNBQWMscUNBQXFDLENBQUE7QUFFbkQsY0FBYywrQ0FBK0MsQ0FBQTtBQUU3RCxjQUFjLDZCQUE2QixDQUFBO0FBRTNDLGNBQWMsMkNBQTJDLENBQUE7QUFFekQsY0FBYyxzQ0FBc0MsQ0FBQTtBQUVwRCxjQUFjLHFDQUFxQyxDQUFBO0FBRW5ELGNBQWMsbUNBQW1DLENBQUE7QUFFakQsY0FBYywwQ0FBMEMsQ0FBQTtBQUN4RCx1Q0FBdUM7QUFFdkMsMkNBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFtLWZyb250LXVpXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbS9hbS5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtL2Zvcm0vZm9ybS5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jcnVtYi1hY3Rpb24vY3J1bWItYWN0aW9uLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlYWQvaGVhZC5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICAnLi9saWIvaW1wb3J0L2ltcG9ydC5jb21wb25lbnQnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2cvbG9nLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jvdy1zZWxlY3Rvci9yb3ctc2VsZWN0b3IuY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmUvdXRpbHMnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJ1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9pMThuLnNlcnZpY2UnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3RoZW1lQ29uZmlnLnNlcnZpY2UnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlLWZvcm0vcGFnZS1mb3JtLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2UtZ3JpZC1saXN0L3BhZ2UtZ3JpZC1saXN0LmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0ZXBzL3N0ZXBzLmNvbXBvbmVudCdcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jvdy1zZWxlY3Rvci9yb3ctc2VsZWN0b3IuY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VhcmNoL3NlYXJjaC9zZWFyY2guY29tcG9uZW50J1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5pbnRlcmZhY2UnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3VzZXJIaXN0b3J5LnNlcnZpY2UnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90aGVtZS1jb25maWcvdGhlbWUtY29uZmlnLmNvbXBvZW50J1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL3N0eWxlcy9zdHlsZXMuZC50cydcclxuXHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3N0eWxlcy9zdHlsZXMuc2NzcyciXX0=
|