matcha-components 20.265.0 → 20.268.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15613,6 +15613,585 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
15613
15613
  }]
15614
15614
  }] });
15615
15615
 
15616
+ class MatchaPageBuilderComponent {
15617
+ set text(value) {
15618
+ this._text = value;
15619
+ if (this.isEditorInitialized && this.editor && value) {
15620
+ this.editor.setComponents(value);
15621
+ }
15622
+ }
15623
+ constructor(ngZone) {
15624
+ this.ngZone = ngZone;
15625
+ this.showControls = false;
15626
+ this.onSave = new EventEmitter();
15627
+ this.onChange = new EventEmitter();
15628
+ this._changeDebounceTimer = null;
15629
+ this.containerId = 'gjs-' + Math.random().toString(36).substring(2, 9);
15630
+ this.isLoading = true;
15631
+ this._text = '';
15632
+ this.isEditorInitialized = false;
15633
+ }
15634
+ ngOnInit() { }
15635
+ async ngAfterViewInit() {
15636
+ // Roda fora da zona do Angular para evitar conflito do Zone.js com callbacks internos do GrapesJS
15637
+ this.ngZone.runOutsideAngular(async () => {
15638
+ try {
15639
+ console.log('[PageBuilder] ▶ Iniciando carregamento...', { containerId: this.containerId });
15640
+ // Helper para injetar scripts via URL
15641
+ const injectScript = (id, url) => {
15642
+ return new Promise((resolve) => {
15643
+ const existingScript = document.getElementById(id);
15644
+ if (existingScript) {
15645
+ if (existingScript.hasAttribute('data-loaded')) {
15646
+ resolve();
15647
+ return;
15648
+ }
15649
+ existingScript.addEventListener('load', () => resolve());
15650
+ existingScript.addEventListener('error', () => resolve()); // Continua mesmo com erro
15651
+ return;
15652
+ }
15653
+ const script = document.createElement('script');
15654
+ script.type = 'text/javascript';
15655
+ script.id = id;
15656
+ script.src = url;
15657
+ script.onload = () => {
15658
+ script.setAttribute('data-loaded', 'true');
15659
+ resolve();
15660
+ };
15661
+ script.onerror = () => {
15662
+ console.warn(`[PageBuilder] ⚠ Falha ao carregar script opcional: ${id}`);
15663
+ resolve(); // NÃO rejeita, apenas avisa
15664
+ };
15665
+ document.head.appendChild(script);
15666
+ });
15667
+ };
15668
+ // Helper para injetar CSS via URL
15669
+ const injectStyle = (id, url) => {
15670
+ return new Promise((resolve) => {
15671
+ if (document.getElementById(id)) {
15672
+ resolve();
15673
+ return;
15674
+ }
15675
+ const link = document.createElement('link');
15676
+ link.id = id;
15677
+ link.rel = 'stylesheet';
15678
+ link.href = url;
15679
+ link.onload = () => resolve();
15680
+ link.onerror = () => resolve(); // CSS não bloqueia mesmo se falhar
15681
+ document.head.appendChild(link);
15682
+ });
15683
+ };
15684
+ // Sem @latest — unpkg usa a última versão publicada por padrão
15685
+ const CDN_BASE = 'https://unpkg.com/matcha-components/assets/page-builder';
15686
+ const ASSETS_JS_PATH = `${CDN_BASE}/js`;
15687
+ const ASSETS_CSS_PATH = `${CDN_BASE}/css`;
15688
+ // 0. Carrega o CSS
15689
+ await injectStyle('grapesjs-css', `${ASSETS_CSS_PATH}/grapes.min.css`);
15690
+ await injectStyle('grapick-css', `${ASSETS_CSS_PATH}/grapick.min.css`);
15691
+ // 1. Carrega o Core do GrapesJS
15692
+ await injectScript('grapesjs-core', `${ASSETS_JS_PATH}/grapes.min.js`);
15693
+ const grapesjs = window.grapesjs;
15694
+ console.log('[PageBuilder] 🔍 window.grapesjs after load:', typeof grapesjs, !!grapesjs?.init);
15695
+ if (!grapesjs || !grapesjs.init) {
15696
+ console.error('[PageBuilder] ❌ GrapesJS global não encontrado após injeção!');
15697
+ return;
15698
+ }
15699
+ // 2. Carrega todos os plugins (usando os nomes dos arquivos no CDN)
15700
+ const pluginFiles = [
15701
+ 'gjs-blocks-basic',
15702
+ 'grapesjs-plugin-forms',
15703
+ 'grapesjs-component-countdown',
15704
+ 'grapesjs-plugin-export',
15705
+ 'grapesjs-tabs',
15706
+ 'grapesjs-custom-code',
15707
+ 'grapesjs-touch',
15708
+ 'grapesjs-parser-postcss',
15709
+ 'grapesjs-tooltip',
15710
+ 'grapesjs-tui-image-editor',
15711
+ 'grapesjs-typed',
15712
+ 'grapesjs-style-bg',
15713
+ 'grapesjs-preset-webpage'
15714
+ ];
15715
+ for (const file of pluginFiles) {
15716
+ await injectScript(file, `${ASSETS_JS_PATH}/${file}.js`);
15717
+ }
15718
+ // 3. IDs dos plugins registrados internamente (conforme o demo funcional)
15719
+ const pluginIds = [
15720
+ 'gjs-blocks-basic',
15721
+ 'grapesjs-plugin-forms',
15722
+ 'grapesjs-component-countdown',
15723
+ 'grapesjs-plugin-export',
15724
+ 'grapesjs-tabs',
15725
+ 'grapesjs-custom-code',
15726
+ 'grapesjs-touch',
15727
+ 'grapesjs-parser-postcss',
15728
+ 'grapesjs-tooltip',
15729
+ 'grapesjs-tui-image-editor',
15730
+ 'grapesjs-typed',
15731
+ 'grapesjs-style-bg',
15732
+ 'grapesjs-preset-webpage'
15733
+ ];
15734
+ console.log('[PageBuilder] ✅ Scripts carregados. Inicializando GrapesJS...');
15735
+ // 3. Inicializa o editor
15736
+ this.editor = grapesjs.init({
15737
+ height: '100%',
15738
+ container: `#${this.containerId}`,
15739
+ fromElement: true, // Changed from false to true
15740
+ showOffsets: true,
15741
+ assetManager: {
15742
+ embedAsBase64: true,
15743
+ },
15744
+ selectorManager: { componentFirst: true },
15745
+ styleManager: {
15746
+ sectors: [
15747
+ {
15748
+ name: 'General',
15749
+ properties: [
15750
+ {
15751
+ extend: 'float',
15752
+ type: 'radio',
15753
+ default: 'none',
15754
+ options: [
15755
+ { value: 'none', className: 'fa fa-times' },
15756
+ { value: 'left', className: 'fa fa-align-left' },
15757
+ { value: 'right', className: 'fa fa-align-right' }
15758
+ ],
15759
+ },
15760
+ 'display',
15761
+ { extend: 'position', type: 'select' },
15762
+ 'top',
15763
+ 'right',
15764
+ 'left',
15765
+ 'bottom',
15766
+ ],
15767
+ }, {
15768
+ name: 'Dimension',
15769
+ open: false,
15770
+ properties: [
15771
+ 'width',
15772
+ {
15773
+ id: 'flex-width',
15774
+ type: 'integer',
15775
+ name: 'Width',
15776
+ units: ['px', '%'],
15777
+ property: 'flex-basis',
15778
+ toRequire: 1,
15779
+ },
15780
+ 'height',
15781
+ 'max-width',
15782
+ 'min-height',
15783
+ 'margin',
15784
+ 'padding'
15785
+ ],
15786
+ }, {
15787
+ name: 'Typography',
15788
+ open: false,
15789
+ properties: [
15790
+ 'font-family',
15791
+ 'font-size',
15792
+ 'font-weight',
15793
+ 'letter-spacing',
15794
+ 'color',
15795
+ 'line-height',
15796
+ {
15797
+ extend: 'text-align',
15798
+ options: [
15799
+ { id: 'left', label: 'Left', className: 'fa fa-align-left' },
15800
+ { id: 'center', label: 'Center', className: 'fa fa-align-center' },
15801
+ { id: 'right', label: 'Right', className: 'fa fa-align-right' },
15802
+ { id: 'justify', label: 'Justify', className: 'fa fa-align-justify' }
15803
+ ],
15804
+ },
15805
+ {
15806
+ property: 'text-decoration',
15807
+ type: 'radio',
15808
+ default: 'none',
15809
+ options: [
15810
+ { id: 'none', label: 'None', className: 'fa fa-times' },
15811
+ { id: 'underline', label: 'underline', className: 'fa fa-underline' },
15812
+ { id: 'line-through', label: 'Line-through', className: 'fa fa-strikethrough' }
15813
+ ],
15814
+ },
15815
+ 'text-shadow'
15816
+ ],
15817
+ }, {
15818
+ name: 'Decorations',
15819
+ open: false,
15820
+ properties: [
15821
+ 'opacity',
15822
+ 'border-radius',
15823
+ 'border',
15824
+ 'box-shadow',
15825
+ 'background', // { id: 'background-bg', property: 'background', type: 'bg' }
15826
+ ],
15827
+ }, {
15828
+ name: 'Extra',
15829
+ open: false,
15830
+ buildProps: [
15831
+ 'transition',
15832
+ 'perspective',
15833
+ 'transform'
15834
+ ],
15835
+ }, {
15836
+ name: 'Flex',
15837
+ open: false,
15838
+ properties: [{
15839
+ name: 'Flex Container',
15840
+ property: 'display',
15841
+ type: 'select',
15842
+ defaults: 'block',
15843
+ list: [
15844
+ { value: 'block', name: 'Disable' },
15845
+ { value: 'flex', name: 'Enable' }
15846
+ ],
15847
+ }, {
15848
+ name: 'Flex Parent',
15849
+ property: 'label-parent-flex',
15850
+ type: 'integer',
15851
+ }, {
15852
+ name: 'Direction',
15853
+ property: 'flex-direction',
15854
+ type: 'radio',
15855
+ defaults: 'row',
15856
+ list: [{
15857
+ value: 'row',
15858
+ name: 'Row',
15859
+ className: 'icons-flex icon-dir-row',
15860
+ title: 'Row',
15861
+ }, {
15862
+ value: 'row-reverse',
15863
+ name: 'Row reverse',
15864
+ className: 'icons-flex icon-dir-row-rev',
15865
+ title: 'Row reverse',
15866
+ }, {
15867
+ value: 'column',
15868
+ name: 'Column',
15869
+ title: 'Column',
15870
+ className: 'icons-flex icon-dir-col',
15871
+ }, {
15872
+ value: 'column-reverse',
15873
+ name: 'Column reverse',
15874
+ title: 'Column reverse',
15875
+ className: 'icons-flex icon-dir-col-rev',
15876
+ }],
15877
+ }, {
15878
+ name: 'Justify',
15879
+ property: 'justify-content',
15880
+ type: 'radio',
15881
+ defaults: 'flex-start',
15882
+ list: [{
15883
+ value: 'flex-start',
15884
+ className: 'icons-flex icon-just-start',
15885
+ title: 'Start',
15886
+ }, {
15887
+ value: 'flex-end',
15888
+ title: 'End',
15889
+ className: 'icons-flex icon-just-end',
15890
+ }, {
15891
+ value: 'space-between',
15892
+ title: 'Space between',
15893
+ className: 'icons-flex icon-just-sp-bet',
15894
+ }, {
15895
+ value: 'space-around',
15896
+ title: 'Space around',
15897
+ className: 'icons-flex icon-just-sp-ar',
15898
+ }, {
15899
+ value: 'center',
15900
+ title: 'Center',
15901
+ className: 'icons-flex icon-just-sp-cent',
15902
+ }],
15903
+ }, {
15904
+ name: 'Align',
15905
+ property: 'align-items',
15906
+ type: 'radio',
15907
+ defaults: 'center',
15908
+ list: [{
15909
+ value: 'flex-start',
15910
+ title: 'Start',
15911
+ className: 'icons-flex icon-al-start',
15912
+ }, {
15913
+ value: 'flex-end',
15914
+ title: 'End',
15915
+ className: 'icons-flex icon-al-end',
15916
+ }, {
15917
+ value: 'stretch',
15918
+ title: 'Stretch',
15919
+ className: 'icons-flex icon-al-str',
15920
+ }, {
15921
+ value: 'center',
15922
+ title: 'Center',
15923
+ className: 'icons-flex icon-al-center',
15924
+ }],
15925
+ }, {
15926
+ name: 'Flex Children',
15927
+ property: 'label-parent-flex',
15928
+ type: 'integer',
15929
+ }, {
15930
+ name: 'Order',
15931
+ property: 'order',
15932
+ type: 'integer',
15933
+ defaults: 0,
15934
+ min: 0
15935
+ }, {
15936
+ name: 'Flex',
15937
+ property: 'flex',
15938
+ type: 'composite',
15939
+ properties: [{
15940
+ name: 'Grow',
15941
+ property: 'flex-grow',
15942
+ type: 'integer',
15943
+ defaults: 0,
15944
+ min: 0
15945
+ }, {
15946
+ name: 'Shrink',
15947
+ property: 'flex-shrink',
15948
+ type: 'integer',
15949
+ defaults: 0,
15950
+ min: 0
15951
+ }, {
15952
+ name: 'Basis',
15953
+ property: 'flex-basis',
15954
+ type: 'integer',
15955
+ units: ['px', '%', ''],
15956
+ unit: '',
15957
+ defaults: 'auto',
15958
+ }],
15959
+ }, {
15960
+ name: 'Align',
15961
+ property: 'align-self',
15962
+ type: 'radio',
15963
+ defaults: 'auto',
15964
+ list: [{
15965
+ value: 'auto',
15966
+ name: 'Auto',
15967
+ }, {
15968
+ value: 'flex-start',
15969
+ title: 'Start',
15970
+ className: 'icons-flex icon-al-start',
15971
+ }, {
15972
+ value: 'flex-end',
15973
+ title: 'End',
15974
+ className: 'icons-flex icon-al-end',
15975
+ }, {
15976
+ value: 'stretch',
15977
+ title: 'Stretch',
15978
+ className: 'icons-flex icon-al-str',
15979
+ }, {
15980
+ value: 'center',
15981
+ title: 'Center',
15982
+ className: 'icons-flex icon-al-center',
15983
+ }],
15984
+ }]
15985
+ }
15986
+ ],
15987
+ },
15988
+ plugins: pluginIds,
15989
+ pluginsOpts: {
15990
+ 'gjs-blocks-basic': { flexGrid: true },
15991
+ 'grapesjs-tui-image-editor': {
15992
+ script: [
15993
+ // 'https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.7/fabric.min.js',
15994
+ 'https://uicdn.toast.com/tui.code-snippet/v1.5.2/tui-code-snippet.min.js',
15995
+ 'https://uicdn.toast.com/tui-color-picker/v2.2.7/tui-color-picker.min.js',
15996
+ 'https://uicdn.toast.com/tui-image-editor/v3.15.2/tui-image-editor.min.js'
15997
+ ],
15998
+ style: [
15999
+ 'https://uicdn.toast.com/tui-color-picker/v2.2.7/tui-color-picker.min.css',
16000
+ 'https://uicdn.toast.com/tui-image-editor/v3.15.2/tui-image-editor.min.css',
16001
+ ],
16002
+ },
16003
+ 'grapesjs-tabs': {
16004
+ tabsBlock: { category: 'Extra' }
16005
+ },
16006
+ 'grapesjs-typed': {
16007
+ block: {
16008
+ category: 'Extra',
16009
+ content: {
16010
+ type: 'typed',
16011
+ 'type-speed': 40,
16012
+ strings: [
16013
+ 'Text row one',
16014
+ 'Text row two',
16015
+ 'Text row three',
16016
+ ],
16017
+ }
16018
+ }
16019
+ },
16020
+ 'grapesjs-preset-webpage': {
16021
+ showStylesOnChange: 0,
16022
+ modalImportTitle: 'Import Template',
16023
+ modalImportLabel: '<div style="margin-bottom: 10px; font-size: 13px;">Paste here your HTML/CSS and click Import</div>',
16024
+ modalImportContent: function (editor) {
16025
+ return editor.getHtml() + '<style>' + editor.getCss() + '</style>';
16026
+ },
16027
+ },
16028
+ },
16029
+ });
16030
+ const editor = this.editor;
16031
+ editor.I18n.addMessages({
16032
+ en: {
16033
+ styleManager: {
16034
+ properties: {
16035
+ 'background-repeat': 'Repeat',
16036
+ 'background-position': 'Position',
16037
+ 'background-attachment': 'Attachment',
16038
+ 'background-size': 'Size',
16039
+ }
16040
+ },
16041
+ }
16042
+ });
16043
+ var pn = editor.Panels;
16044
+ var modal = editor.Modal;
16045
+ var cmdm = editor.Commands;
16046
+ // Update canvas-clear command
16047
+ cmdm.add('canvas-clear', function () {
16048
+ if (confirm('Are you sure to clean the canvas?')) {
16049
+ editor.runCommand('core:canvas-clear');
16050
+ setTimeout(function () { localStorage.clear(); }, 0);
16051
+ }
16052
+ });
16053
+ // Removemos os comandos referenciando infoContainer que não existe
16054
+ // Add and beautify tooltips
16055
+ [['sw-visibility', 'Show Borders'], ['preview', 'Preview'], ['fullscreen', 'Fullscreen'],
16056
+ ['export-template', 'Export'], ['undo', 'Undo'], ['redo', 'Redo'],
16057
+ ['gjs-open-import-webpage', 'Import'], ['canvas-clear', 'Clear canvas']]
16058
+ .forEach(function (item) {
16059
+ const btn = pn.getButton('options', item[0]);
16060
+ if (btn)
16061
+ btn.set('attributes', { title: item[1], 'data-tooltip-pos': 'bottom' });
16062
+ });
16063
+ [['open-sm', 'Style Manager'], ['open-layers', 'Layers'], ['open-blocks', 'Blocks']]
16064
+ .forEach(function (item) {
16065
+ const btn = pn.getButton('views', item[0]);
16066
+ if (btn)
16067
+ btn.set('attributes', { title: item[1], 'data-tooltip-pos': 'bottom' });
16068
+ });
16069
+ // Do stuff on load
16070
+ editor.on('load', () => {
16071
+ var $ = grapesjs.$;
16072
+ // Show borders by default
16073
+ pn.getButton('options', 'sw-visibility').set('active', 1);
16074
+ // Show logo with the version
16075
+ // Load and show settings and style manager
16076
+ var openTmBtn = pn.getButton('views', 'open-tm');
16077
+ openTmBtn && openTmBtn.set('active', 1);
16078
+ var openSm = pn.getButton('views', 'open-sm');
16079
+ openSm && openSm.set('active', 1);
16080
+ // Remove trait view
16081
+ pn.removeButton('views', 'open-tm');
16082
+ // Add Settings Sector
16083
+ const traitsSectorEl = document.createElement('div');
16084
+ traitsSectorEl.className = 'gjs-sm-sector no-select';
16085
+ traitsSectorEl.innerHTML =
16086
+ '<div class="gjs-sm-sector-title"><span class="icon-settings fa fa-cog"></span> <span class="gjs-sm-sector-label">Settings</span></div>' +
16087
+ '<div class="gjs-sm-properties" style="display: none;"></div>';
16088
+ const traitsProps = traitsSectorEl.querySelector('.gjs-sm-properties');
16089
+ const gjsTrtTraits = document.querySelector('.gjs-trt-traits');
16090
+ if (gjsTrtTraits && traitsProps) {
16091
+ traitsProps.appendChild(gjsTrtTraits);
16092
+ }
16093
+ const smSectors = document.querySelector('.gjs-sm-sectors');
16094
+ if (smSectors) {
16095
+ smSectors.parentNode?.insertBefore(traitsSectorEl, smSectors);
16096
+ }
16097
+ const sectorTitle = traitsSectorEl.querySelector('.gjs-sm-sector-title');
16098
+ if (sectorTitle && traitsProps) {
16099
+ sectorTitle.addEventListener('click', function () {
16100
+ const hidden = traitsProps.style.display === 'none';
16101
+ traitsProps.style.display = hidden ? 'block' : 'none';
16102
+ });
16103
+ }
16104
+ // Open block manager
16105
+ var openBlocksBtn = editor.Panels.getButton('views', 'open-blocks');
16106
+ openBlocksBtn && openBlocksBtn.set('active', 1);
16107
+ editor.on('component:selected', (a) => {
16108
+ const btnOpenCode = editor.Panels.getButton('views', 'code-editor');
16109
+ if (!btnOpenCode.active) {
16110
+ const openSmBtn = editor.Panels.getButton('views', 'open-sm');
16111
+ openSmBtn.set('active', true);
16112
+ }
16113
+ });
16114
+ this.isEditorInitialized = true;
16115
+ if (this._text) {
16116
+ this.editor.setComponents(this._text);
16117
+ }
16118
+ this.ngZone.run(() => { this.isLoading = false; });
16119
+ editor.on('update', () => {
16120
+ clearTimeout(this._changeDebounceTimer);
16121
+ this._changeDebounceTimer = setTimeout(() => {
16122
+ const html = editor.getHtml();
16123
+ const css = editor.getCss();
16124
+ this.ngZone.run(() => {
16125
+ this.onChange.emit(`<style>${css}</style>${html}`);
16126
+ });
16127
+ }, 300);
16128
+ });
16129
+ });
16130
+ // Se o evento 'load' demorar, podemos tentar setar os componentes se já estiver inicializado
16131
+ if (this.editor && !this.isEditorInitialized && this._text) {
16132
+ this.editor.setComponents(this._text);
16133
+ }
16134
+ }
16135
+ catch (error) {
16136
+ console.error('[PageBuilder] ❌ Erro ao inicializar o GrapesJS:', error);
16137
+ }
16138
+ }); // fim runOutsideAngular
16139
+ }
16140
+ save() {
16141
+ if (!this.editor)
16142
+ return;
16143
+ const html = this.editor.getHtml();
16144
+ const css = this.editor.getCss();
16145
+ const combinedOutput = `<style>${css}</style>${html}`;
16146
+ this.onSave.emit(combinedOutput);
16147
+ }
16148
+ ngOnDestroy() {
16149
+ clearTimeout(this._changeDebounceTimer);
16150
+ if (this.editor) {
16151
+ this.editor.destroy();
16152
+ }
16153
+ }
16154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: MatchaPageBuilderComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
16155
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: MatchaPageBuilderComponent, isStandalone: false, selector: "matcha-page-builder", inputs: { showControls: "showControls", text: "text" }, outputs: { onSave: "onSave", onChange: "onChange" }, viewQueries: [{ propertyName: "gjsContainer", first: true, predicate: ["gjsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"matcha-page-builder\">\n <matcha-spinner *ngIf=\"isLoading\"></matcha-spinner>\n <div class=\"editor-shell\" [style.display]=\"isLoading ? 'none' : 'block'\">\n <div [id]=\"containerId\"></div>\n </div>\n <div class=\"editor-controls\" *ngIf=\"showControls && !isLoading\">\n <button matcha-button (click)=\"save()\">Salvar</button>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatchaButtonComponent, selector: "[matcha-button]", inputs: ["size", "size-xs", "size-sm", "size-md", "size-lg", "size-xl", "gap", "color", "basic", "outline", "alpha", "pill", "link", "icon", "badge"] }, { kind: "component", type: MatchaSpinnerComponent, selector: "matcha-spinner", inputs: ["progress", "color", "size", "size-xs", "size-sm", "size-md", "size-lg", "size-xl"] }], encapsulation: i0.ViewEncapsulation.None }); }
16156
+ }
16157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: MatchaPageBuilderComponent, decorators: [{
16158
+ type: Component,
16159
+ args: [{ selector: 'matcha-page-builder', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div class=\"matcha-page-builder\">\n <matcha-spinner *ngIf=\"isLoading\"></matcha-spinner>\n <div class=\"editor-shell\" [style.display]=\"isLoading ? 'none' : 'block'\">\n <div [id]=\"containerId\"></div>\n </div>\n <div class=\"editor-controls\" *ngIf=\"showControls && !isLoading\">\n <button matcha-button (click)=\"save()\">Salvar</button>\n </div>\n</div>" }]
16160
+ }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { gjsContainer: [{
16161
+ type: ViewChild,
16162
+ args: ['gjsContainer', { static: false }]
16163
+ }], showControls: [{
16164
+ type: Input
16165
+ }], onSave: [{
16166
+ type: Output
16167
+ }], onChange: [{
16168
+ type: Output
16169
+ }], text: [{
16170
+ type: Input
16171
+ }] } });
16172
+
16173
+ class MatchaPageBuilderModule {
16174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: MatchaPageBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16175
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: MatchaPageBuilderModule, declarations: [MatchaPageBuilderComponent], imports: [CommonModule,
16176
+ MatchaButtonModule,
16177
+ MatchaSpinnerModule], exports: [MatchaPageBuilderComponent] }); }
16178
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: MatchaPageBuilderModule, imports: [CommonModule,
16179
+ MatchaButtonModule,
16180
+ MatchaSpinnerModule] }); }
16181
+ }
16182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: MatchaPageBuilderModule, decorators: [{
16183
+ type: NgModule,
16184
+ args: [{
16185
+ declarations: [MatchaPageBuilderComponent],
16186
+ imports: [
16187
+ CommonModule,
16188
+ MatchaButtonModule,
16189
+ MatchaSpinnerModule,
16190
+ ],
16191
+ exports: [MatchaPageBuilderComponent]
16192
+ }]
16193
+ }] });
16194
+
15616
16195
  class StepContentDirective {
15617
16196
  constructor(template) {
15618
16197
  this.template = template;
@@ -15985,5 +16564,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
15985
16564
  * Generated bundle index. Do not edit.
15986
16565
  */
15987
16566
 
15988
- export { CopyButtonComponent, INITIAL_CONFIG, MATCHA_MASK_CONFIG, MATCHA_OPTION_PARENT, MatchaAccordionComponent, MatchaAccordionContentComponent, MatchaAccordionHeaderComponent, MatchaAccordionItemComponent, MatchaAccordionModule, MatchaAutocompleteComponent, MatchaAutocompleteModule, MatchaAutocompleteTriggerDirective, MatchaAvatarComponent, MatchaAvatarModule, MatchaBreakpointObservableModule, MatchaBreakpointObserver, MatchaButtonComponent, MatchaButtonModule, MatchaButtonToggleComponent, MatchaButtonToggleModule, MatchaCardComponent, MatchaCardModule, MatchaCheckboxComponent, MatchaCheckboxModule, MatchaChipComponent, MatchaChipListComponent, MatchaChipModule, MatchaComponentsModule, MatchaDateComponent, MatchaDateModule, MatchaDateRangeComponent, MatchaDateRangeModule, MatchaDividerComponent, MatchaDividerModule, MatchaDragDirective, MatchaDragHandleDirective, MatchaDrawerComponent, MatchaDrawerContainerComponent, MatchaDrawerContentComponent, MatchaDrawerModule, MatchaDropListComponent, MatchaDropListModule, MatchaDropListService, MatchaDropZoneDirective, MatchaElevationDirective, MatchaElevationModule, MatchaErrorComponent, MatchaFormFieldComponent, MatchaFormFieldModule, MatchaGridComponent, MatchaGridModule, MatchaHighlightComponent, MatchaHighlightModule, MatchaHintTextComponent, MatchaHintTextModule, MatchaIconComponent, MatchaIconModule, MatchaInfiniteScrollComponent, MatchaInfiniteScrollDataComponent, MatchaInfiniteScrollModule, MatchaInputPhoneComponent, MatchaInputPhoneModule, MatchaLabelComponent, MatchaLazyloadComponent, MatchaLazyloadDataComponent, MatchaLazyloadModule, MatchaListComponent, MatchaListItemComponent, MatchaListModule, MatchaMaskApplierService, MatchaMaskCompatibleDirective, MatchaMaskModule, MatchaMaskPipe, MatchaMaskService, MatchaMasonryComponent, MatchaMasonryModule, MatchaMenuComponent, MatchaMenuItemDirective, MatchaMenuModule, MatchaMenuTriggerDirective, MatchaModalComponent, MatchaModalContentComponent, MatchaModalFooterComponent, MatchaModalHeaderComponent, MatchaModalModule, MatchaModalOptionsComponent, MatchaModalService, MatchaMsgBoxActionsComponent, MatchaMsgBoxComponent, MatchaMsgBoxModule, MatchaOptionComponent, MatchaOptionModule, MatchaOverlayService, MatchaPageLayoutComponent, MatchaPageLayoutModule, MatchaPaginatorComponent, MatchaPaginatorIntl, MatchaPaginatorModule, MatchaPanelComponent, MatchaPanelModule, MatchaProgressBarComponent, MatchaProgressBarModule, MatchaRadioComponent, MatchaRadioGroupComponent, MatchaRadioModule, MatchaRippleDirective, MatchaRippleModule, MatchaSelectComponent, MatchaSelectModule, MatchaSelectTriggerDirective, MatchaSkeletonComponent, MatchaSkeletonModule, MatchaSlideToggleComponent, MatchaSlideToggleModule, MatchaSliderComponent, MatchaSliderModule, MatchaSnackBarComponent, MatchaSnackBarModule, MatchaSnackBarService, MatchaSpinComponent, MatchaSpinModule, MatchaSpinnerComponent, MatchaSpinnerModule, MatchaStepperComponent, MatchaStepperContentComponent, MatchaStepperControllerComponent, MatchaStepperModule, MatchaStepperStateService, MatchaSubmenuTriggerDirective, MatchaTabItemComponent, MatchaTableComponent, MatchaTableModule, MatchaTabsComponent, MatchaTabsModule, MatchaTextEditorComponent, MatchaTextEditorModule, MatchaTimeComponent, MatchaTimeModule, MatchaTimeRangeComponent, MatchaTimeRangeModule, MatchaTitleComponent, MatchaTitleModule, MatchaToolbarButtonComponent, MatchaToolbarComponent, MatchaToolbarContentComponent, MatchaToolbarCustomButtonComponent, MatchaToolbarMainButtonComponent, MatchaToolbarModule, MatchaTooltipDirective, MatchaTooltipModule, NEW_CONFIG, NextStepDirective, PrevStepDirective, StepComponent, StepContentDirective, buildSunEditorConfig, compatibleOptions, initialConfig, timeMasks, withoutValidation };
16567
+ export { CopyButtonComponent, INITIAL_CONFIG, MATCHA_MASK_CONFIG, MATCHA_OPTION_PARENT, MatchaAccordionComponent, MatchaAccordionContentComponent, MatchaAccordionHeaderComponent, MatchaAccordionItemComponent, MatchaAccordionModule, MatchaAutocompleteComponent, MatchaAutocompleteModule, MatchaAutocompleteTriggerDirective, MatchaAvatarComponent, MatchaAvatarModule, MatchaBreakpointObservableModule, MatchaBreakpointObserver, MatchaButtonComponent, MatchaButtonModule, MatchaButtonToggleComponent, MatchaButtonToggleModule, MatchaCardComponent, MatchaCardModule, MatchaCheckboxComponent, MatchaCheckboxModule, MatchaChipComponent, MatchaChipListComponent, MatchaChipModule, MatchaComponentsModule, MatchaDateComponent, MatchaDateModule, MatchaDateRangeComponent, MatchaDateRangeModule, MatchaDividerComponent, MatchaDividerModule, MatchaDragDirective, MatchaDragHandleDirective, MatchaDrawerComponent, MatchaDrawerContainerComponent, MatchaDrawerContentComponent, MatchaDrawerModule, MatchaDropListComponent, MatchaDropListModule, MatchaDropListService, MatchaDropZoneDirective, MatchaElevationDirective, MatchaElevationModule, MatchaErrorComponent, MatchaFormFieldComponent, MatchaFormFieldModule, MatchaGridComponent, MatchaGridModule, MatchaHighlightComponent, MatchaHighlightModule, MatchaHintTextComponent, MatchaHintTextModule, MatchaIconComponent, MatchaIconModule, MatchaInfiniteScrollComponent, MatchaInfiniteScrollDataComponent, MatchaInfiniteScrollModule, MatchaInputPhoneComponent, MatchaInputPhoneModule, MatchaLabelComponent, MatchaLazyloadComponent, MatchaLazyloadDataComponent, MatchaLazyloadModule, MatchaListComponent, MatchaListItemComponent, MatchaListModule, MatchaMaskApplierService, MatchaMaskCompatibleDirective, MatchaMaskModule, MatchaMaskPipe, MatchaMaskService, MatchaMasonryComponent, MatchaMasonryModule, MatchaMenuComponent, MatchaMenuItemDirective, MatchaMenuModule, MatchaMenuTriggerDirective, MatchaModalComponent, MatchaModalContentComponent, MatchaModalFooterComponent, MatchaModalHeaderComponent, MatchaModalModule, MatchaModalOptionsComponent, MatchaModalService, MatchaMsgBoxActionsComponent, MatchaMsgBoxComponent, MatchaMsgBoxModule, MatchaOptionComponent, MatchaOptionModule, MatchaOverlayService, MatchaPageBuilderComponent, MatchaPageBuilderModule, MatchaPageLayoutComponent, MatchaPageLayoutModule, MatchaPaginatorComponent, MatchaPaginatorIntl, MatchaPaginatorModule, MatchaPanelComponent, MatchaPanelModule, MatchaProgressBarComponent, MatchaProgressBarModule, MatchaRadioComponent, MatchaRadioGroupComponent, MatchaRadioModule, MatchaRippleDirective, MatchaRippleModule, MatchaSelectComponent, MatchaSelectModule, MatchaSelectTriggerDirective, MatchaSkeletonComponent, MatchaSkeletonModule, MatchaSlideToggleComponent, MatchaSlideToggleModule, MatchaSliderComponent, MatchaSliderModule, MatchaSnackBarComponent, MatchaSnackBarModule, MatchaSnackBarService, MatchaSpinComponent, MatchaSpinModule, MatchaSpinnerComponent, MatchaSpinnerModule, MatchaStepperComponent, MatchaStepperContentComponent, MatchaStepperControllerComponent, MatchaStepperModule, MatchaStepperStateService, MatchaSubmenuTriggerDirective, MatchaTabItemComponent, MatchaTableComponent, MatchaTableModule, MatchaTabsComponent, MatchaTabsModule, MatchaTextEditorComponent, MatchaTextEditorModule, MatchaTimeComponent, MatchaTimeModule, MatchaTimeRangeComponent, MatchaTimeRangeModule, MatchaTitleComponent, MatchaTitleModule, MatchaToolbarButtonComponent, MatchaToolbarComponent, MatchaToolbarContentComponent, MatchaToolbarCustomButtonComponent, MatchaToolbarMainButtonComponent, MatchaToolbarModule, MatchaTooltipDirective, MatchaTooltipModule, NEW_CONFIG, NextStepDirective, PrevStepDirective, StepComponent, StepContentDirective, buildSunEditorConfig, compatibleOptions, initialConfig, timeMasks, withoutValidation };
15989
16568
  //# sourceMappingURL=matcha-components.mjs.map